在试用时,lualatex
我TL 13
遇到了一个奇怪的问题。某些字体形状会毫无原因地产生错误。以下示例来自Stempel Garamond LT Std
Adobe 的 Font Folio 11,但我也在其他字体中遇到过这种情况。
\documentclass[]{scrbook}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX,ItalicFont={Stempel Garamond LT Std Italic},BoldFont={Stempel Garamond LT Std Bold},BoldItalicFont={Stempel Garamond LT Std Bold Italic}]{Stempel Garamond LT Std Roman}
\begin{document}
Regular \textbf{bold} \emph{italics \textbf{bold italics}}
\end{document}
这会导致以下错误消息:
LaTeX Font Info: Font shape `EU2/StempelGaramondLTStdRoman(0)/m/sl' in size <10.95> not available
(Font) Font shape `EU2/StempelGaramondLTStdRoman(0)/m/it' tried instead on input line 10.
luaotfload | load: auto-selecting default features for script: latn
luaotfload | load: no defaults for script “latn”, falling back to “dflt”
luaotfload | load: invalid request “/Users/simi/FontExplorerX/S/Stempel” of type anon
luaotfload | load: use square bracket syntax or consult the documentation.
luaotfload | load: path lookup of “/Users/simi/FontExplorerX/S/Stempel” unsuccessful, falling back to file: ! Font \EU2/StempelGaramondLTStdRoman(0)/m/it/10.95=/Users/simi/FontExplorerX/S/
Stempel not loadable: metric data not found or bad.
<to be read again>
G
真正奇怪的是它产生了以下输出:
(来源:西米电影网)
正如你所见,luaotfload
确实找到了正确的字体形状。
编辑
更奇怪的是:我简化了目录结构。Stempel Garamond Lt Std 的所有四种形状现在都在 中Users/simi/FontExplorerX/S/StempelGaramondLTStd/
。我让luaotload-tool
更新所有内容,并且luaotfload-tool -F --find="Stempel Garamond LT Std Roman"
(或此类变体)确实为我提供了正确的路径。
现在,当我尝试 MWE 时,甚至没有生成 PDF。相反,我收到以下错误:
LaTeX Font Info: Font shape `EU2/StempelGaramondLTStdRoman(0)/m/sl' in size <10.95> not available
(Font) Font shape `EU2/StempelGaramondLTStdRoman(0)/m/it' tried instead on input line 10.
luaotfload | load: auto-selecting default features for script: latn
luaotfload | load: no defaults for script “latn”, falling back to “dflt”
luaotfload | load: invalid request “/Users/simi/FontExplorerX/S/Stempel” of type anon
luaotfload | load: use square bracket syntax or consult the documentation.
luaotfload | load: path lookup of “/Users/simi/FontExplorerX/S/Stempel” unsuccessful, falling back to file:
! Font \EU2/StempelGaramondLTStdRoman(0)/m/it/10.95=/Users/simi/FontExplorerX/S/Stempel not loadable: metric data not found or bad.
<to be read again>
G
l.10 \end{document}
?
[1{/usr/local/texlive/2013/texmf-var/fonts/map/pdftex/updmap/pdftex.map}
]
(./test.aux) )
如您所见,这里给出的路径并不完整,这很奇怪,因为luaotfload-tool
确实知道正确的路径。
编辑2:
这是一个已确认的错误,解决。
答案1
这似乎是luaotfload
和/或luatex
中的一个错误\fontname
。它在这里被触发,因为fontspec
声明斜体字体作为(不存在的)倾斜字体的替代品。这将调用 latex 的\do@subst@correction
,它用于\fontname\font
加载替代字体。但是使用luatex
(和luaotfload
),\fontname\font
错误地返回字体的完整路径(在您的情况下/Users/simi/FontExplorerX/S/Stempel Garamond LT Std Italic/StempelGaramondLTStdItalic.otf
)而不是其“名称”("StempelGaramondLTStdItalic:mode=node;script=latn;language=DFLT;+tlig;+trep;" at 10.95pt
)。这反过来会使\font
爆炸。
您可以通过明确指定倾斜字体来防止这种情况发生,从而避免替换混乱:
\setmainfont[Ligatures=TeX,
ItalicFont={Stempel Garamond LT Std Italic},
SlantedFont={Stempel Garamond LT Std Italic},
BoldFont={Stempel Garamond LT Std Bold},
BoldItalicFont={Stempel Garamond LT Std Bold Italic},
BoldSlantedFont={Stempel Garamond LT Std Bold Italic}]
{Stempel Garamond LT Std Roman}