如何正确将.TTF 文件添加到 TeXlive 本地文件夹?

如何正确将.TTF 文件添加到 TeXlive 本地文件夹?

我希望在我的类文件中使用自定义字体。为此,我将.ttf文件与.cls文件一起复制到texlive/texmf-local/tex/latex/local,然后运行texhash

令我惊讶的是,fontspec似乎无法找到字体文件。但是,如果我将这些.ttf文件直接复制到文件路径.tex,一切正常。

添加:即使我将字体文件复制到/texmf-local/fonts并运行texhashmktexlsr,我仍然会收到许多错误,例如Package fontspec: The font "***.otf" cannot be found.

我怎样才能正确地将这些.ttf文件添加到 TeXlive 本地文件夹,这样我就不必随每个.tex文件一起携带这些字体文件?(我宁愿不将这些字体安装为系统字体,因为它们仅在这个单个文档类中使用)

我在 macOS 上使用 XeLaTeX、TeXlive 2020。

答案1

我们texmf.cnf发现

% TrueType outline fonts.
TTFONTS = $TEXMFDOTDIR;$TEXMF/fonts/{truetype,opentype}//;$OSFONTDIR//

% OpenType outline fonts.
OPENTYPEFONTS = $TEXMFDOTDIR;$TEXMF/fonts/{opentype,truetype}//;$OSFONTDIR//

这就是.ttf寻找字体的地方。

如果我这样做kpsewhich -expand-var='$TEXMF',我会得到(重新格式化以便于阅读)

/<omitted personal id>/Library/texlive/2020/texmf-config,
/<omitted personal id>/Library/texlive/2020/texmf-var,
/<omitted personal id>/Library/texmf,
!!/usr/local/texlive/texmf-local,
!!/usr/local/texlive/2020/texmf-config,
!!/usr/local/texlive/2020/texmf-var,
!!/usr/local/texlive/2020/texmf-dist

所以你想将whatever.ttf字体保存为

/usr/local/texlive/texmf/local/fonts/truetype/whatever/whatever.ttf

然后运行mktexlsr(使用适当的权限)。之后,

\usepackage{fontspec}

\setmainfont{whatever}[
  Extension=.ttf,
  % other options
]

将找到该字体。

答案2

字体不会存储在texmf-local/tex目录树下,而是存储在 下temxf-local/fonts。TeX Live 默认在 下包含一些 ttf 字体fonts/truetype,我可能会为安装在 下的任何字体保留类似的结构texmf-local

相关内容