减小导入的图形及其字体的文件大小

减小导入的图形及其字体的文件大小

我希望尽可能减少论文最终版本的文件大小,同时又不造成任何麻烦和质量损失。目前文件大小约为 7 MB。我阅读了很多相关内容(pdfsizeopt、gs、PGF/TikZ、\pdfcompresslevel),但仍然觉得您可以提供有用的建议。

一个主要问题是Libertinus字体集,它加起来有 3 MB,以及如何避免这种情况。因此,我正在寻找一种嵌入图形而不积累冗余字体数据的方法。

先决条件:

  • 因为我是一个完美主义者,所以一般来说,质量的损失对我来说是不可接受的;-)
  • Windows、TeXLive、pdflatex、KOMA Script、matplotlib、Libertinus 字体集。我拥有 Adob​​e CS4、Acrobat 9.0、PS、AI、ID、Affinity Suite,并且在(矢量)图形方面经验丰富。

相关LaTeX软件包:

\usepackage{siunitx}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage[firstpage=true]{background} + setup
\usepackage{textgreek}
\usepackage[osf]{libertinus}
\usepackage{libertinust1math}
\usepackage[activate={true,nocompatibility},final,tracking=true,kerning=true,spacing=true,factor=1100,stretch=10,shrink=10]{microtype}
\usepackage[colorlinks=false, pdfborder={0 0 0}, unicode]{hyperref}

我导入:

  • 我的标题页的背景有很多矢量圆圈
  • Python 生成的 .svg 文件,为简单起见转换为 .pdf(不使用 .svg 导入LaTeX;.svg 为 600kB,.pdf 为 300kB。)我认为我可以通过减少使用模式来缩小有效文件大小,并用转换后的变体(如旋转或翻转)替换其余部分;但这需要在 LaTeX 中做大量工作。也许我可以尝试制作一个可以“删除重复”的 .pdf?
  • 大学徽标(PDF),文本已经是路径,300kB。我可以操纵曲线使其更简单,但我认为这也会涉及版权。
  • 两张带有一些标记的照片(矢量)。在 Affinity Photo 中完成,导出为 .pdf 以保留矢量标记。导出时照片数据使用 JPG 压缩。例如,也许 Adob​​e 软件可以使用 JPG2000 算法从中挤出最后的几位?它们现在大约有 800kB,也许我可以稍微降低质量
  • 用 LucidChart 制作的图表。32kB,很奇怪。
  • Libertinus Sans`,无特殊字符。字体文件大小(300 位!)和 AI 表示,文本也是路径。Acrobat 可以复制文本,所以我认为有一个像 OCR 文档中的元覆盖。嵌入的字体和使用 Acrobat 编辑时显示的字体是 Helvetica。SVG 导出也将文本作为路径。但好吧,32kB 不应该使我的最终 PDF 膨胀这么多。
  • 用 Affinity Designer 制作的两幅画。80kB,62 kB 来自字体:嵌入元素 (TrueType CID、Identity-H) 的 Libertinus Sans 和 Lato (Type 1) + Arial MT 的嵌入子组。
  • 使用一些 AngularJS 包制作的图形。HTML +CSS 和 JS 可生成 SVG 元素。从 Chrome Inspector 复制 SVG 代码时,我在任何其他图形软件中都会遇到错误,即使正确处理 CSS 也是如此。因此,我使用 Chrome 打印为 PDF,然后对 Affinity Publisher 进行一些调整。文件为 120kB,其中 100kB 来自 Libertinus Sans(常规和斜体)
  • 来自 matplotlib 的数十张图表。我使用 text.usetex: True 和我的序言子集来获得 Libertinus 外观。导出为 PDF,pdf.compress 9,字体类型 42(因为这会减少以后编辑的麻烦;但我认为我不需要这个)。每个大约 1.6MB,其中 98% 来自字体,因为 Libertinus Sans 和 LibertinusT1Math 已完全嵌入。使用 Acrobat 优化器,我总共得到 1MB(字体子集,T1,用于 Sans 另外还有 CID + Identity-H),但它会破坏任何空格。pdflatex 可以完成这项工作,因为大小不会明显累积,并且 Acrobat 中每种样式只有一个字体集。

一种选择是使用 PGF/TikZ 将图表导入 pdflatex,并且开销很小。对于我的最终版本,这当然是一种选择,对于日常使用,我更喜欢 PDF,因为我可以快速查看和共享它们。PS 的 xpdf 导出功能在 Windows 上对我来说不起作用(如果值得的话,可以在 Linux 上运行它)。但如果使用 pdflatex,PS 似乎无论如何都很奇怪。

完成后,我肯定会在 Acrobat 中尝试 pdfsizeopt、gs 和 optimize。但有些选项会破坏超链接和书签。

总结 如果处理大型字体集,您是否更喜欢使用 PDF 还是 SVG(如果可能的话,还有 PGF/TikZ)来获取小型输出 PDF?

我已经读过的内容:

如何使 pdfLaTeX 生成的 PDF 变得更小?

如何创建适合互联网的小型 PDF 文件

减少 pgfplots 生成的大图像的 pdf 文件大小

如何使用 pdflatex 缩小 pdf 文件大小?(或者,如何让 pdflatex 使用 CFF 字体?)

moderncv - pdf 文件大小太大

相关内容