我想安装一些 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
不久前,我已成功转换 Adobe 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
– 这是找到TEXMFHOME
的kpsewhich
,因此您需要从这里指定路线。
脚本中的路线已经正确设置: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 进行编译。它应该可以正常工作。