3

I'm trying to typeset word form DARPA's and I'm experiencing some issues with spacing the apostrophe in relation to the neighboring letters. In particular, if I just use the text as is, LaTeX places apostrophe too close to the A, whereas, if I use DARPA~'s, this results in too much distance between DARPA and 's. I would appreciate advice on fixing this.

11
  • 1
    DARPA's is the correct markup, perhaps there is a problem with the kerning in the font that you are using but you have given no indication of font or any other details. Jun 15 '15 at 20:28
  • @DavidCarlisle: Thank you for fast feedback. I'm using the standard charter font. Jun 15 '15 at 20:29
  • you've been on the site long enough to know it helps if you give an example document, show your output, say whether you are using xetex or luatex or pdftex. I don't seem to have a font called charter so I can't comment on its apostrophe kerning. Jun 15 '15 at 20:52
  • 1
    you might insert just a {} before the apostrophe, or \/, to discourage kerning. or if a small space is really needed, then \, is much smaller than ~ (and won't break either). Jun 15 '15 at 20:57
  • 2
    @AleksandrBlekh as i say the markup is DARPA's, or you can use DARPA\kern2cm' or whatever space you want, but if your question is why the standard markup produces a bad result, it is entirely about details not in your question, namely the font and the tex engine used. Jun 15 '15 at 21:02
5

the problem is clearly in the kerning instructions in the font, so what you want to do is inhibit kerning. there are several ways to do that:

  • DARPA{}'s -- an empty group
  • DARPA\/'s -- an italic correction
  • DARPA{'}s -- isolate the apostrophe in its own group

your choice -- they should all have the same result.

warning -- if the passage containing this string goes through an additional pass for the purpose of hyphenation/justification, the first two might be lost, although this particular string is probably not a candidate for hyphenation.

update: other possibilities suggested in comments:

  • DARPA\kern0pt's -- explicit zero-width kern (Heiko Oberdiek)
  • DARPA\mbox{'}s -- boxed, and therefore "structurally" isolated, apostrophe (Manuel)

as also noted in the comments, which approach is chosen depends on both the shapes of the affected pair of characters and the circumstances, e.g. whether or not the text may undergo hyphenation. the grouped and boxed instances also affect the interaction with the next character in the string.

6
  • I appreciate your simple, clear and general answer. Jun 15 '15 at 21:39
  • 3
    DARPA{}'s and DARPA{'}s can lost the group, when hyphenated. \/ adds a kern, which prevents the implicit kerning. In general, \/ can even insert additional space, which might be too much (not in this case). AFAIK, the reliable way to prevent implicit kerning without adding additional space is \kern0pt between the letters in question. Jun 15 '15 at 21:49
  • @HeikoOberdiek: Thank you for clarification. While I understand the basic concept of kerning, its control in LaTeX (as we as fonts' features control) seems to be quite complicated (or, rather, overwhelming) for me at the moment. Jun 15 '15 at 22:08
  • 1
    @AleksandrBlekh See Wikipedia's article about Kerning for introduction/explanation. Jun 15 '15 at 22:18
  • @HeikoOberdiek or \mbox{'}? That's what I use sometimes.
    – Manuel
    Jun 15 '15 at 22:26
5

If you use xcharter there seems to be no problem:

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc} 
\usepackage{XCharter}%
\begin{document}

DARPA’s

\end{document} 

enter image description here

2
  • … which is, also, probably the best way of using Charter font in pdfTeX.
    – Manuel
    Jun 15 '15 at 21:30
  • Thank you very much for your nice answer (+1). I wasn't aware of the xcharter package. While I will accept Barbara's simpler and more general answer, I appreciate your help. Jun 15 '15 at 21:37
4

There is an implicit kerning between the upper case A and the apostrophe, if the font package charter is used. Because of the shape of the A, a negative kerning makes sense. It's not a bug, but by choice of the font designer.

The following example compares three cases:

  • Unmodified version with implicit kernings as defined by the font.

  • Without implicit kernings, removed by adding \kern0pt.

  • Words with uppercase letters are better readable, if some small letter spacing is added. This is done by package microtype's \textls command.

Example file:

\documentclass{article}
\usepackage{microtype}
\usepackage{charter}
\pagestyle{empty}
\begin{document}

  \noindent
  DARPA's\\ % unmodified
  D\kern0pt ARP\kern0pt A\kern0pt's\\ % without implicit kerning
  \textls[25]{DARPA's}% small letter spacing

\showboxdepth=\maxdimen  
\showboxbreadth=\maxdimen
\tracingonline=1
\nonstopmode
\showlists
\end{document}

Result

Log result for the unmodified version, which shows the kerning values:

.\OT1/bch/m/n/10 D
.\kern-0.19
.\OT1/bch/m/n/10 A
.\OT1/bch/m/n/10 R
.\OT1/bch/m/n/10 P
.\kern-0.93001
.\OT1/bch/m/n/10 A
.\kern-1.3
.\OT1/bch/m/n/10 '
.\OT1/bch/m/n/10 s

The version with inserted zero spaces, \kern0pt, does not have positive or negative space between letters:

.\OT1/bch/m/n/10 D
.\kern 0.0
.\OT1/bch/m/n/10 A
.\OT1/bch/m/n/10 R
.\OT1/bch/m/n/10 P
.\kern 0.0
.\OT1/bch/m/n/10 A
.\kern 0.0
.\OT1/bch/m/n/10 '
.\OT1/bch/m/n/10 s

The letter spacing version of package letterspace is included in the font as can be seen in the font name: \OT1/bch/m/n/10/25ls.

1
  • Wow! Thank you so much for such a detailed answer (+1). It's a little too complex for my level of LaTeX knowledge, so I will accept Barbara's simpler answer. Nevertheless, your time and effort are much appreciated. Jun 15 '15 at 21:34

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.