考虑以下示例,其中我添加了我使用的字体设置(我知道它不是最小的,但我拥有所有代码以防它很重要):
% lualatex test.tex
\DocumentMetadata{}
\documentclass{article}
\usepackage{fontspec}
\setmainfont[
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
Ligatures = {
TeX,
CommonOff
}
]{texgyrepagella}
%\newfontfamily{\cyrillicfont}{texgyrepagella} % <-- That didn't work!
\usepackage{unicode-math}
\setmathfont{texgyrepagella-math.otf}
\setmathfont[
version = bold,
FakeBold = 4
]{texgyrepagella-math.otf}
\usepackage{polyglossia}
\setdefaultlanguage{danish}
\setotherlanguages{russian}
\begin{document}
\textrussian{Па́вел Алексе́евич Черенко́в}
\end{document}
可以看出,输出是错误的。
如何获得正确的西里尔字母输出?
笔记
“真实”文档是用丹麦语排版的,但我需要用西里尔语排版的单个俄语名字。
答案1
您必须使用支持西里尔文的字体,而 TeX Gyre 字体不支持。在我的系统上,Palatino 支持。您可能需要寻找西里尔文 Palatino(或完全更改字体)。
\DocumentMetadata{}
\documentclass{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\usepackage{polyglossia}
\setmainfont{texgyrepagella}[
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
Ligatures = {
TeX,
CommonOff
}
]
\newfontfamily{\cyrillicfont}{Palatino} % <-- That didn't work!
\setmathfont{texgyrepagella-math.otf}
\setmathfont{texgyrepagella-math.otf}[
version = bold,
FakeBold = 4
]
\setdefaultlanguage{danish}
\setotherlanguages{russian}
\begin{document}
\textrussian{Па́вел Алексе́евич Черенко́в}
\end{document}
不要混淆包的加载和设置。