欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

latex字体_[LaTeX 引擎] XeLaTeX + macOS,通过字体名调用发行版字体

发布时间:2025/3/20 编程问答 80 豆豆
生活随笔 收集整理的这篇文章主要介绍了 latex字体_[LaTeX 引擎] XeLaTeX + macOS,通过字体名调用发行版字体 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

本文已加入专栏文章目录,归入「基本使用」文章系列。

名词约定

  • 本文所称字体,特指 ttf,otf 和 ttc 格式的字体
  • 本文默认使用 macOS 操作系统,安装了 TeX Live 发行版,执行 xelatex 进行编译

字体文件在哪里

一开始,字体在电脑的两个地方

  • 系统预装
    • 主要在目录 /Library/Fonts/ 和 /System/Library/Fonts/
    • 少量 Downloadable font assets 在目录 /System/Library/Assets/com_apple_MobileAsset_Font5(路径末尾的 5 可能为其他数字)
  • 发行版预装
    • ttf 字体在目录 $TEXMFDIST/fonts/truetype
    • otf 字体在目录 $TEXMFDIST/fonts/opentype
    • 其中,$TEXMFDIST 是发行版主文件树的位置,一般为 /usr/local/texlive/<dist-info>/texmf-dist,可通过 kpsewhich --var-value TEXMFDIST 来获取

macOS 下的字体调用,问题的引入

在使用 fontspec 时,

  • 系统预装的字体,只能通过字体名来调用
  • 发行版预装的字体,只能通过文件名来调用

而在 Windows 里,系统和发行版预装的字体,都可以通过字体名和文件名两种方式来调用。这样,就会遇到 tex 文件的可移植性问题。

一种解决方案

对普通用户比较友好的解决方案是,在 Font Book.app(字体册应用)里,新建 Font Library(字体资源库), 然后把发行版预装字体的两个目录添加进去。

  • 优势
    • 发行版预装字体也能通过字体名调用了
    • 字体名可以在字体册里便利查询
  • 劣势
    • 发行版里新安装的字体,不会自动导入
    • 发行版预装字体较多,可能让字体册卡死
    • 已经导入的字体,某些会在一段时间后被自动禁用,笔者尚不知晓解决方案

另一种解决方案

往字体册添加字体,有两种方式

  • 打开字体文件(默认使用字体册应用打开),点击「安装」,这会把字体拷贝到 ~/Library/Fonts/ 目录。同时,在字体册里,该字体会列入名为「用户」 的字体资源库。
  • 使用字体册的「加入字体」功能,把字体加入某个字体资源库。这些字体不会被拷贝到 ~/Library/Fonts/ 目录。 (这是第一个解决方案里提到的方式)

打开终端,执行下面两行,将在 ~/Library/Fonts/ 目录创建发行版字体目录的符号链接,这样也可以让使用者在字体册里「见到」发行版中的字体。

ln -s `kpsewhich -var-value TEXMFDIST`/fonts/truetype ~/Library/Fonts/texlive-truetype ln -s `kpsewhich -var-value TEXMFDIST`/fonts/opentype ~/Library/Fonts/texlive-opentype

与第一种方案相比,

  • 优势
    • 发行版新安装的字体,会在下次打开字体册应用时自动导入
  • 劣势
    • 所有字体都在名为「用户」的字体库里,不能分库也不能自定义库名

补充

  • 在使用 xecjk/ctex宏包集 设置中文字体时,以上信息依然有效

没写的内容

  • 用户其他目录下的字体与texmf 的OSFONTDIR 变量
  • 对未加入字体册的字体,查看它们的信息
  • 参考资料

部分参考资料

[1] Mac OS X:字体位置及其目的 (en-us) - support.apple.com
[2] 在 Mac 上的“字体册”中创建字体集和资源库 - support.apple.com
[3] fontspec (xelatex) finding fonts by name, installed or in TEXMFHOME - TeX.SX
[4] The fontspec package, Font selection for XeLaTeX and LuaLaTeX, sec. 2 - ctan.org/pkg/fontspec

总结

以上是生活随笔为你收集整理的latex字体_[LaTeX 引擎] XeLaTeX + macOS,通过字体名调用发行版字体的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。