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, 2017 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, 2017 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, 2017 at 13:25

1 Answer 1

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, 2017 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, 2017 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, 2017 at 13:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .