14

My book is being copy-edited and the copy editor is complaining about the spacing of fF. I looked carefully at it and was indeed shocked. I had initially incorrectly concluded that there is a ligature fF (I know about ff.). Later, in the comments to this question, it is more likely to be a kerning issue.

To add to this, what is being typeset is the capacitance, like 100 fF (femto-farads). So, in the area she is complaining about, I might have a capacitance of 10 pF (typeset nicely) and 150 fF (with the f crashing into the F).

Does anyone know the rules for this? Is fF being typeset properly (in Latin Modern font)?

Should I be changing this behavior to typeset it differently at the behest of my copy-editor?

For now, I think she's right and that it looks unusual when typeset this way, and I am going about changing this in my document, but I'd appreciate some expert opinions.

Here's what I chose to do to solve this:

After all of the excellent comments, I chose the easy way out. As all of the values with units in my book are typeset as:

$value\thinspace\mathrm{prefix-unit}$

I chose to change all occurrences where "f" is the prefix to something like:

$100\thinspace\mathrm{f\/F}$

as Barbara Beeton seemed to indicate might be common practice. I don't have so many of these. Next project, I will try the siunitx package approach, but it seems to me to be a general font problem because anywhere "fF" shows up, regardless of why, it gets typeset incorrectly.

Here's the tex code that Barbara asked for:

\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{babel}
\begin{document}
$100\thinspace\mathrm{fF}$ $100\thinspace\mathrm{pF}$

$100\thinspace\mathrm{f\kern0.01em F}$ $100\thinspace\mathrm{p\kern0.01em F}$

$100\thinspace\mathrm{f\/F}$ $100\thinspace\mathrm{p\/F}$
\end{document}

Here's the output

enter image description here

  • 6
    There’s no fF ligature in Latin Modern (use a tool such as FontForge to inspect its liga and dlig features) or in any typeface I’ve examined. The proofreader probably finds the letters too close for comfort, and wants a small kern. – Thérèse Aug 25 at 2:59
  • but I changed what was there from $524.3\thinspace \mathrm{fF}$ to $524.3\thinspace \mathrm{f\kern0pt F}$ and it definitely changed to something different. does this not prove my point, or am I missing something. And originally, the f was definitely impacting the F. – Pete P Aug 25 at 3:01
  • 3
    @PeteP That's a different question: between every pair of characters (glyphs) a font may define a different value of the default kern; so when you explicitly force a kern of 0pt you may get something different from the default appearance. That's different from a ligature (a special glyph to replace the pair of glyphs). – ShreevatsaR Aug 25 at 3:09
  • @ShreevatsaR I see what you mean. The default kerning was definitely questionable. – Pete P Aug 25 at 3:12
  • 4
    It is almost certain that the "f" will crash into the "F" unless something is done. (I know of no ligature or kerning between any lowercase/uppercase pair.) Can you perform a small test and post the output so that we can see it? (I don't have access at the moment to a tex system, so I can't test.) Try with (1) \mathrm{fF}, (2) \mathrm{f\kern.01em F}, and (3) \mathrm{f\/F}. (Yes, that is an "italic correction", but "f" has an anomalous shape that can react positively to such treatment.) – barbara beeton Aug 25 at 3:14
19

