xetex:默认语言(polyglossia 和 babel)之间的不同字形

xetex:默认语言(polyglossia 和 babel)之间的不同字形

我用德语写了一篇论文,但必须引用大量希腊多音节文本。奇怪的是,当我将默认语言设置为德语,将另一种语言设置为希腊语时,我得到了 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]

结果是一样的。但是,最好使用\foreignlanguageotherlanguageotherlanguage*环境适当地隔离其他语言。

\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}

是不需要的,因为该功能会自动应用。

相关内容