XeLaTex/Polyglossia 小写字母

XeLaTex/Polyglossia 小写字母

编译后,以下代码可以完美运行。

\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\defaultfontfeatures{Mapping=tex-text}
\setdefaultlanguage{english}
\setmainfont{CMU Serif}
\begin{document}
абц АБЦ \textsc{абц} \textit{абц} \textsl{абц}

abc ABC \textsc{abc} \textit{abc} \textsl{abc}
\end{document}

但是,如果我把英语改成塞尔维亚语

\setdefaultlanguage{serbian}

然后我收到警告

LaTeX Font Warning: Font shape `EU1/CMUSerif(2)/m/sc' undefined
(Font)              using `EU1/CMUSerif(2)/m/n' instead on input line 8.

并且小型大写字母无法正确显示。如何才能使小型大写字母在塞尔维亚语文档中正常工作(同时使用西里尔文和拉丁文脚本)?

编辑:我注意到如果我使用

\setdefaultlanguage[Script=Latin]{serbian}

小型大写字母可以正常工作,只有当我使用

\setdefaultlanguage[Script=Cyrillic]{serbian}

这是默认选项。

答案1

我找到了一个可行的解决方案。由于问题出在语言/文字组合上,我暂时将所有小写字母切换为默认语言。

\setmainfont{CMU Serif}[SmallCapsFont={CMU Serif},
                        SmallCapsFeatures={Language=Default,Letters=SmallCaps}]

如果有更好的解决方案,请描述。

相关内容