编译后,以下代码可以完美运行。
\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}]
如果有更好的解决方案,请描述。