使用 TTF 制作便携文档的最简单方法

使用 TTF 制作便携文档的最简单方法

虽然我已经找到了办法安装字体,我想要分发一份.tex文档及其使用的任何字体,并且能够编译它而不必安装这些字体。

例如,我会将.tex文件与.afm.dvi任何格式一起分发,这样另一个作者就可以编辑该文档并使用 texlive 或 miktex(或任何平台下的任何其他字体)对其进行编译,而无需安装字体,只需使用本地重新分发的字体即可。

这可能吗? 怎么做?

提前致谢。

答案1

假设字体重新分发是合法的,我建议使用 XeLaTeX 是确保可移植性的最简单方法。有两种可能性:

让用户安装字体

由于 XeLaTeX 可以使用任何系统字体,并且在大多数系统上安装字体非常简单,因此最强大的解决方案是分发字体,并让用户使用常规字体安装方法进行安装(我认为在大多数系统上都涉及将文件拖到主字体文件夹。)如果所讨论的字体已作为系统字体安装,那就更好了。

该方法的优点是:

  1. 无论文档位于系统中的什么位置,它仍然会正确编译。
  2. 后续文档无需与字体一起分发。
  3. 字体按其常规名称加载。
  4. 不同粗细/面貌的字体将自动可用。

请参阅 XeLaTeX 对此问题的回答:如何在文档中的一小部分文本中使用特定字体?有关 XeLaTeX 中字体加载的更多详细信息。

本地加载字体

如果您确实不希望用户必须安装任何东西(或者由于管理原因他们无法安装),XeLaTeX 可以通过文件名加载字体。这样,字体就可以与文档位于同一文件夹中(或其中的某个子文件夹中)。

该方法具有以下缺点

  1. 源文件必须与字体(文件夹)保留在同一个文件夹中。
  2. 字体必须与每个文档一起分发。
  3. 字体通过文件名加载,不同平台的文件名可能不同。
  4. 不同的重量/面必须分别装载。

如果用户可以访问共享磁盘空间,那么一个折衷的解决方案是使用此方法,但将字体放在共享位置。

加载 ./fonts 目录中的字体有关如何实施这些解决方案的详细信息。

答案2

您可以使用 perl 脚本 mkjobtexmf (在 CTAN 上)生成一个包含所有必要文件的小型 texmf 树(您至少应该排除带有格式的文件,例如--exclude-ext=fmt)。

然后用户只需要知道如何将 texmf-tree 添加到他们的系统中。对于 miktex,这很容易:他们可以使用 miktex-settings 或 来添加它initexmf --register-root。TeXLive 用户必须添加路径,例如 TEXMFHOME 或 TEXMFLOCAL。

如果您不希望用户必须运行 updmap,您应该直接在文档中添加必要的地图文件\pdfmapfile{...}(如果您使用 pdftex)。

相关内容