我在使用“Hoefler Text”字体时遇到了意外问题LuaLaTeX(在 MacTeX2012 下,安装了所有最新更新)苹果(MacOS X 10.7.4)。以下 MWE
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Hoefler Text}
\begin{document}
Hello World.
\end{document}
在LuaLaTeX下运行时抛出以下错误信息:
! fontspec error: "font-not-found"
!
! The font "HoeflerText" cannot be found.
奇怪的是,在 XeLaTeX 下运行时,同样的 MWE 却不是抛出错误。该字体存在于我的 Mac 上,位于 /Library/Fonts/ 下,文件名为Hoefler Text.ttc
。不管怎么说,这似乎是此目录中极少数具有此文件扩展名的字体之一(我相信 Apple 称之为“Truetype 字体集合”);几乎所有其他字体都具有和 等扩展.ttf
名.otf
。
Hoefler Text
Mac 上是否存在特殊之处,需要特殊的字体加载序列才能在 LuaLaTeX 下运行?
附录:自从第一次发布这个问题以来,我从评论和回答中了解到,这个问题似乎影响全部以 Mac 系统格式存储的字体.ttc
,而不仅仅是Hoefler Text
。
答案1
由于某些原因,LuaLaTeX 的字体加载机制为 Mac OS X 字体维护了一个“黑名单”,所有.ttc
字体都会插入到这个名单中;文件
/usr/local/texlive/2012/texmf-dist/tex/luatex/luaotfload/otfl-blacklist.cnf
其内容是
% Tackes ages to load
LastResort.ttf % a MacOSX font, but also available for free from unicode.org
% Mac OS X TTC fonts, this list need to be filtered out
/Library/Fonts/AmericanTypewriter.ttc
/Library/Fonts/Baskerville.ttc
/Library/Fonts/Chalkboard.ttc
/Library/Fonts/Cochin.ttc
/Library/Fonts/Copperplate.ttc
/Library/Fonts/Didot.ttc
/Library/Fonts/Futura.ttc
/Library/Fonts/GillSans.ttc
/Library/Fonts/Hoefler Text.ttc
/Library/Fonts/MarkerFelt.ttc
/Library/Fonts/Optima.ttc
/Library/Fonts/Papyrus.ttc
/Library/Fonts/STHeiti Medium.ttc
/System/Library/Fonts/AquaKana.ttc
/System/Library/Fonts/HelveticaNeue.ttc
/System/Library/Fonts/LucidaGrande.ttc
/System/Library/Fonts/Menlo.ttc
/System/Library/Fonts/STHeiti Light.ttc
你可能修改文件,但不能保证字体能起作用。
我找到了一个lualatex-dev
列表中的旧帖子解决这个问题。
添加
感谢 Mico 试验了这个问题。唯一似乎有问题的字体是“LastResort”,它应该被列入黑名单。
正在做
sudo nano /usr/local/texlive/2012/texmf-dist/tex/luatex/luaotfload/otfl-blacklist.cnf
%
并在每行前面加上
% Mac OS X TTC fonts, this list need to be filtered out
随后调用
mkluatexfontdb
将使所有.ttc
字体可用于 LuaLaTeX。