使用 polyglossia 和 lualatex 时的西里尔字母单词

使用 polyglossia 和 lualatex 时的西里尔字母单词

考虑以下示例,其中我添加了我使用的字体设置(我知道它不是最小的,但我拥有所有代码以防它很重要):

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

不要混淆包的加载和设置。

在此处输入图片描述

相关内容