我想使用 XeLaTeX 和 TeX Gyre 字体(例如 TEX Gyre Termes)编写俄语文档。根据此处的文档http://mirrors.ctan.org/fonts/tex-gyre/doc/qtm-info.pdf(第 3-4 页)它支持西里尔字母,但我无法让它工作。我尝试过:
\documentclass{article}
\usepackage[main=russian, english]{babel}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\begin{document}
Hello world!
А это по-русски.
\end{document}
和
\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage{russian}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\begin{document}
Hello world!
А это по-русски.
\end{document}
(如果我理解正确的话,最好使用babel
而不是polyglossia
)
但什么都没起作用。这是我在输出 PDF 中得到的内容:
我做错了什么?
答案1
尽管声称cyrl
支持语言标签和西里尔字母块 0x0400–0x04FF,但在字形列表中却存在从 0x03F5 到 0x0E3F 的跳转。
我不确定开发人员是否开始考虑添加西里尔字母,但实际上他们并没有。
您可以使用主 TeX 发行版附带的 Tempora。
\documentclass{article}
\usepackage[main=russian, english]{babel}
\usepackage{fontspec}
\setmainfont{Tempora}[
Extension=.otf,
UprightFont=*-Regular,
ItalicFont=*-Italic,
BoldFont=*-Bold,
BoldItalicFont=*-BoldItalic,
]
\begin{document}
Hello world!
А это по-русски.
\end{document}
或者,使用 Stix Two,但字形与“标准” Times 略有不同。
\documentclass{article}
\usepackage[main=russian, english]{babel}
\usepackage{fontspec}
\setmainfont{STIXTwoText}[
Extension=.otf,
UprightFont=*-Regular,
ItalicFont=*-Italic,
BoldFont=*-Bold,
BoldItalicFont=*-BoldItalic,
]
\begin{document}
Hello world!
А это по-русски.
\end{document}