我需要在我的英文文档中排版一个越南语单词。我的文档是 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
,我假设您正在使用xelatex
或lualatex
。在这种情况下,请不要加载并以以下方式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}