我尝试将 LuaTeX 与 Adobe 的 Garamond Premier Pro 一起使用,但是它不起作用,并提示:
! error: (type 0): cannot find file ''
! ==> Fatal error occurred, no output PDF file produced!
而 XeTeX 编译得很好。
我设法将问题缩小到以下代码:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Garamond Premier Pro}
\begin{document}
hello
\end{document}
我正在使用 TeXLive 2018。
根据 Ulrike 的建议,我通过文件名更改了字体名称:
\documentclass{article}
\usepackage{fontspec}
% \setmainfont{Garamond Premier Pro}
\setmainfont{GaramondPremrPro.otf}
\begin{document}
hello
\end{document}
这不起作用:/
因此,我尝试GaramondPremrPro.otf
从安装目录 ( $HOME/.local/share/fonts/
) 复制到当前目录,然后它成功了(如果我将它们放在 texmf 树中的目录中,它也会成功)。所以我猜问题出在 Ubuntu 的字体目录中……
附录:我觉得有些事情很奇怪……
假设我只有当前目录中的文件GaramondPremrPro.otf
,并通过文件名调用字体:
\documentclass{article}
\usepackage{fontspec}
% \setmainfont{Garamond Premier Pro}
\setmainfont{GaramondPremrPro.otf}
\begin{document}
hello
\bfseries
hello
\end{document}
我收到仅字体替换警告,因为 LaTeX 找不到粗体字体文件:
LaTeX Font Warning: Font shape `TU/GaramondPremrPro.otf(0)/bx/n' undefined
(Font) using `TU/GaramondPremrPro.otf(0)/m/n' instead on input line 7.
但是,如果我用字体名称调用它:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Garamond Premier Pro}
% \setmainfont{GaramondPremrPro.otf}
\begin{document}
hello
\bfseries
hello
\end{document}
我cannot find file ''
从上面得到了神秘的信息。
如果我删除该\bfseries
指令,两个版本都可以运行。
答案1
看来其中一个缓存文件已损坏。
删除缓存文件后
/usr/local/texlive/2018/texmf-var/luatex-cache/generic/names/
以及
/usr/local/texlive/2018/texmf-var/luatex-cache/generic/fonts/otl
并让 luaotfload 重新创建字体可以使用的所有内容。