在选择 TTF、OpenType 和 Type1 时感到困惑

在选择 TTF、OpenType 和 Type1 时感到困惑

其实我对于TTF,OpenType,Type1等字体格式不太了解。

  1. TTF、OpenType、Type1 有什么区别?
  2. 在 LaTeX 生成的 PDF 中我应该使用哪一个?
  3. 如果我想使用其中之一,如何在 LaTeX 输入文件中明确指定?例如:我想在 TTF 或 OpenType 中使用 Helvetica,而不是 Type1。
  4. 是否可以使用同一种字体但使用 3 种不同的类型。例如:在我的 PDF 文档中,段落 A 使用 TTF 中的 Arial 字体,段落 B 使用 OpenType 中的 Arial 字体,段落 C 使用 Type1 中的 Arial 字体。

答案1

  1. TrueType 和 Type1 字体之间的基本区别在于前者使用二次样条曲线,而后者使用三次贝塞尔曲线。OpenType 是一种可以同时包含 Type1 和 TrueType 字体的包装格式,它还定义了原始格式无法实现的许多其他功能。因此,OpenType 字体可以是其中一种;通常.otf对基于 Type1 的 OpenType 和.ttf基于 TrueType 的 OpenType 使用扩展名。

  2. 渲染效果更好的字体。两种字体都有好字体和坏字体。

  3. 实际的选择是通过 Map 文件(通常是“pdftex.map”)完成的。典型的条目是

    ec-lmr10 LMRoman10-Regular "enclmec ReEncodeFont" <lm-ec.enc <lmr10.pfb
    

    enclmec第一个字段是 TFM 文件名,第二个字段是字体的 PostScript 名称;然后是一些说明:必须通过提供的矢量对字体进行重新编码lm-ec.enc;然后是文件的名称.pfb(这是一个 Type1 字体)。

  4. 你可以使用你喜欢的字体。以下是一个例子(纯 TeX)

    \pdfmapline{+xec-lmr10 LMRoman10-Regular "enclmec ReEncodeFont" <lm-ec.enc <<lmroman10-regular.otf}
    \font\x=ec-lmr10
    \font\y=xec-lmr10
    
    \x
    Lorem ipsum dolor sit amet
    
    \y
    Lorem ipsum dolor sit amet
    
    \bye
    

    我在 Map 文件中定义了 Latin Modern Roman 的“副本”;该文件只是与 TeX 文件位于同一目录中xec-lmr10.tfm的副本。由于技术原因,和字体必须完全嵌入 PDF 文件中,这就是 的含义。ec-lmr10.tfm.otf.ttf<<

    第一段用 呈现lmr10.pfb,第二段用 OpenType 字体呈现。

答案2

  1. 这是一个很大的话题,我认为最好访问维基百科、Apple、Microsoft 和 Adob​​e 的网站。

    PostScript Type 1 字体格式是最古老的格式,而 OpenType 是最新的格式:

    • PostScript 类型 1:Adobe
    • TrueType:Apple 和 Microsoft(对抗 Adob​​e)=> Apple AAT
    • OpenType:Adobe 和 Microsoft(对抗 Apple)
  2. OpenType 可以看作是 PostScript Type 1 格式的继承者。因此对于相同的字体,使用 OpenType 通常比 Type 1 更好。但结果可能相同。

    Type 1 使用三次贝塞尔曲线,TrueType 使用二次贝塞尔曲线,OpenType 可以同时使用。通常情况下,使用三次曲线效果会更好。但这并不是绝对的。

    很多时候我们别无选择。

  3. 最好读一下pdfTeX和DVIPDFMx手册中关于字体映射的部分。对于新手来说,安装字体比较困难。由于现在可以使用XeTeX和LuaTeX,因此使用fontspec包要容易得多。

    我希望有关传统 TeX 字体安装的信息(例如字体安装指南) 将仅保留用于历史记录。

  4. 是的,你可以。很抱歉,我没有太多时间展示一个完整的示例来安装不同格式和不同输出驱动程序的字体。fontspec在 XeLaTeX 或 LuaLaTeX 中使用,这很容易。

    例子:

    % XeLaTeX
    \documentclass{article}
    \usepackage{fontspec}
    \begin{document}
    \usefont{T1}{lmr}{m}{n}Latin Modern in Type 1 format.
    
    \usefont{EU1}{lmr}{m}{n}Latin Modern in OpenType format.
    \end{document}
    

相关内容