![哪里可以找到 TEX 的默认字体?可以更改吗?](https://linux22.com/image/443020/%E5%93%AA%E9%87%8C%E5%8F%AF%E4%BB%A5%E6%89%BE%E5%88%B0%20TEX%20%E7%9A%84%E9%BB%98%E8%AE%A4%E5%AD%97%E4%BD%93%EF%BC%9F%E5%8F%AF%E4%BB%A5%E6%9B%B4%E6%94%B9%E5%90%97%EF%BC%9F.png)
编译 TEX 文档时,引擎会使用某个字体中的字形,而该字体必须位于某个位置。我期望字体的路径会写在 TEX 引擎的某个位置。如果是这样,那么字体在哪里?是否可以更改 TEX 引擎的设置,以便它会查找其他字体作为默认字体?如果我的期望是错误的,那么如何获取默认字体的字形?
编辑:默认字体是在文档中没有指示应使用哪种字体时使用的字体。
答案1
给定一个文档
\documentclass{article}
\begin{document}
hello
\end{document}
如果没有指定字体,则字体将按照文档类所指定的方式使用,或者如果没有指定字体系列,则采用 LaTeX 默认字体。
在这种情况下,article
指定默认大小为 10pt,但未指定字体系列,因此使用默认格式。
在 pdflatex 或 latex 中,编码 OT1 原始 7 位 TeX 编码和 cmr 系列(Computer Modern Roman)。如果您处理文档,日志末尾会显示
/usr/local/texlive/2021/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb
表明唯一使用的字体是 cmr10 的 Type1(PostScript)版本。
如果您使用 lualatex 处理相同的内容,那么您将获得默认编码格式 TU(Unicode)和默认格式lmr
(Latin Modern)。日志末尾再次显示了所使用的每种字体的完整路径(在本例中只有一个)
/usr/local/texlive/2021/texmf-dist/fonts/opentype/public/lm/lmroman10-regular.otf
显示 Latin Modern Roman 10 的 OpenType 版本
这些 OT1(或 TU)默认值在格式中设置,具体来说是base/fonttext.ltx
包含以下行的文件
\ifx\Umathcode\@undefined
\fontencoding{OT1}
\def\@fontenc@load@list{\@elt{T1,OT1}}
\def\rmsubstdefault{cmr}
\def\sfsubstdefault{cmss}
\def\ttsubstdefault{cmtt}
\LoadFontDefinitionFile{TS1}{cmr}
\else
\input {tuenc.def}
\fontencoding{TU}
\def\@fontenc@load@list{\@elt{TU}}
\DeclareFontSubstitution{TU}{lmr}{m}{n}
\LoadFontDefinitionFile{TU}{lmr}
\LoadFontDefinitionFile{TU}{lmss}
\LoadFontDefinitionFile{TU}{lmtt}
\def\rmsubstdefault{lmr}
\def\sfsubstdefault{lmss}
\def\ttsubstdefault{lmtt}
\LoadFontDefinitionFile{TS1}{lmr}
\DeclareFontSubstitution{TU}{lmr}{m}{n}
\fi
其中真的分支在 pdflatex 和 latex 中执行,并且错误的分支在lualatex和xelatex中执行。
在 原则您可以复制并修改它以使用不同的字体集,然后重建格式,如果文件存在,将优先使用该文件。但实际上您永远不应该这样做,它与简单地使用相同的命令fonttext.ltx
更改文档或自定义文档类中的字体相比没有任何优势,并且会使您的“latex”格式与其他所有 latex 安装不兼容。当我们在 20 世纪 90 年代初期添加此功能时,它还有一定的道理,当时还没有广泛使用的常见发行版,例如 miktex 和 texlive,不同的网站有不同的字体可用(更改文档中的字体可能需要几分钟而不是几分之一秒),但现在它应该被视为一个从未使用过的过时功能。fonttext.cfg
.cfg
.ltx
答案2
这取决于您使用的引擎。
出于这个原因,我倾向于使用xetex
,它允许您指定替代文本字体并允许使用 Unicode 字符。
https://plain-xetex.neocities.org/fonts.html
TeX 的默认设置很快就会变得深奥难懂;如果您想探索这一点,最好进行离线讨论。