使用 TeX Gyre Pagella 将 PTSerif-TLF 用于西里尔文

使用 TeX Gyre Pagella 将 PTSerif-TLF 用于西里尔文

我想在 TeX Gyre Pagella 文本和数学字体文档中包含一些西里尔文。我使用的是 TeXLive 2019。

正如所指出的将西里尔文与 Tex Gyre Pagella 和 pdflatex 一起使用?pdflatex在以下源上运行正常:

\documentclass{article}

\usepackage[T1,T2A]{fontenc}
\usepackage[russian,main=english]{babel}
\usepackage{paratype}
\usepackage{tgpagella}
\usepackage{substitutefont}
\substitutefont{T2A}{\rmdefault}{PTSerif-TLF}

\usepackage{amsmath}

\usepackage[math]{blindtext}

\begin{document}

The topologist is {\Russian Алекс\'{а}ндров}.

\blindmathpaper

\end{document}

然而在以下源上运行xelatex会产生输出,其中指示的西里尔字母会消失:

\documentclass{article}

\usepackage[T2A,T1]{fontenc}
\usepackage[russian,main=english]{babel}
\usepackage{amsmath} % load here to avoid \dddot clash
\usepackage{fontspec}
\usepackage{paratype}
\setmainfont[Ligatures=TeX]{TeX Gyre Pagella}
\usepackage{substitutefont}%
\substitutefont{T2A}{\rmdefault}{PTSerif-TLF}% 
\usepackage{unicode-math}
\setmathfont{TeX Gyre Pagella Math}

\usepackage[math]{blindtext}

\begin{document}

The topologist is {\Russian Алекс\'{а}ндров}.

\blindmathpaper

\end{document}

问题:应如何修复第二个来源以便让西里尔字母也能出现?

(我确实将其放入Map paratype-truetype.map了本地updmap.cfg文件并运行了updmap-user。)

答案1

如果您使用的是 XeTeX 或 LuaTex,则应使用其他方式切换字体。一种不错的方法是使用babel\babelfont命令:

\documentclass{article}

\usepackage[russian,main=english]{babel}
\usepackage{amsmath} % load here to avoid \dddot clash
\babelfont{rm}[Ligatures=TeX]{TeX Gyre Pagella}
\babelfont[russian]{rm}[Ligatures=TeX]{PT Serif}
\usepackage{unicode-math}
\setmathfont{TeX Gyre Pagella Math}

\usepackage[math]{blindtext}

\begin{document}

The topologist is {\Russian Алекс\'{а}ндров}.

\blindmathpaper

\end{document}

结果:

在此处输入图片描述

答案2

XeLaTeX 和 LuaLaTeX 使用完全不同的字体范例,因为一切在单一输出编码中可用,即TU。因此substitutefont这里没有任何意义。

您可以\babelfont按照其他答案中的建议使用,但您会收到几个虚假警告:对字体的支持babel仍在开发中。

polyglossia

\documentclass{article}

\usepackage{polyglossia}
\usepackage{amsmath}
\usepackage{unicode-math}

\setmainlanguage{english}
\setotherlanguage{russian}

\setmainfont{TeX Gyre Pagella}
\newfontfamily{\cyrillicfont}{PT Serif}
\setmathfont{TeX Gyre Pagella Math}

\usepackage[math]{blindtext}

\begin{document}

The topologist is \foreignlanguage{russian}{Алекс\'{а}ндров}.

\blindmathpaper

\end{document}

在此处输入图片描述

相关内容