我已将文档的字体更改为 ttf 字体(通过切换到 lualatex 并使用关键字\setmainfont{}
)。一切都很好。
但是,文档中的某些句子/单词我仍然会使用默认的 Latex 字体。
我怎样才能切换回默认的乳胶字体(仅其中某些部分)?
答案1
从你的回答来看,你真正想要的是切换到默认字体,而你有一个XY 问题。 最好的方法是切换到 OpenType 字体 Latin Modern Roman(或 New Computer Modern 或 CMU Serif,它们都是 Computer Modern 的 OpenType 克隆)。它们支持旧字体的所有功能,甚至更多。
您可以通过将其声明为字体系列来实现这一点:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{TeX Gyre Adventor}[Scale=1.0]
\newfontfamily\LMR{Latin Modern Roman}[
Scale=MatchUppercase,
Ligatures={Common,TeX}]
\DeclareTextFontCommand{\textlm}{\LMR}
\begin{document}
Adventor and \textlm{Latin Modern Roman}.
\end{document}
该命令\fontspec{Latin Modern Roman}
也可以起作用,但我不推荐它。
要回答您直接提出的问题,在文档中间切换到 Type 1 字体意味着选择 NFSS 字体系列和字体编码。几乎所有您想要使用的文本字体都已转换为更现代的格式,因此您更有可能需要使用符号字体来执行此操作,但这里我给出了一个切换到 TeX Gyre Adventor 的 T1 编码版本的虚构示例。
\documentclass{article}
\usepackage{fontspec}
\DeclareTextFontCommand\textag{\fontencoding{T1}\fontfamily{qag}\selectfont}
\begin{document}
\textag{Adventor} and Latin Modern Roman.
\end{document}
如果由于某种原因您想要在同一字体的传统编码和现代编码之间切换,您可以使用选项加载字体NFSSFamily=
,然后使用 在 Unicode 和传统编码之间切换\fontencoding
。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Latin Modern Roman}[NFSSFamily=lmr]
\begin{document}
Latin Modern Roman {\fontencoding{T1}\selectfont in Cork encoding.}
\end{document}
在这个例子中,你看不出任何区别,但是将文档中的字体列表转储pdffonts
到
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
QCCKES+LMRoman10-Regular CID Type 0C Identity-H yes yes yes 4 0
XKHIOF+LMRoman10-Regular Type 1 Custom yes yes no 5 0
这表明它确实在现代字体和传统 Type 1 字体之间切换了。
答案2
总结评论答案,最后我做到了
\fontfamily{lmr}\selectfont{...content...}
其有效是因为lmr
(Latin Modern Roman) 是默认的 Latex 字体,并且此标记为其设置了它...content...
。