在lualatex和MacOSX下使用Hoefler Text字体

在lualatex和MacOSX下使用Hoefler Text字体

我在使用“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 TextMac 上是否存在特殊之处,需要特殊的字体加载序列才能在 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。

相关内容