Wednesday, March 31, 2010

Pointer Lines for Technical Writers

I write technical manuals. Each of our photo-heavy documents requires hundreds of photos, most of which have multiple pieces of equipment in view that need to be identified using captions and pointer lines. I recently converted a legacy FrameMaker 7.0 production workflow to a much more efficient InDesign CS4 workflow.

In my old Framemaker workflow, the pointer lines were created by placing a 2 point white stoke with rounded caps behind a .5 point black stoke. I often had to work with legacy (AKA ancient, and created by someone other than me) documents and the pointer lines were neither the same length nor aligned at the same angle. So instead of writing, I spent hours fiddling with those dreaded pointer lines.

Ideas that Didn’t Work

In converting the workflow to InDesign, and in my quest for improved efficiency and perfect pointer alignment, I had to find a better way. I thought about using a drop shadow for  my lines, but that would involve transparency and would perhaps be subject to the mercy of a new InDesign user not familiar with transparency flattening. And besides that, I just really like to clean lines that vector offers.

I tried the old dreaded FrameMaker method: two lines stacked on top of each other. But alas, it worked the same in InDesign as in Frame. The only way to make sure that the two grouped strokes stayed properly aligned was to use the Direct Select tool (white arrow) to drag a box around the end points of both at the same time and move just the end points. Never in my wildest dreams would that be an acceptable work flow in a production environment. And besides, I would still be dealing with two separate objects. So whenever I wanted to make a new pointer line, I would have to: draw a line, apply a style, copy it, paste it, send to back, apply a new style, and finally Group them together. No way Jose!

I knew how to make the perfect pointer line in Illustrator. It would be a simple graphic style with two different strokes. But a placed Illustrator stroke would act as any placed artwork, and its size and proportions could easily be scaled disproportionately.

However, an offhanded comment of mine about dash and gap on the InDesign forums led to a brief comment from Peter Spier which launched me into research mode into stroke styles. Admittedly, the only time I ever used InDesign stroke styles prior to this was in playing with the Christmas lights Easter egg a couple versions back. So I had some learning to do.

Using GAP settings in a non-dashed line

Apparently, dash and gap setting in the stroke styles aren’t just for dashed lines. Hmmm. The GAP portion of the stroke style effectively creates a second stroke behind your main stroke. The GAP occupies 100% of the width of your stroke. So if you have a 2 point stroke with a dash, the GAP will be 2 points. In a standard dashed line, the stroke itself also occupies 100% of the width of the stroke (in this example, it is 3 points). So by using a gap color, you would simply see another color peeking through the gaps in your dashed line.

To activate the Gap Color drop down menu in the Stroke palette, you have to first make the line type something other then “Solid.” I chose dashed during my experimenting. The choose your gap color, and the concept of dash and gap is readily apparent. But wait, we don’t want a dashed line. What now? The stroke “Type” options that appear in the Stroke palette are the default InDesign Stroke Styles, plus a couple of other like Wavy and Japanese Dots. You can create your own stroke style and it will show up in the bottom of this list. If you create your own stroke style, you can still specify a gap color, even if your stroke style is not a dashed line.

In this case, I want the bottom stroke (the GAP) to be white. That means that somehow I need to create a small black stroke on top.

Create Your Stroke Style

In the stroke styles dialog box, click New. Now choose type: Stripe. By playing around with the built-in stroke styles, I found that I could have a stroke with as many stripes as I want. All have to do is specify where the stripe starts and what percentage of the total stroke width it is to occupy.

So, I need a 2 point white stroke behind a .5 black stroke.

2 points is the total width of the stroke, and what will appear in the Weight section of the stroke palette. So I need to work down from there to get the center portion of the stroke. I need the black portion to be .5 points. Do a little math, and you’ll find that .5 (black stroke) is 25% of 2 points (total stroke width). That means I have 75% of the stroke that is going to show up as white (or whatever gap color you choose) and the little section in the middle will show up as the main stroke color. To make it even, I adjusted these values to: Start: 37% and Width: 26%.

