5

The standard techniques for suppressing ligatures, such as inserting an empty group, or placing the characters that would normally form a ligature individually in groups, do not seem to work for ligatures that are formed on account of being terminal.

For example:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[longs]{pacaslon}
\begin{document}
foss. fosse.
\end{document}

Here, the double ess in "foss" becomes an long-ess-short-ess ligature (the character is basically the same as an eszet, and uses that codepoint in the Adobe fonts), while that in "fosse" becomes a double-long-ess ligature. There is a rule that when a double-ess occurs at the end of an abbreviation before a full stop (period), it should not remain a double-long-ess ligature, not a long-ess-short-ess.

So my question is, how can I suppress that ligature? Note that double ess becomes long-ess-short-ess at the end of a word, so merely writing e.g. "{foss}." won't change the outcome. Also, writing "fo{ſ}{ſ}" (i.e. separately grouping two long esses) won't work, as I want a long ess ligature. And that doesn't have a code point, so I can't easily write it, but if I could, it would immediately, finding itself at the end of a word, turn back into a long-ess-short-ess.

Currently, the only solution I can find is to remove the ligatures turning double-long-ess into long-ess-short-ess before period from the TFM files, but then I have manually to add an empty group {} before almost every period (i.e. every period EXCEPT those denoting an abbreviation), which is error-prone and tedious.

Since I can't find the acaslon package online any more, I've put a copy up at: http://rrt.adsensus.net/acaslon.zip

  • Try with foss\noboundary. – egreg Jul 5 '13 at 11:48
  • I get a 404 from that link, please check. – mafp Jul 5 '13 at 14:56
  • Is using LuaTeX an option for you? If so, consider using the selnolig package, as it lets you define ligature suppression rules for the word(s) you mention. – Mico Jul 5 '13 at 21:55
  • Unfortunately, I can't use LuaTeX, owing to microtype features that it doesn't yet support (at least, not without upgrades I'm not yet prepared to make). I'll test the \noboundary command as soon as I can, which, if it works, is an entirely reasonable solution. – Reuben Thomas Jul 5 '13 at 23:49
  • foss\noboundary does the trick. @egreg, could you make that an answer so I can mark it as such? Thanks! – Reuben Thomas Jul 6 '13 at 23:07
4

TeX has a primitive that is just for cases like this one. If a character is followed (or preceded) by \noboundary, then no boundary ligature for that character is used. So

foss\noboundary.

should be the solution. The period would trigger the boundary ligature, but the \noboundary item neutralizes it.

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.