我想将 Mac OS X (.dfont) Monaco 与 LuaLaTeX 结合使用。使用此输入文件
\documentclass{article}
\usepackage{fontspec}
\setmonofont{Monaco}
\begin{document}
\begin{verbatim}
foo
\end{verbatim}
\end{document}
我收到以下错误消息:
luaotfload | Font names database not found, generating new one.
This can take several minutes; please be patient.
luaotfload | Updating the font names database:
luaotfload | Scanning TEXMF fonts...
luaotfload | Scanning OS fonts...
! LuaTeX error ...0/texmf-dist/tex/luatex/luaotfload/otfl-luat-dum.lua:67: bad
argument #2 to 'find_file' (invalid option 'truetype dictionary').
<to be read again>
\scan_stop:
l.3 \setmonofont{Monaco}
这是文件列表:
*File List*
article.cls 2007/10/19 v1.4h Standard LaTeX document class
size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
fontspec.sty 2010/09/29 v2.1b Advanced font selection for XeLaTeX/LuaLaTeX
expl3.sty 2010/09/16 v2022 L3 Experimental code bundle wrapper
l3names.sty 2010/09/26 v2048 L3 Experimental Naming Scheme for TeX Primitives
luatex.sty 2010/03/09 v0.4 LuaTeX basic definition package (HO)
infwarerr.sty 2010/04/08 v1.3 Providing info/warning/message (HO)
ifluatex.sty 2010/03/01 v1.3 Provides the ifluatex switch (HO)
etex.sty 1998/03/26 v2.0 eTeX basic definition package (PEB)
luatex-loader.sty 2010/03/09 v0.4 Lua module loader (HO)
pdftexcmds.sty 2010/04/01 v0.9 Utility functions of pdfTeX for LuaTeX (HO)
ltxcmds.sty 2010/04/26 v1.7 LaTeX kernel commands for general use (HO)
l3basics.sty 2010/09/20 v2037 L3 Experimental basic definitions
l3expan.sty 2010/09/20 v2037 L3 Experimental Argument Expansion module
l3tl.sty 2010/09/21 v2040 L3 Experimental Token Lists
l3intexpr.sty 2010/09/22 v2045 L3 Integer Expressions
l3quark.sty 2010/09/20 v2036 L3 Experimental Quark Commands
l3seq.sty 2010/03/29 v1879 L3 Experimental sequences and stacks
l3toks.sty 2010/09/20 v2037 L3 Experimental Token Registers
l3int.sty 2010/09/19 v2029 L3 Experimental Integer module
l3prg.sty 2010/09/22 v2043 L3 Experimental control structures
l3clist.sty 2010/09/20 v2037 L3 Experimental comma separated lists
l3token.sty 2010/09/19 v2029 L3 Experimental token investigation and manipulation
l3prop.sty 2010/03/21 v1857 L3 Experimental Property Lists
l3msg.sty 2010/03/23 v1866 L3 Experimental LaTeX Messages module
l3io.sty 2010/05/22 v1923 L3 Experimental i/o module
l3skip.sty 2010/09/23 v2047 L3 Experimental skip registers
l3box.sty 2010/09/26 v2048 L3 Experimental Box module
l3keyval.sty 2010/04/11 v1890 L3 Experimental keyval processing
l3keys.sty 2010/05/24 v1931 L3 Experimental key-value support
l3precom.sty 2010/02/09 v1793 L3 Experimental precompilation module
l3xref.sty 2010/02/09 v1786 L3 Experimental cross referencing
l3file.sty 2010/03/21 v1853 L3 Experimental file loading
l3fp.sty 2010/09/19 v2029 L3 Experimental floating-point operations
l3luatex.sty 2010/07/18 v1985 L3 Experimental LuaTeX functions
calc.sty 2007/08/22 v4.3 Infix arithmetic (KKT,FJ)
xparse.sty 2010/09/20 v2037 Generic document command parser
luatextra.sty 2010/08/02 v0.971 LuaTeX extra low-level macros
luatexbase-modutils.sty 2010/05/27 v0.2a Module utilities for LuaTeX
luatexbase-loader.sty 2010/05/27 v0.2a Lua module loader for LuaTeX
luatexbase-compat.sty 2010/05/27 v0.2a Compatibility tools for LuaTeX
luatexbase-attr.sty 2010/05/27 v0.2a Attributes allocation for LuaTeX
luatexbase-cctb.sty 2010/05/27 v0.2a Catcodetable allocation for LuaTeX
luatexbase-regs.sty 2010/05/27 v0.2a Registers allocation for LuaTeX
luatexbase-mcb.sty 2010/05/27 v0.2a Callback management for LuaTeX
environ.sty 2008/06/18 v0.2 A new way to define environments
luaotfload.sty 2010/09/12 v1.19 OpenType layout system
xkeyval.sty 2008/08/13 v2.6a package option processing (HA)
xkeyval.tex 2008/08/13 v2.6a key=value parser (HA)
fontspec-patches.sty 2010/09/29 v2.1b Advanced font selection for XeLaTeX/LuaLaTeX
fixltx2e.sty 2006/09/13 v1.1m fixes to LaTeX
fontenc.sty
eu2enc.def 2010/05/27 v0.1h Experimental Unicode font encodings
eu2lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
xunicode.sty 2010/05/18 v0.95 provides access to latin accents and many other characters in Unicode lower plane
fontspec.cfg
这就是luatex --version
告诉我的:
This is LuaTeX, Version beta-0.64.0-2010111215
现在的问题是:为了将 Monaco 与 LuaLaTeX 一起使用,我需要做什么?
答案1
我没有 Mac,但 dctt 上有人也遇到了 Monaco 问题,如果我理解正确的话,问题的根源在于安装位置:Monaco 位于“系统文件夹中的库文件夹”中,而有效的字体位于系统文件夹“之外”。
补充:您可以尝试将 otfl-luat-dum.lua 中的第 59 行(可能)从 truetype 字典更改为 truetype 字体:
- dfont = "truetype dictionary",
+ dfont = "truetype fonts",
您还可以尝试使用“不稳定”分支中的 luaotfload 版本 (https://github.com/khaledhosny/luaotfload/tree/unstable)。(我大约两周前得到它,它似乎运行良好。)将它放在本地 texmf-tree 中,如果出现问题或它成为官方版本,您可以轻松将其删除。
我忘了:如果你想尝试不稳定版本,你可能需要纠正两件事:在 otfl-luat-dum.lua 中第 77 行缺少一个“s”。正确的是
found = kpse.find_file(name,"other text files")
在 fontspec.lua 中,你必须将每一个替换fonts.ids
为fonts.identifiers
答案2
我已经关注指示在 [Dev-luatex] 邮件中提供,在您将 替换dfont = "truetype dictionary"
为dfont = "truetype fonts"
后,它似乎可以工作otfl-luat-dum.lua
(启动终端窗口,然后find /usr/local -name "otfl-luat-dum.lua"
在 TeXLive 根目录下找到此文件)。您的示例然后编译成功并pdffonts
显示:
name type emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
BKOWUW+Monaco CID TrueType yes yes yes 4 0
JFRMQG+LMRoman10-Regular CID Type 0C yes yes yes 5 0
答案3
一个解决方法是安装一个字体创建程序,它允许你创建.otf
字体的普通版本。例如字体。
.dfont
这可以通过在 fontforge 中加载文件并选择Generate Fonts
选项来完成OpenType (CFF)
。
请注意,OS X 显然不喜欢与系统字体同名的字体,因此在转换之前,您应该使用Element
→重命名字体Font Info
。
.otf
然后,luaotfload 就可以找到生成的文件了(您甚至可以将其放入与您的.tex
文件相同的目录中,以尽量减少操作系统混淆)。
请注意,此过程可能会或可能不会被当地法律或许可协议禁止。