为什么我应该使用 \usepackage[T1]{fontenc}?

为什么我应该使用 \usepackage[T1]{fontenc}?

作为一名以英语为母语的人,我大部分时间都能够假装 ASCII 就足够了,并且能够将字体编码视为不是我的问题。我看到了很多我应该\usepackage[T1]{fontenc}在序言中包含的建议。(例如,参见第 337 页LaTeX 伴侣) 但实际上并没有充分解释为什么我应该这样做。

那么,如果我用英语写作,并且只需要偶尔使用诸如此类的东西G\"odel,遵循这些建议对我有什么好处呢?

答案1

请注意,这是字体编码(确定使用哪种字体),而不是输入编码。

TeX 的默认字体编码 (OT1) 是 7 位,使用具有 128 个字形的字体,因此不将重音字符作为单独的字形。因此,字母 ö 是通过在现有的“o”字形上添加重音符号来生成的。

T1 字体编码是 8 位编码,使用具有 256 个字形的字体。因此,'ö' 实际上是字体中的一个字形。许多较旧的字体也有为其设计的 T1 变体,许多较新的字体仅在 T1 中可用。我认为“Computer Modern”最初是 OT1,而“Latin Modern”是 T1。(查看OT1 字体编码T1 字体编码

如果你不使用\usepackage[T1]{fontenc}

答案2

除了 @ShreevatsaR 列出的为什么即使在主要用英语书写时也建议使用 T1 字体编码的原因之外,还有两个原因没有列在他的列表中:

  • TeX 仅当这些字符是来自同一字体的真实字形时,才能在字符之间应用连字和字距调整。在 OT1(具有 128 个字形)中,您只有或多或少的 ASCII 字符,并且所有变音符号等都缺失。

  • 每当使用变音符号时,在输出中搜索就不起作用,因为输出最终会变成复杂的框结构而不是字符。

因此,继续使用您偶尔举的例子G\"odel:如果字体设计师决定由于 的形状,G需要对以下 进行一些字距调整o,那么ö他可以在 T1 中指定这一点,但不能在 OT1 中指定(因为ö在该字体编码中,这不是单个字形)。字符之间有很多字距调整。

第二点意味着如果有人在你的论文(例如,以 PDF 格式发布到网上)中搜索该名字Gödel,那么将找不到该名字。

因此,简而言之,只要使用单个变音符号,T1 字体就会提供稍微好一点的输出,因为字距调整更好,连字符仍然有效,从输出中剪切粘贴仍然有效,并且在输出中搜索也可以正常工作。

相关内容