3

In xetex, activating the LetterSpace option for small caps adds extra space when a small caps letter is directly followed by a lowercase latter, but has no effect when a lower case letter is directly followed by small caps.

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Libertinus Serif}[%
    SmallCapsFeatures = {LetterSpace = 50}]

\begin{document}
\textsc{uio}

\textsc{u}i\textsc{o}
\end{document}

enter image description here

In luatex, on the other hand, no extra space is added either before or after a lower case letter adjacent to small caps:

enter image description here

Why does it behave differently in xetex and luatex, and who's doing the "right thing" here?

3
  • 1
    I guess that LuaTeX is going the right way here: letterspacing is used to space out caps and small caps for readability issues, not to make them feel cramped. Being that I cannot envision a word with small caps and lowercase and small caps again (Except in logos), I feel that the extra requirement for small caps space is not applicable here. Also I feel it has more to do with fontspec inner workings than one or the other engines
    – Moriambar
    May 20 '17 at 13:18
  • @Moriambar Words mixing upper and lower case letters have become very common in abbreviations, especially in Europe, where it's been a fad for years (to my distaste). There's no consensus whether the upper case letters should be written with small caps (a classic case is the German abbreviation "GmbH").
    – Sverre
    May 20 '17 at 13:22
  • I come from Europe too and I don't find common small caps with lowercase perhaps full caps are best suited? I think small caps give the best when typesetting all-caps words amongst the text, ie UK, or WWF; I feel that small caps with lowercase in acronyms such as GmbH would feel weird.
    – Moriambar
    May 20 '17 at 13:25
2

You should add \nocorr:

\documentclass{article}

\usepackage{fontspec}
\setmainfont{Libertinus Serif}[ 
  SmallCapsFeatures = {LetterSpace = 50},
]

\begin{document}

\textsc{uio}

\textsc{u}i\textsc{o}

\textsc{u\nocorr}i\textsc{o}

\end{document}

enter image description here

3
  • does this mean that luatex has the choice to put a nocorr at the end of \textsc?
    – Moriambar
    May 20 '17 at 13:26
  • So you think xetex is doing the wrong thing here? And, is \nocorr a hack here? Isn't \nocorr for suppressing italic correction?
    – Sverre
    May 20 '17 at 13:28
  • @Sverre I don't know whether it's right or wrong, but the problem is apparently the addition of a kern, without \nocorr.
    – egreg
    May 20 '17 at 13:29

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.