在 T5 上使用 TeX Gyre Pagella 排版单个单词,使用 Palatino 排版其他所有单词

在 T5 上使用 TeX Gyre Pagella 排版单个单词,使用 Palatino 排版其他所有单词

我需要在我的英文文档中排版一个越南语单词。我的文档是 Palatino 字体,不支持 T5,因此在我切换到 T5 后,它使用了不同的字体。到目前为止,这与这个问题。但是,解决方案是将主字体更改为 TeX Gyre Pagella。我想应用该解决方案本地,即仅对这一个词使用 TeX Gyre Pagella。

\documentclass{memoir}
\usepackage[T1,T5]{fontenc}
\usepackage{fontspec}
\usepackage[defaultsups]{newpxtext}
\usepackage[english,vietnamese]{babel}
\newfontfamily\vnfont{TeX Gyre Pagella}

\begin{document}
Nguyen

\noindent

{\fontencoding{T5}\vnfont\selectfont{}Nguy\~\ecircumflex{}n}
\end{document}

但是,这会失败:

LaTeX 错误:\ecircumflex编码中命令不可用TU

如果我改写\vnfont\fontencoding{T5},那么后者将覆盖前者,并且我会得到非 Palatino 风格的字体。

答案1

由于您正在加载fontspec,我假设您正在使用xelatexlualatex。在这种情况下,请不要加载并以以下方式fontenc声明字体:vietnamese

\documentclass{memoir}

\usepackage[english]{babel}

\babelfont[vietnamese]{rm}{TeX Gyre Pagella}

\begin{document}

Nguyen in English text.

\foreignlanguage{vietnamese}{Nguy\~{\^{e}}n}

% Better:
\foreignlanguage{vietnamese}{Nguyễn}

\end{document}

答案2

我通过去掉fontenc红鲱鱼(我只是根据 VnTeX 文档的建议把它放在那里)并直接使用 UTF-8 来使它工作\vnfont

\documentclass{memoir}
\usepackage{fontspec}
\usepackage[defaultsups]{newpxtext}
\newfontfamily\vnfont{TeX Gyre Pagella}

\begin{document}
Nguyen, \vnfont Nguyễn, \normalfont and Nguyen.
\end{document}

相关内容