Mac OSX 上的 XeLaTeX:使用用户字体

Mac OSX 上的 XeLaTeX:使用用户字体

我最近开始在 Mac OSX 上使用 XeLaTeX,但无法让 XeLaTeX 识别我已安装的字体。打开 Font Book,调出“首选项”对话框,并选择将字体安装到系统级目录 ( /System/Library/Fonts) 而不是用户级目录 ( ~/Library/fonts) 后,一切正常。

但是,我不希望将下载的字体与操作系统自带的字体混在一起。将来,我可能还希望 XeLaTeX 使用系统上任意目录中的字体(例如,本地 Git 存储库中的某个子目录)。我非常天真地猜测,XeLaTeX 找不到我的用户级字体的原因是它们不在操作系统字体缓存中。但是,调用fc-cache我的用户级字体目录仍然不会更新我fc-list使用用户字体获得的输出。

所以,我的问题是这样:如何让 XeLaTeX 使用位于系统上任意目录中的 TTF 和 OTF 字体?目前,我只能让 XeLaTeX 使用系统字体。

感谢您的见解!

答案1

fontspec允许设置不在当前搜索路径(或系统范围内安装)中的特定字体的路径。此示例SpecialFont.ttf在下载后立即使用:

% !TEX TS-program = XeLaTeX
\documentclass[a4paper]{article}

\usepackage{fontspec,lipsum}

\setmainfont[Path=/Users/username/Downloads/]{SpecialFont.ttf}

\begin{document}
\lipsum
\end{document} 

答案2

@hakaze 的回答对我帮助很大。我仍然需要添加一些参数,以便可以找到每个变体:

\setmainfont{LibertinusSerif}[Path = input/fonts/,
                              Extension = .otf,
                              UprightFont = *-Regular,
                              BoldFont = *-Bold,
                              ItalicFont = *-Italic,
                              BoldItalicFont = *-BoldItalic,
                              Ligatures=TeX
                             ]

如 fontspec 中所述文档

input/fonts/ 文件夹包含:

LibertinusSerif-BoldItalic.otf
LibertinusSerif-Bold.otf
LibertinusSerifDisplay-Regular.otf
LibertinusSerifInitials-Regular.otf
LibertinusSerif-Italic.otf
LibertinusSerif-Regular.otf
LibertinusSerif-SemiboldItalic.otf
LibertinusSerif-Semibold.otf

相关内容