当使用 fontspec 进行假倾斜和小型大写字母缩放时,小型大写字母也会假倾斜,有没有一个好的解决方法?

当使用 fontspec 进行假倾斜和小型大写字母缩放时,小型大写字母也会假倾斜,有没有一个好的解决方法?

使用 fontspec 制作假小写字母时,假倾斜与使用 scale 效果不佳。似乎存在某种定义泄漏,fontspec即当我同时指定SmallCapsFeature和时,SlantedFeatures我的\scshape文本也会倾斜。预期行为是\textsc{FOO}应该小但直,并且\textsl{FOO}应该倾斜。但是,如下面的示例所示,情况并非如此,相反,\textsc{FOO}既小又倾斜。

\documentclass{memoir}

\usepackage{fontspec}

\begin{document}
\setmainfont[
  SmallCapsFont={Linux Libertine O},
  SmallCapsFeatures={Scale=0.5},
  SlantedFont={Linux Libertine O},
  SlantedFeatures={FakeSlant=0.5},
]{Latin Modern Roman}


Small Caps is slanted now: \textsc{FOO} and also slanted is slanted: \textsl{FOO} 

\end{document}

在此处输入图片描述

答案1

这看起来像是一个错误fontspec;您可以通过指定FakeSlant=0小型大写字体来解决它。

\setmainfont{Latin Modern Roman}[
  SmallCapsFont={Linux Libertine O},
  SmallCapsFeatures={Scale=0.5,FakeSlant=0},
  SlantedFont={Linux Libertine O},
  SlantedFeatures={FakeSlant=0.5},
]

请注意,我使用了最新版本的fontspec,其中指定了选项字体名称。

在此处输入图片描述

相关内容