在 luatex 中结合字距调整、小型大写字母和跟踪

在 luatex 中结合字距调整、小型大写字母和跟踪

众所周知luatex需要该fontspec选项Renderer = Basic以便在使用microtype's时显示小型大写字母。tracking = true

\documentclass{article}
\usepackage[tracking = true]{microtype}
\usepackage{fontspec}
\setmainfont{Libertine Serif}[%
    SmallCapsFeatures = {%
%       Renderer = Basic, % breaks kerning, but allows small caps
        Letters = SmallCaps}]
\begin{document}
\textsc{ipa}
\end{document}

在此处输入图片描述

Renderer = Basic但是,字符P和之间的正确字距调整A被删除了:

在此处输入图片描述

@KhaledHosny告诉我这是因为“Libertine 使用基于类的字距调整,而 luaotfload 的基本模式似乎不支持该调整”。我很好奇是否有办法解决这个问题?

-25以下来自 FontForge 的屏幕截图显示,小型大写字母PA(单击图片可查看完整尺寸版本)之间应该有一个字距调整。

在此处输入图片描述

作为测试,我尝试将字距从-25增加到-80,但输出luatex没有变化。

答案1

您可以使用中的 LetterSpace 选项fontspec。如果您将其与 Renderer=basic 的输出进行比较,您会发现它保留了字距调整:

\documentclass{article}
\usepackage{microtype}
\usepackage{fontspec}
\setmainfont{LinLibertine_R}[%
    Extension = .otf,
    SmallCapsFeatures = {%
    LetterSpace = 10,
    Letters = SmallCaps}]
\setsansfont{LinLibertine_R}[%
    Extension = .otf,
    SmallCapsFeatures = {%
    LetterSpace = 10,
    Renderer = Basic,
    Letters = SmallCaps}]    
\begin{document}
\textsc{ipav} \par \sffamily \textsc{ipav}
\end{document}

在此处输入图片描述

相关内容