7

I'm looking for a practical way to achieve pretty underlining (interrupted at descenders) in InDesign or Illustrator.

See Should underline clash with text descenders?

I've tried to fake it by applying a white stroke to the text, but the way that cuts into the underline is too ugly to use. Because I'm trying to use it for large text with a thick underline that's also round-capped.

Underline descender-guard fail - white stroke method

Simply removing the underline does interrupt nicely around letter like g, but leaves too much of a gap for p

Underline descender-guard fail - manual method

If this can be achieved at all, it's got to be something only one of you wizards could think up.

It really needs to be an InDesign & Illustrator feature though (here's the link to Adobe's wishform). Like text-decoration-skip: ink; from CSS3 needs browser support. March 2018: Wow not only did it get support, it's now the default in Chrome/Chromium.

6

If you don't mind changing the source text you can remove the underline from characters with descenders and use spaces to make up the missing underline where needed. If you only have a handful of places where you need to do this then you can do it manually pretty easily, for anything longer you can (in InDesign) set GREP styles and use some GREP find & replace queries to do the hard work for you.

Manually

  1. Underline your text.
  2. Add spaces after the "p"s.
  3. Remove underline from characters with descenders.
  4. Kern the "p"+"space" negatively to bring the underline under the "p"s.

enter image description here

Semi-automated (InDesign only)

  1. First add the underline to your paragraph style and create a character style with no underline for your descender characters.

  2. Add spaces after you "p"s. You can use a GREP find & replace to find only "p"s that don't already have a space after them (so you can reuse the query on the same text if your text changes) using something like:

    enter image description here

  3. Duplicate your no-underline character style for the "p"s. Set up some GREP styles within your paragraph style to apply the correct character styles:

    enter image description here

  4. Now you can add some negative tracking on your "p"s to pull in the spaces (and the extra underline) to fill the gap under the "p"s.

enter image description here

You could expand this to a number of character styles and saved GREP find & replace queries, for example adding a space before a "y" and tracking the space to pull the "y" in. Once you have your styles and find & replace queries set up all you need to do is rerun the queries every time your text changes.

There are no GREP styles in Illustrator so you would have to do this manually there but this should work as a semi-automated solution in InDesign (although it is a bit "hacky").

Note also, I'm using CS6 so I'm not sure if there's anything new in CC that makes this easier.

  • Note an interesting (mildly infuriating) edge case for the manual method: if the last letter is y, negatively kerning spaces will do nothing to bring the underline near the descender. Only adding another letter works. I'd add a transparent one, but these are chapter headers, which populate the Table of Contents! Grrr... – Leeroy Oct 13 '16 at 11:44
  • Another issue: I can't use a continuous text-length gradient on an underline because whenever I interrupt it the next bit starts the gradient over. – Leeroy Oct 13 '16 at 11:51
  • 1
    Yeh there's going to be some edge cases that aren't as easy to work around. Another thing you can do is use a non-invisible character and set it's color to the same color as the paper (which is even more hacky, but hey). – Cai Oct 13 '16 at 12:14
  • No idea about the gradient though, not sure there's a way around that (I'm pretty sure all the underline gradient stuff is new in CC but I'm not sure) – Cai Oct 13 '16 at 12:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.