# fontspec's LetterSpace behaves differently in xetex and luatex

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}


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

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

• 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 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"). 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. May 20 '17 at 13:25

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}


• does this mean that luatex has the choice to put a nocorr at the end of \textsc? 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? 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. May 20 '17 at 13:29