如何使用 otfinst.py 安装 OTF 字体?

如何使用 otfinst.py 安装 OTF 字体?

我想安装一些 OTF 格式的字体以供 LaTeX 使用。

我知道我应该使用otfinst.py,但我完全不知道如何使用。该手册是我见过的最糟糕的手册。

我有三个想要转换的文件:Crimson-Roman.otf、Crimson-Bold.otf、Crimson-Italic.otf 和 Crimson-BoldItalic.otf。

脚本要求输入“berryname”,但我不知道在哪里设置它,也不知道它应该是什么。我想使用该字体中的旧式数字,如何生成它们,以及如何在 LaTeX 中选择它们?

那么 OTF 文件中所有其他文本替换的情况又如何呢?这些字形也会被转换吗?

字体编码是怎么回事?它使用 Ly1,那是什么?如果与此有关,我需要 UTF-8。

答案1

这里有一个好消息:如果您使用 XeTeX 或 LuaTeX,您不必转换 OTF 字体,您只需将它们安装在系统中即可直接使用它们。

以下是 Ubuntu 上的一个示例:

$ sudo cp EBGaramond.otf /usr/local/share/fonts
$ sudo fc-cache /usr/local/share/fonts
$ fc-list | grep Garamond
EB Garamond:style=Regular

然后你就可以在 LaTeX 中使用它了:

\usepackage{fontspec}
\usepackage{xunicode}
\defaultfontfeatures{Mapping=tex-text}
\setmainfont{EB Garamond}

所有 OpenType 功能均可通过 获得fontspec。例如参见这个项目它大量使用了 XeTeX 的 OpenType 功能。

因此,除非您严重依赖特定的 PDFTex 功能,否则如果您想使用 OTF 字体,我真的建议您使用 XeTeX(或 LuaTeX)。

答案2

不久前,我已成功转换 Adob​​e Garamond Pro。继续操作需自行承担风险。

首先创建一个目录,用于存放 OTF 文件和脚本otfinst.py。您需要配置脚本以满足您的要求。

1.设置编码

对于 T1,脚本的相关部分应编辑如下:

encoding = 'T1'
encodings = { 'T1':
              { 'berryencoding': '8t',
                'commandline': '-e fontools_t1',
                },
              }

2. 设置字体放置位置

使用kpsewhich,脚本会TEXMFHOME自动找到您的目录,但需要告知字体的位置。我不确定其他操作系统,但在 Mac OS X 上使用 MacTeX 时,有三个可能的目录:

  • /usr/local/texlive/2011– 需要root权限;用户不得修改;
  • /usr/local/texlive/texmf-local– 需要root权限;
  • ~/Library/texmf– 这是找到TEXMFHOMEkpsewhich,因此您需要从这里指定路线。

脚本中的路线已经正确设置:localfontsdir = '/tex/latex/localfonts/'

3. 支持哪些 OpenType 选项

正如脚本所明确解释的那样,它从每个元素中选择一个选项并进行所有排列。字距调整和连字始终处于选中状态,并且附加选项之一是支持旧数字 ( onum),因此它应该可以满足您的需求。

4.设置Berry名称

LaTeX 使用 Berry 名称来识别字体系列和对应的字体。还有 Berry 编码选项,例如衬线数字、旧数字、粗体、半粗体等。我不是专家,但我认为通过结合这两个,LaTeX 会选择合适的文件(因为我可以手动做同样的事情)。

如果您的字体系列未包含在这个文件,你应该运行otfinfo --family以获取其名称,然后创建一个自定义的 Berry 名称。因此:

$otfinfo --family Crimson-Roman.otf

假设输出为Crimson。考虑原始的 3 个字母标识(不干扰现有字体),例如c12并相应地编辑脚本:

berryname = { 'Minion Pro' : 'pmn',
                                            <missing part>
          'Hypatia Sans Pro' : 'phy',
          'Crimson' : 'c12',
          }

5.保存并运行

保存并运行脚本。在 Mac OS X 中,cd进入包含字体和脚本的目录并运行:

$sudo python otfinst.py Crimson*

输入 root/超级用户密码(因为texhash末尾有),您应该会看到活动。脚本结束后,它会运行提到的texhash,但我后来不得不自己再次运行它,因为我没有nfssext-cfr.sty。无论如何,您现在应该探索里面的配置localfonts目录TEXMFHOME,应该有一个名为的文件crimson.sty。打开它以查看可用的命令,例如设置旧数字。您可能需要下载如果nfssext-cfr.sty您还没有它(将它放在同一个目录中并$sudo texhash再次运行)。

6. 测试

\usepackage{crimson}在序言中创建一个测试文件并使用 pdfTeX 进行编译。它应该可以正常工作。

相关内容