使用 LuaLaTeX 嵌入 Type 1C 字体

使用 LuaLaTeX 嵌入 Type 1C 字体

正如在回答中指出的那样LuaLaTeX 与 XeLaTeX 的 PDF 文件大小对比,在两个文档中使用 Type 1 和 Type 1C 字体的差异导致文件大小有很大差异。

对于我处理的 PDF 文件来说,文件大小非常重要。所以我的问题是,您可以强制 LuaLaTeX 嵌入 Type 1C 字体而不是 Type 1 吗?这是 XeLaTeX 可以做到的(就上述问题而言,它是自动做到的)。

我使用的字体是 Gill Sans MT(我相信它是 Adob​​e CS 自带的)。虽然我并不反对更改字体,但我仍然想知道 LuaLaTeX 如何决定如何嵌入字体以及如何更改字体。

答案1

我不知道如何让 lualatex 输出 Type 1C 字体。但是,您可以使用 ps2pdf 将包含 Type 1 字体的 PDF 转换为另一个包含 Type1C 字体的 PDF。您应该仔细选择 ps2pdf 的参数。例如:

newell:~/latex/help $ du -h plain.pdf
60K plain.pdf
newell:~/latex/help $ pdffonts plain.pdf 
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
BZAAVM+NimbusSanL-Bold               Type 1            yes yes no      17  0
YCENSD+LMMathItalic12-Regular        Type 1            yes yes no      18  0
KDKAQG+CMSS12                        Type 1            yes yes no      19  0
IDSSCN+NimbusSanL-Regu               Type 1            yes yes no      20  0
ZIJBJP+NimbusSanL-ReguItal           Type 1            yes yes no      21  0
SEAJVD+NimbusSanL-BoldItal           Type 1            yes yes no      22  0
SQTJQN+LMMathSymbols10-Regular       Type 1            yes yes no      23  0
newell:~/latex/help $ ps2pdf -dPDFSETTINGS=/prepress -dAutoRotatePages=/None -dEmbedAllFonts=true -dMaxSubsetPct=100 -dSubsetFonts=true -dAutoFilterColorImages=false -dAutoFilterGrayImages=false -dDownsampleColorImages=false -dDownsampleGrayImages=false -dDownsampleMonoImages=false plain.pdf new.pdf
newell:~/latex/help $ du -h new.pdf
36K new.pdf
newell:~/latex/help $ pdffonts new.pdf 
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
OJEPRS+NimbusSanL-BoldItal           Type 1C           yes yes no      23  0
OJIXHX+LMMathSymbols10-Regular       Type 1C           yes yes no      25  0
CYORGJ+NimbusSanL-Bold               Type 1C           yes yes no      13  0
MZVUTG+LMMathItalic12-Regular        Type 1C           yes yes yes     15  0
PWIYDZ+CMSS12                        Type 1C           yes yes no      17  0
QBTHSF+NimbusSanL-Regu               Type 1C           yes yes no      19  0
XMYGAL+NimbusSanL-ReguItal           Type 1C           yes yes no      21  0

答案2

Luatex 永远不会写入 Type1C 字体。如果您使用 OpenType/TrueType 字体而不是 Type1(luatex 会为这些字体写入 CIDType0 字体),那么您将获得较小的 pdf,但除此之外,pstopdf还有其他选择。除非有人提供补丁,否则这种情况不太可能改变。

答案3

如果您没有因为某些原因而被迫使用 LuaLaTeX,为什么不使用 pdfLaTeX,然后使用强大的 Python 程序缩小 PDF pdfsizeopt.py?请参见此处:如何创建适合互联网的小型 PDF 文件?

相关内容