我正在打印我的博士论文,公司遇到了一些未嵌入的 NimbusRomNo9L 字体问题。经过一番 Google 搜索,我了解到这是 Times 字体的别名。在使用 Illustrator 打开 PDF 时避免此类错误的建议是运行:
sudo updmap-sys --setoption LW35 ADOBE
输出为
updmap: resetting $HOME value (was /Users/nkarast) to root's actual home (/var/root).
updmap is using the following updmap.cfg files (in precedence order):
/usr/local/texlive/2013/texmf-dist/web2c/updmap.cfg
updmap is using the following updmap.cfg file for writing changes:
/usr/local/texlive/2013/texmf-config/web2c/updmap.cfg
Creating new config file /usr/local/texlive/2013/texmf-config/web2c/updmap.cfg
dvips output dir: "/usr/local/texlive/2013/texmf-var/fonts/map/dvips/updmap"
pdftex output dir: "/usr/local/texlive/2013/texmf-var/fonts/map/pdftex/updmap"
dvipdfmx output dir: "/usr/local/texlive/2013/texmf-var/fonts/map/dvipdfmx/updmap"
pxdvi output dir: "/usr/local/texlive/2013/texmf-var/fonts/map/pxdvi/updmap"
updmap is creating new map files
using the following configuration:
LW35 font names : ADOBE (/usr/local/texlive/2013/texmf-config/web2c/updmap.cfg)
prefer outlines : true (/usr/local/texlive/2013/texmf-dist/web2c/updmap.cfg)
texhash enabled : true
download standard fonts (dvips) : true (/usr/local/texlive/2013/texmf-dist/web2c/updmap.cfg)
download standard fonts (pdftex) : true (/usr/local/texlive/2013/texmf-dist/web2c/updmap.cfg)
kanjiEmbed replacement string : noEmbed (/usr/local/texlive/2013/texmf-dist/web2c/updmap.cfg)
kanjiVariant replacement string : (default)
create a mapfile for pxdvi : false (default)
Scanning for LW35 support files [ 3 files]
Scanning for MixedMap entries [ 42 files]
Scanning for KanjiMap entries [ 6 files]
Scanning for Map entries [189 files]
Generating output for dvipdfmx...
Generating output for ps2pk...
Generating output for dvips...
Generating output for pdftex...
Files generated:
/usr/local/texlive/2013/texmf-var/fonts/map/dvips/updmap:
13592 2016-01-12 12:26:29 builtin35.map
18314 2016-01-12 12:26:29 download35.map
817278 2016-01-12 12:26:30 psfonts_pk.map
1077400 2016-01-12 12:26:29 psfonts_t1.map
1072539 2016-01-12 12:26:29 ps2pk.map
14 2016-01-12 12:26:31 psfonts.map -> psfonts_t1.map
/usr/local/texlive/2013/texmf-var/fonts/map/pdftex/updmap:
1072546 2016-01-12 12:26:31 pdftex_dl14.map
1070980 2016-01-12 12:26:31 pdftex_ndl14.map
15 2016-01-12 12:26:31 pdftex.map -> pdftex_dl14.map
/usr/local/texlive/2013/texmf-var/fonts/map/dvipdfmx/updmap:
5453 2016-01-12 12:26:28 kanjix.map
Transcript written on "/usr/local/texlive/2013/texmf-var/web2c/updmap.log".
updmap: Updating ls-R files.
此后尝试重新编译时出现 pdftex 错误:
pdfTeX error: /usr/texbin/pdflatex (file sy______.pfb): cannot open Type 1 font file for reading
有没有办法恢复这些更改并成功将字体嵌入到 pdf 中,而不必重新安装所有内容?
在Mac OS X 10.10下使用TexLive 2013。
感谢您对这场危机的任何投入:)
答案1
在提供的帮助中该选项LW35
的描述如下updmap-sys --help
:
LW35 URWkb,URW,ADOBEkb,ADOBE (default URWkb) Adapt the font and file names of the standard 35 PostScript fonts. URWkb URW fonts with "berry" filenames (e.g. uhvbo8ac.pfb) URW URW fonts with "vendor" filenames (e.g. n019064l.pfb) ADOBEkb Adobe fonts with "berry" filenames (e.g. phvbo8an.pfb) ADOBE Adobe fonts with "vendor" filenames (e.g. hvnbo___.pfb)
这反映了两个选择:
是否使用 Adobe 字体作为核心 35 种 PostScript 字体,或者是否使用 URW 克隆。
使用哪种命名方案来调用字体:供应商的名称或 Karl Berry 的字体命名方案中指定的名称。
默认情况下,设置为URWkb
,因此将选项设置回此值会将选项重置为原始默认值,如下所述姆科佩尔。
这几乎肯定是你想要的。你应该选择 Adobe 的字体仅当您拥有 Adobe 的相关 type1 字体时。这些字体不是免费的,因此不属于标准 TeX 发行版。此选项适用于已购买并安装相关字体的用户。
命名方案的选择相对简单。尽管你可能安装了两种名称的字体,但标准 TeX 发行版提供的字体(因此 TeX 可以立即找到)使用 Berry 名称。
因此,在绝大多数情况下,URWkb
这是唯一有意义的选项,很少有人会有任何理由将该值更改为非默认选项。对于大多数人来说,正如您所发现的,更改此值只会导致根本找不到字体。
的输出updmap-sys
还显示这些字体已经默认嵌入:
download standard fonts (dvips) : true (/usr/local/texlive/2013/texmf-dist/web2c/updmap.cfg)
download standard fonts (pdftex) : true (/usr/local/texlive/2013/texmf-dist/web2c/updmap.cfg)
第一个显示dvips
将嵌入核心的 35 种 PostScript 字体。第二个显示pdftex
将嵌入 14 种标准 PDF 字体。其他字体默认嵌入,但如果您排版日语,可能会使用一些字体,但您肯定不会对 Times 这样做,因此此设置无关紧要。
要检查字体是否确实嵌入到 PDF 中,您可以查看 PDF 查看器中的文档属性 -> 字体,也可以pdffonts
在 PDF 上运行,它会提供类似的列表。无论哪种方式,您都应该看到所有字体都已嵌入,无论是完全嵌入还是作为子集嵌入。大多数字体都是子集,这很好。
例如,这是pdffonts
在一个非常简单的 PDF 上运行的输出:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
ZATZRP+CMR10 Type 1 Builtin yes yes no 7 0
该emb
列显示字体是否嵌入(yes
)。 该sub
列显示字体是否作为子集嵌入(yes
)。
您的 PDF 应该会显示类似的输出,但它会更长,因为典型的文档会包含多种字体,而不仅仅是一种。但原理是一样的:您需要列yes
中的每种字体emb
。