我认为,PDF 文档在上传到互联网时,最终大小应尽可能小(以字节为单位)。创建这种小文档的策略有很多:
注意嵌入的光栅图像的大小。
tikz
使用或创建图表pstricks
,避免使用可能创建不需要的大文件的外部应用程序。使用tikz
或pstricks
可以几乎不受限制地控制特定对象的属性。例如,创建坐标为 (1,1) 的点 A 应该优于创建坐标为 (1.0000000,1.00000000) 的点 A,因为在许多应用程序中您无法控制后者。注意文档中使用的字体。有些字体包含单一大小的编码,在用于标题或等效内容时会缩放。其他一些字体包含不同大小的编码,使文档稍大一些。您可能会观察到不可忽略的差异。
我对第三点很感兴趣:你们中有人研究过适合较小 PDF 文件的最佳字体吗?
编辑 压缩.SmallPDF听起来像是一个免费且高效压缩 pdf 文件的良好在线解决方案。
答案1
有许多技巧可以优化 PDF。其中许多技巧都包含在工具中pdfsize选项。使用一些补丁(发布在 pdfsizeopt bugtracker 中),此工具可以在我所有 tex 生成的 pdf(以及几乎所有非 tex 生成的 pdf)上运行。我使用命令行:
python ./pdfsizeopt.py --use-pngout=true --use-jbig2=true --use-multivalent=true --do-unify-fonts=false filetocompress.pdf
--do-unify-fonts=false
尽管它可以生成稍大的 pdf,但由于存在一个错误,某些 pdf 查看器(例如 Windows Adobe Reader)无法显示一些字形,因此我仍使用它。
在使用 tex 制作文档时,你确实可以做很多事情,以确保压缩后的 pdf 尽可能的小:EuroTeX 2009 白皮书中讨论了其中的几项内容,其中介绍了 pdfsizeopt(可从以下网址获取)https://github.com/pts/pdfsizeopt/releases/download/docs-v1/pts_pdfsizeopt2009.psom.pdf)。
至于字体,pdfsizeopt 会将字体重新编码为非常压缩的 CFF 格式,并处理子集和重复问题。我还没有深入研究,但在我的测试中,似乎在 2 个 1 型编码 T1(多语言)tex 字体选项中,Latin Modern 字体通常会生成比 CM-Super 版本大得多的 PDF(这很不幸,因为 Latin Modern 在几乎所有其他方面都更胜一筹(请参阅这个问题)。我刚刚做了一个快速实验,这种大小差异似乎仅存在于使用 pdfsizeopt 之前的 pdf 中:使用 pdfsizeopt 之后,Latin Modern 与 CM-Super 相同或更小。
使用没有光学缩放功能的字体确实会产生较小的 PDF,但我不建议这样做,因为如果您使用多种尺寸,那么非光学缩放的字体看起来会更糟。
答案2
如果由于某种原因您不想使用 pdfsizeopt:XeTeX 和 LuaTeX 通常会生成比 pdfTeX 更小的 PDF 文件,因为 OpenType 字体已经在 CFF 或 TrueType 轮廓中编码。
答案3
有以下程序pdfopt
提供Ghostscript在官方的网络优化格式。这(引自man pdfopt
)将文件元素按更线性的顺序排列,并添加“提示”指针,使 Adobe 的 Acrobat(TM) 产品能够在通过网络访问文件时更快地显示文件的各个页面(引述结束)。
用法很简单:
pdfopt [ options ] input.pdf output.pdf
只需确保两个 PDF 文件名不相同即可。之后您可能需要转到output.pdf
。input.pdf
这是我在将我的 LaTeX 包上传到 CTAN 之前在 Makefile 中所做的。
答案4
使用 PDF 标准中指定的 True Type 字体(因此每个符合标准的 PDF 查看器都可用)可以大大减少使用 pdflatex 生成的 PDF 文件的大小。否则,生成的 PDF 中会包含其他字体,这会增加文件大小。
例如通过
\usepackage{mathptmx}
\usepackage[scaled=.95]{helvet}
\usepackage{courier}
需要缩放头盔,因为默认情况下它稍微大一些。
请注意,包裹时间已经过时。
在 LaTeX 中使用常见的 PostScript 字体描述这些包和更多内容。
编辑 要获取字体列表PDF 标准 1.4 规定参见第 2.2.3 节(第 36 页)和第 5.5.1 节(第 339 页)。引用如下:
These fonts, or their font metrics and suitable substitution fonts, are guaranteed
to be available to the viewer application.
第 9.6.2.2 节PDF 标准 1.7使用了稍微不同的措辞:
[..]These fonts, or their font metrics and suitable substitution fonts, shall be available
to the conforming reader.
因此,例如,(相对)模糊的 Solaris 系统上的 Acrobat 阅读器附带一些 otf/pfb 字体文件。