When you create a new Stripe stroke style, InDesign automatically starts you off with two stripes. The black portion represents the part of the line that will be visible. So in this instance, we’ve got the center portion knocked off of a black line. That’s close to what I need, and I’m getting excited…until I apply the rounded end caps…Plus there’s that little black halo on the edges. Not good.

I realized that what I need was not a white stroke with the center knocked out, but a black stroke with the sides knocked out. So I went back to the stroke styles dialog box and found that I could edit each of the black stripes independently. Next to each stripe, in the percentage bar on the left, are two little arrows. The arrows are highlighted, indicating, that stripe is active. Grab the top of one of the arrows and drag it all the way down. That stripe will fall right off the dialog box into oblivion. Now, you are left with a single stripe you can edit. Plug in the values mentioned above: Start: 37% and Width: 26%.

Create an Object Style

So we’re getting closer. However, a stroke style alone won’t give me all the features I need for my pointer lines. You can’t specify a gap color, a stroke color, or end caps in a stripe stroke style. (Incidentally, you can specify End Caps, but only in a Dash stroke style, not in a Dotted or Stripe stroke style.) I found that I can assign all the remaining attributes I needed: gap color, stroke color, and end caps in an object style. So I made a new object style containing rounded ends, a 2 point black stroke, a gap color of Paper, and my newly created pointer line stroke style. Be sure to preview this on a colored background, or you’ll be left scratching your head, wondering why it didn’t work.

Author Edit: 4-25-16
Please take a few minutes to read Part 2 of this topic: Pointer Lines for Technical Writers: Part 2, written approximately five years after this article.

This technique was also discussed by Anne Marie Concepcion in a course: "Creating Better Callout Lines with Effects and Object Styles."

Friday, March 19, 2010

When InDesign Paste No Longer Works

My technical publishing workflow involves figures, lots and lots of figures. I often put callouts on the photos, with pointer lines. Then I group the whole bunch together and paste it inline into my text. But last night I ran into a problem. You see, it started because I like to try to find features that no one else has ever heard of or used. And a couple of times, my ideas were even featured on my favorite podcast, InDesign Secrets. In case you're curious, I came up with a couple of the "Obscure Feature of the Week (Eek, eek, eek!)"s. They were Shared Hyperlink Destination and Sort Bookmarks.

Well, I'm having so much fun hearing my name briefly mentioned on my favorite podcast, that I decided to see if I could come up with another Obscure Feature. This time I suggested "Autotag." 

To be honest, I've never used Autotag, nor XML publishing. I don't know that I ever will, and probably at least 99.9% of my fellow InDesign users never will either. But the nifty thing about Autotag is that it somehow automatically applies XML tags to the parts and pieces of your InDesign document. Interesting? Somewhat. Useful? Probably to somebody, somewhere in XML publishing land. But not to me...except for the fact that Autotag is so obscure that virtually no one except the publishing super heros have heard of it. And that level of feature obscurity could very well get me mentioned in another podcast. Which (for a geek like me) is pretty darn exciting!

So last night, I started playing around and I autotagged one of my text frames. Here is what I am usually able to achieve without any problem: Inline graphics.

But suddenly, last night, my Paste function no longer worked. After a restless night of sleep, and nearly posting this question to the entire world on the Adobe forums, I investigated a little further and found the problem: Autotag.

Autotag is easily accessible under the right-cick contextual menu when you select an object. Normally, nothing is tagged—because I don't do XML publishing. But late last night, as I was playing and dreaming of InDesign greatness, I autotagged a frame. See how "Story" is now highlighted in light blue?

Because the Rudder Angle Indicator frame is tagged, I will no longer be able to paste that text frame into another text frame. I can group with other frames, copy it, and paste it until the cows come home... just NOT inline into another text frame. InDesign cannot be fooled. And in case you're curious. If the frame is tagged as as Story, Root, and Graphic, it doesn't matter. You still can't paste it inline into another text frame.