在 LaTeX 中使用可缩放字体

在 LaTeX 中使用可缩放字体

我有一个 .mf 文件,它描述了字体中的字形。使用mftrace,我了解如何从 .mf 文件中获取 Adob​​e 字体度量信息 (.afm 文件) 和 Type1 字体 (.pfb 文件)。

如何在 LaTeX 中使用可缩放字体,以便它在大多数设备上都能很好地呈现并打印?(一些资料建议避免使用 TeX 位图字体来创建用于网络发布的文档)

答案1

这个问题目前无法回答。本回答旨在概述安装 TeX 字体时必须考虑的一些因素。

使用任意字体的最简单方法是使用 LuaTeX 或 XeTeX 作为编译器并加载包fontspec。这对于 opentype 或 truetype 字体来说是理想的选择。

我假设您想使用 TeX 或 pdfTeX,因此需要使用传统的 TeX 字体。

您所问的问题没有唯一的答案。这取决于字体以及您想要使用它的目的。安装包含单个符号的字体和设计用于排版具有多个连字符、字距调整对等的文本的字体之间存在很大差异。或者,再次,设计用于数学的字体。

至少需要满足以下条件:

  1. PFB 字体包含绘制每个字符(字形)图片的指令;
  2. 一个或多个 TFM(TeX 字体度量文件)- 提供有关包含每个字符的框的大小、如何调整某些字符序列(字距对、可能是连字符)的位置的信息;
  3. MAP 文件的一行或多行,通常为文件片段的形式.map
  4. 一个或多个字体定义文件(.fd),告诉 LaTeX 何时使用字体[此信息可以在文件.sty.tex文档中提供,但使用更方便.fd)。

此外,你可能需要

  1. 一个或多个编码文件(.enc);
  2. 一个或多个虚拟字体(.vf)[仅在组合不同字体的字符或需要伪造某些字符或形状时才严格需要,但在其他情况下它们也很方便]。

为了为字体创建 TFM,您需要 AFM。

关键问题:

  1. 您希望使用哪种编码?将字体提供的字符(或您希望使用的子集)与标准编码的字符表进行比较。例如,T1OT1。如果字体是符号字体(这意味着像 ding bats 而不是数学符号之类的东西),那么您可以跳过此步骤并使用字体自己的编码。在这种情况下,您可以安装未编码/原始字体(U)。在所有其他情况下,您需要在标准编码中找到一个好的匹配。
  2. 一个 TeX 字体就够了吗?文本字体不能包含超过 256 个字符,并且一些可用位置需要用于各种机械/技术目的。完全可以使用更大的 PFB 中的所有字符。但是,在这种情况下,您必须向 TeX 提供多个 TFM,所有这些 TFM 都可能基于单个 PFB。也就是说,一个 type1 字体可以制作多个 TeX 字体。
    • 在创建 TeX 字体时,包含超过 256 个字符的符号字体必须进行类似的拆分,因此,仅仅使用它们U并不一定意味着您想要这样做。
  3. 字符是如何命名的?它们的名称是否与您用于定义编码的任何文件.etx中的名称相匹配。.enc

根据这些问题的答案,您可以使用 等工具afm2plfontinst创建 TeX 字体。在最简单的情况下,这可能需要 5 分钟。在最复杂的情​​况下,可能需要更长的时间。

因此,首先评估您正在处理的内容以及您想要在 TeX 功能方面实现的目标至关重要。

答案2

据我所知,afm 文件对于 TeX 来说不是必需的。

要将 type 1 字体安装在个人目录中,请将 pfb 文件移动到$TEXMFHOME/fonts/type1/public/mypackage/并将 tfm 文件移动到$TEXMFHOME/fonts/tfm/public/mypackage/(cfTeX 目录结构的描述)。

您还必须创建一个名为 的映射文件,mypackage.map其中每个字体占一行。在最简单的一种字体情况下,您必须输入myfont myfont <myfont.pfbTeXmyfont字体名称。将此文件移动到$TEXMFHOME/fonts/map/dvips/mypackage/。然后创建该文件$TEXMFHOME/web2c/updmap.cfg(如果尚不存在)并将该行添加Map mypackage.map到此文件。

updmap在命令行上运行,类型 1 字体应该可以工作。

相关内容