将 Tex Live 升级到 2023 版本后找不到字体

将 Tex Live 升级到 2023 版本后找不到字体

我在两台机器上使用 LaTeX,一台 Mac M1 笔记本电脑和一台运行 Ubuntu 18.04.6 的旧台式机。昨天,我将 Ubuntu 机器上的 TeX Live 升级到 2023 版。我发现我必须将对字体的所有引用更改LibreBaskervilleLibre Baskerville。我将 Mac 升级到 MacTeX 2023,发现现在它找不到 或LibreBaskervilleLibre Baskerville(两台电脑都顺利使用了这种字体,因为我得到了帮助这个问题)Mac 上的错误信息是:

! Package fontspec Error: The font "Libre Baskerville-Regular" cannot be
(fontspec)                found.

该字体似乎可用,因为在 Mac 上搜索 Libre Baskerville 会得到以下结果:

$ luaotfload-tool --find "Libre Baskerville" --fuzzy
luaotfload | resolve : Font "Libre Baskerville" found!
luaotfload | resolve : Resolved file name "/usr/local/texlive/2023/texmf-dist/fonts/truetype/impallari/librebaskerville/LibreBaskerville-Regular.ttf"

我怎样才能让两台计算机都找到 Libre Baskerville 字体?


更多细节

我运行来排版 .tex 文件的命令是:

latexmk -xelatex

Dissertate.sty导致错误的LaTeX 命令(在 中)是:

\defaultfontfeatures[Libre Baskerville]{
  Extension=.ttf,
  UprightFont    = *-Regular,
  ItalicFont     = *-Italic,
  BoldFont       = *-Bold,
  BoldItalicFont = *-BoldItalic,
  SmallCapsFont  = BaskervilleF-Regular.otf,
  SmallCapsFeatures={Letters=SmallCaps,Scale=1.1},
  Ligatures={Common,TeX}
}
\setmainfont{Libre Baskerville}
\newfontfamily\baskerville{Libre Baskerville}

给出的错误行号是上面显示的最后一行的行号。

Mac 上 TeX Live 的上一个版本(2020 年)可与扩展程序配合使用。Ubuntu上的 2023 版本需要.otf更改为。现在和在 Mac 上都失败了。.ttf.otf.ttf

如果我删除 Mac 上的空间,这样就Libre Baskerville始终如一LibreBaskerville(两台计算机上都使用的方式),我会收到略有不同的错误消息:

! Package fontspec Error: The font "LibreBaskerville-BoldItalic" cannot be
(fontspec)                found.

答案1

我找到了一个修复程序,它使 Tex Live 2023 能够在我的 Mac 和 Ubuntu 机器上与 Libre Baskerville 一起使用,包括数学规范,这需要 XeTeX。这很简单。首先,字体名称应该保留LibreBaskerville(没有空格)。其次,我只需要更改 中的两行Dissertate.cls,替换此处注释掉的行:

\defaultfontfeatures[LibreBaskerville]{
  %Extension=.otf,
  Extension=.ttf,
  UprightFont    = *-Regular,
  ItalicFont     = *-Italic,
  BoldFont       = *-Bold,
  %BoldItalicFont = *-BoldItalic,
  BoldItalicFont = LibreBskvl-BoldItalic,
  SmallCapsFont  = BaskervilleF-Regular.otf,
  SmallCapsFeatures={Letters=SmallCaps,Scale=1.1},
  Ligatures={Common,TeX}
}

我通过运行这个命令解决了这个问题:

luaotfload-tool --find "Libre Baskerville" --fuzzy

向我展示戴维斯洛这个答案,然后检查 Regular 字体所在目录中的文件。BoldItalic 具有上面显示的特殊名称,并且文件是 .otf,而不是 .ttf。

相关内容