我使用 XeLaTeX 和fontspec
包。
现在,我喜欢使用 Linux Libertine 作为标准字体。倾斜(不是斜体)字符存储在不同的字体中。现在,要将它们与一起使用\slshape
,我必须明确选择它们:
\setmainfont[
SlantedFont={Linux Libertine Slanted O},
SmallCapsFeatures={Letters=SmallCaps},
Mapping=tex-text, Numbers=OldStyle, Variant=01, Ligatures={TeX, Common}, Contextuals=WordFinal,
% Style=Alternate, Ligatures={Rare, TeX, Common}
]{Linux Libertine O}
如您所见,在SlantedFont={Linux Libertine Slanted O}
参数中选择了倾斜字体。
当我\slshape
现在在我的文档中使用时:
{\slshape \lipsum[1-2]}
它创建正确的倾斜文本。
(\usepackage{lipsum}
位于文件上方。)
现在,当我想使用小型大写字母时,我会使用\scshape
:
{\scshape \lipsum[3-4]}
文本是倾斜的小型大写字母!为了避免这种情况,我必须注释掉SlantedFont
中的参数\setmainfont
,这会使小型大写字母直立,但我失去了倾斜文本功能。
我怎样才能让两者都表现正确?
答案1
添加 ItalicFeatures 可以让你部分实现这一点...我的眼睛不够好,无法分辨出差异......
\setmainfont[
ItalicFont={Linux Libertine O}, ItalicFeatures={SmallCapsFont={Linux Libertine O Italic}},
SlantedFont={Linux Libertine Slanted O},
SmallCapsFont={Linux Libertine O},
SmallCapsFeatures={Letters=SmallCaps},
Mapping=tex-text, Numbers=OldStyle, Ligatures={TeX, Common}, Contextuals=WordFinal,
]{Linux Libertine O}
{\slshape Abc}
{\scshape Def}
{\scshape\itshape Ghi}
{\scshape\slshape Lmn}%
与上图类似的图像...GHI 和 Lmn 相同...但倾斜或斜体
答案2
在这种特殊情况下,省略SmallCapsFeatures
密钥就足够了:
\documentclass{article}
\usepackage{fontspec}
\setmainfont[
SlantedFont={Linux Libertine Slanted O},
SmallCapsFont={Linux Libertine O},
SmallCapsFeatures={Letters=SmallCaps},
Mapping=tex-text, Numbers=OldStyle, Ligatures={TeX, Common}, Contextuals=WordFinal,
]{Linux Libertine O}
\begin{document}
{\slshape Abc}
{\scshape Def}
{\scshape\itshape Ghi}
{\scshape\slshape Lmn}
\end{document}