fontspec 错误:找不到字体“Libertinus Serif”

fontspec 错误:找不到字体“Libertinus Serif”

我有一个简短的 tex 文件,需要用 xetex 进行编译(最终我会添加 IPA,但由于以下内容不起作用,因此我省略了该操作):

\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage{english}
\setotherlanguage[variant=ancient]{greek}
\setmainfont{Libertinus Serif}

\begin{document}

The Greek word \textgreek{βάραθρον} means `gulf', `pit' or `cleft'.

\end{document}

结果:

kpathsea:make_tex: Invalid filename `Libertinus Serif', contains ' '

! Package fontspec Error: The font "Libertinus Serif" cannot be found.

这非常奇怪,因为我刚刚安装了 texlive (2020)。不是整个软件包,但肯定是基本软件包和附加软件包、字体和希腊语语言包。

我已经用‘truss’(Solaris)跟踪了执行情况,但恐怕我无法从中判断出哪里出了问题。

查找 /opt/texlive -name '自由人' 给我 83 个文件名,这样我就很确定字体已安装。

我将非常感激对此提供的帮助。

诺埃尔·亨特

后记:我确实尝试了 \usepackage{libertinus} 选项,但没有成功,但运行 luaotfload-tool 命令时,提示我未找到字体名称数据库,但已创建该数据库(kpsewhich LibertinusSerif-Regular.otf 显示文件位于正确位置)。运行 luaotfload-tool 后,xetex 运行正常。因此,似乎是 otf 字体数据库不存在。不过,这很奇怪,因为正如我最初所说,这是全新安装的 texlive。非常感谢那些回答我的问题的人。

答案1

如果您的安装配置正确,则需要安装 Libertinus 字体。它们位于 MikTeX 或 TeX Live 包中libertinus-fonts,也可能位于操作系统的包管理器中。

您也可以从存储库,但这样你就不会收到自动更新。

您可以使用命令 测试字体是否已安装kpsewhich LibertinusSerif-Regular.otf。您还可以使用 检查它是否位于系统目录中luaotfload-tool --find "Libertinus Serif"。根据您的操作系统,fc-match "Libertinus Serif"也可能有效。

如果字体存在但未找到,您可能需要确保您的 TeX 目录中正在搜索字体,然后重建字体缓存。对于 LuaTeX,命令是luaotfload-tool --update --force --prefer-texmf -v

如果字体已安装,但 XeTeX 找不到它们,您可以尝试加载\usepackage{libertinus},或尝试以推荐的方式加载:

\setmainfont{LibertinusSerif}[
   UprightFont = *-Regular,
   BoldFont = *-Bold,
   ItalicFont = *-Italic,
   BoldItalicFont = *-BoldItalic,
   Extension = .otf]

这将按文件名进行搜索,即使查找姓氏不起作用,也可能仍然有效。

相关内容