我用德语写了一篇论文,但必须引用大量希腊多音节文本。奇怪的是,当我将默认语言设置为德语,将另一种语言设置为希腊语时,我得到了 lambda 和 theta 的不同字形:
\documentclass[twoside,a4paper,12pt]{report}
\usepackage{polyglossia}
\setdefaultlanguage[variant=new]{german}
\setotherlanguage[variant=poly]{greek}
\usepackage{fontspec}
\defaultfontfeatures[\rmfamily,\sffamily]{Mapping=tex-text}
\setmainfont{CMU Serif}
\begin{document}
λαμβδα
\end{document}
如果我更改默认语言和其他语言,反之亦然,我会得到不同的字形(如果德语默认语言的字形看起来不那么丑陋,就不会出现问题)。
任何帮助表示感谢!
答案1
这似乎是 CMU Serif 的一个特性,当文字是拉丁文时,它会使用不同的希腊文字形。
你可以做
\setmainfont{CMU Serif}[Script=Greek]
结果是一样的。但是,最好使用\foreignlanguage
或otherlanguage
或otherlanguage*
环境适当地隔离其他语言。
\documentclass[twoside,a4paper,12pt]{report}
\usepackage{polyglossia}
\setdefaultlanguage[variant=new]{german}
\setotherlanguage[variant=poly]{greek}
\usepackage{fontspec}
\setmainfont{CMU Serif}
\begin{document}
Deutsch \foreignlanguage{greek}{λαμβδα} äöü
\end{document}
请注意
\defaultfontfeatures[\rmfamily,\sffamily]{Mapping=tex-text}
是不需要的,因为该功能会自动应用。