使用 includegraphics 会使 pdf 非常大

使用 includegraphics 会使 pdf 非常大

我在 pdflatex 中使用\includegraphicspdflatex 从一个有 30 页的 pdf 文件中提取并显示单个页面。每页都是一个图表,pdf 最多包含 30 个图表。生成的 pdf 非常大(超过 9MB),尽管我只有 10 个左右的图表(使用 Python 的 matplotlib 绘制)。

这是我在图形环境中显示图形的操作。17 是 AllGraphs.pdf 中图形的页码

\includegraphics[page=17,scale=0.5]{AllGraphs.pdf}

我的印象是,每次我包含一个图表时,pdflatex 都会将整个 pdf 图表文件嵌入到我的文档中。

如果是这样,有什么方法可以停止这种情况,以便只显示显示的 pdf 文件。

更新:我刚刚做了一个分析。每次我添加对 includegraphics 的调用时,生成的文件的大小大约会增加三分之一到一半,而整个 pdf 的大小就是我从中提取的单个页面(每个 pdf 文件有 36 页)。没有图片的话,我的 pdf 大约是 500k。如果包含 23 张图片,则超过 9MB。也就是说,每张图片大约 370k。每个包含 36 张图片的文件大约是 700-900k。我预计 900/36 等于每张图片大约 30k。另一种理论是,我包含的 pdf 对包含的图片的分辨率产生了影响。

更新 2:使用 Python 中的 PdfPages 生成包含初始图形(每个文件 36 个)的 pdf。我为每个图形调用以下代码。pp 是通过调用创建的绘图对象的引用

pp= PdfPages(fileName)

对于每个数字我都有

fig = plt.figure(figsize=(8.27, 11.69), dpi=100)
... plotting lines ...
plt.tight_layout()
plt.legend(loc='best')
plt.draw()

pp.savefig(fig)

该文件看起来是一个非常普通的 PDF,有 36 页,每页有一张图表。

答案1

你必须:

  1. 源 PDF
  2. 目标 PDF

PDF 格式是一个盒子,我不知道您如何生成此源 PDF。我猜想源 PDF 包含的图表格式不能直接由 pdfLaTeX 使用,但“幸运的是”您的 TeX 安装中包含一个后台软件,它在编译时从源 PDF 生成一个大型 jpg 或 eps 文件,并且此 jpg 包含在您的目标 PDF 中。

我既不是 PDF 专家,也不是 pdfLaTeX 专家。但您能描述一下如何生成源 PDF 吗?

好的,但是,缩小较大的 PDF 也是可能的。有一个名为“pdfsizeopt.py”的软件,我已经在 Windows 和 Linux 上使用它多年了。

为了避免嵌入图形中嵌入字体出现问题,我的 *.tex 文件的第一行是:

\pdfinclusioncopyfonts=1

相关内容