(Aside: The first paragraph in the following answer was written to address the initial version of the OP's query, which referred to an fF ligature. The OP has changed the title of his/her posting in the meantime; hence, the first paragraph below is no longer relevant.)

A typographic ligature is a combination of two or more symbols (usually, letters) into a single glyph. As others have already commented, no known font provides an fF ligature or, for that matter, a pF ligature. Incidentally, the qualifier "in the English language" in the title of your posting is a bit misleading since ligatures are font-specific rather than language-specific features.

Anyway, what to do about the collision of the letters f and F? Based on your write-up, the fF combination occurs in your document only in conjunction with physical capacitance, as in "100 femto-Farad". I thus suggest the following two-step remedy:

  • First, do yourself a big favor and learn about and start using the \si and \SI macros of the siunitx package. I.e., start writing standalone scientific units with the \si macro -- e.g., \si{\meter} or \si{m} rather than \mathrm{m} -- and combinations of scientific units and quantities with the \SI macro -- e.g., \SI{100}{\femto\farad} or, more succinctly, \SI{100}{\fF}. Happily, the siunitx package provides the shortcuts\fF and \pF for \femto\farad and \pico\farad, respectively.

    If you haven't been using the \si and \SI macros so far, making the required adjustments does require some up-front editing work; fortunately, it's a one-time-only effort. This effort quickly pays for itself in terms of saving time writing, as you can focus on the meaning rather than the visual representation of scientific units and their associated quantities. (By the way, the siunitx package provides many more goodies than just the \si and \SI macros.)

  • Second, add the following instruction in the preamble, after loading the siunitx package:

    \DeclareSIPrefix{\femto}{f\ifmmode\kern0pt\else\kern0.08em\fi}{-15}
    %% see Ulrike F.'s comments below for "\ifmmode\kern0pt\else\kern0.08em"
    

    Relative to the default definition, the modified definition inserts \kern0pt if it occurs in math mode or \kern0.08em if it occurs in text mode. In the Latin Modern font family (and in many other font families too), fF and f\kern0ptF produce different results: the latter produces a gap between the letters, whereas the former does not. Clearly, you want the latter.

A final comment: I checked that this remedy "works" under pdfLaTeX, using several leading text and math font packages. Depending on the font family employed in your document, the proposed remedy may or may not work under XeLaTeX or LuaLaTeX as well.

enter image description here

\documentclass[english,10pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}

\usepackage{siunitx}
\sisetup{detect-mode} % optional; see Ulrike F.'s comments
\newcommand\mykern{\ifmmode\kern0pt\else\kern0.08em\fi} % see Ulrike F.'s comments
\DeclareSIPrefix{\femto}{f\mykern}{-15}

%% Optional: load font package(s):
\usepackage{lmodern}
%\usepackage{mathptmx}
%\usepackage{newtxtext,newtxmath}
%\usepackage{ebgaramond,ebgaramond-maths} % use 0.1em rather than 0.08em kern

\begin{document}
\si{fF}, \SI{23}{fF} --- not good  % unit is hard-coded 

\si{\femto\farad}, \SI{23}{\femto\farad} --- good (text mode)

$\si{\femto\farad}$, $\SI{23}{\femto\farad}$ --- good (math mode)

\si{\fF}, \SI{23}{\fF} --- good \& easy % "\fF" expands to "\femto\farad"    

\smallskip
vs.:    

$\mathrm{fF}$, $23\thinspace\mathrm{fF}$ --- not good 

$\mathrm{f\mykern F}$, $23\thinspace\mathrm{f\mykern F}$ --- good but tedious  
\end{document}
  • 1
    You are relying on some math effect (the f in cmr10 has an italic correction value which seems to kick in), with \sisetup{mode=text} or detect-mode it will no longer work. – Ulrike Fischer Aug 25 at 10:27
  • @UlrikeFischer - Thanks for this. FWIW, the proposed method works not only with Computer Modern and Latin Modern, but also with newtxtext/math, newpxtext/math, and ebgaramound/ebgaramond-maths. But, as I also pointed out, it does not work with the mathptmx package; I didn't investigate why that's the case. The OP hasn't stated which fonts his/her publisher employs, so the jury is still out as to whether the proposed solution will work for the book. For sure, since the OP seems to be unaware of the \si and \SI macros, he/she he/she should stay away from \sisetup{mode=text}. – Mico Aug 25 at 10:45
  • 1
    @mico Thanks for making me aware of this. Maybe, I'll try it (there's a lot of places to change). Unfortunately, my book contains not only text that I easily control, but also Tikz code output from a schematic editor and plots output by Matplotlib (Python code). I will have to hand edit every one, which decouples it from the source. How would you reword the title of my question given it's a kerning issue and not a ligature issue as I erroneously concluded. – Pete P Aug 25 at 12:59
  • 1
    @UlrikeFischer I'm (now I think unfortunately) providing CRC for the book. So I have control over the fonts. I'm using the Latin Modern fonts. – Pete P Aug 25 at 13:01
  • 1
    Instead of saying the user to avoid mode=text or detect-mode, it is better to make the definition math aware: \DeclareSIPrefix{\femto}{f\ifmmode\kern0pt\else\kern0.77779pt\fi}{-15}. (for lmodern/cmr). – Ulrike Fischer Aug 25 at 13:12

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.