底部更新
我最近在 Ubuntu 13.04 系统上安装了 vanilla TeX Live 2013。大多数功能都正常。只是当我使用 LuaLaTeX 时遇到某些有问题的字体时,事情就变得糟糕了。
采取以下 MWE:
\documentclass{memoir}
\usepackage{fontspec}
\setmainfont{Garmond Premier Pro}
Regular\\
\textit{Italics}\\
\textbf{Bold}}\\
\textit{\textbf{Bold Italics}}\\
\end{document}
如果在我的系统上使用 LuaTeX 进行编译,Garamond Med. Italic 用于斜体(而不是常规斜体),Semi Bold Italic 用于粗体斜体(而不是正确的 Bold Italic Font)。粗体正确完成。
我应该能够通过\setmainfont
如下方式更改命令来修复此问题:
\setmainfont[ItalicFont=GaramondPremrPro-It.otf]{Garamond Premier Pro}
但这会导致 LuaLaTeX 崩溃:
luaotfload | db : reload initiated; reason: “unresolved font name: ‘garamond
premrproitotf’”
! LuaTeX error .../texmf-dist/tex/luatex/luaotfload/luaotfload-lib dir.lua:81: s
tack overflow.
<to be read again>
\scan_stop:
l.13 {Garamond Premier Pro}
并且无法编译。所以事情就变得奇怪了。如果我以 root 身份编译它,它仍然会在同一个地方暂停,但会继续运行并正确编译。好吧,也许这并不奇怪,但真正奇怪的是这里。我在我的系统上创建了一个新用户,他也能够以相同的暂停编译相同的代码。换句话说,只有我,我的主要用户,无法正确编译代码。
更奇怪的是。我有几个其他字体也会出现问题。有些字体我可以通过复制文件来解决/usr/local/texlive/2013/texmf-var/luatex-cache/generic/names
,~/.texlive/2013/...
文档可以正常编译。
我无法弄清楚后一种解决方案在什么情况下有效,什么情况下无效,但至少对于 Garamond Premier Pro 来说它无效。
我在标题中加入了“权限”,因为这听起来像是权限问题,但行为不一致,所以我不确定。我可以尝试重新安装,但我真的不确定我第一次做错了什么导致这个问题。
附注:我可以指定全部中的字体路径\setmainfont
,如 {GaramondPremrPro.itf},它可以工作,但它不会使用不同的光学尺寸。只是将特定路径与 结合起来{Garamond Premier Pro}
会导致问题。
更新感谢 phg,我现在使用 postscript 名称,这有助于至少我的主用户帐户现在能够使用 LuaLaTeX 处理任何字体。但是,主要问题仍然存在,如果有问题字体,则我的主帐户会因错误而停止编译。如果我以 root 或任何其他用户身份编译代码,则它将编译。此时,当我将文件从我的主帐户复制到.../luatex-cache/generic/names/
我的主帐户时,我也可以成功编译文档。在我开始使用 postscript 名称之前,即使我采取了这种解决方法,某些字体也根本无法编译。
因此至少现在它不再那么重要但仍然令人烦恼和困惑。