使用 Stata,我制作了一些变量的散点图。我将图像保存为 EPS 文件。散点图中大约有 1000 个点 - 这使得 EPS 文件的大小为 26MB。我需要在我的 LaTeX 文件中使用此图像(我使用 TeXnicCenter 并编译为LaTeX => PS => PDF
)。问题是它生成的 PDF 文件需要很长时间才能加载显示图像的页面。我不需要这幅图像非常清晰 - 没有必要将其放大太多。此外,对于 16 页的文档来说,我得到的 PDF 相当大。我可以做些什么来改善带有绘图的页面的加载时间并减小 PDF 文件的大小?例如,
如果我将图像转换为 JPEG、PNG 或 BMP,效果会有所改善吗?图像大小会减小吗?
有没有办法让 LaTeX 继续使用 EPS 图像,但降低图像质量?
答案1
正如问题评论中所述,EPS 不是存储图的理想方式。对于具有许多点的散点图以及伪彩色图,最好将图本身(不带轴和注释)存储为光栅图形(例如 PNG)。对于伪彩色图,这实际上是最小的,不会丢失任何信息。请参阅这个答案举个我做过的例子。
作为示例,我绘制了随机点octave
,然后关闭了轴。保存为 PNG 文件后,我曾经imagemagick
修剪绘图中的边距以生成 scatter.png:
我使用pgfplots
轴包装了此 PNG,从而最大限度地减少了图中点所需的空间和处理。这需要使用pdflatex
而不是latex
PNG 文件。
\documentclass[10pt]{article}
\usepackage{pgfplots}
\pgfplotsset{width=6cm,compat=newest}
\begin{document}
\begin{figure}[ht]
\centering
\begin{tikzpicture}
\begin{axis} [
scale only axis, % Plot size does not include axes.
enlargelimits=false, % Shrink wrap the PNG.
axis on top, % Axes placed over PNG to avoid obscuring the lines.
xlabel=$x$,
ylabel=$y$,
]
\addplot graphics [
xmin=0,
xmax=1,
ymin=0,
ymax=1,
] {scatter.png};
\end{axis}
\end{tikzpicture}
\caption{A simple example.}
\end{figure}
\end{document}
答案2
您可以加载epstopdf
包或epspdfconversion
包将文件“即时”转换.eps
为文件。第一次编译 LaTeX 程序时(直接从到,没有通过 的“绕行” ),将对图形文件执行从到 的格式转换。此后,LaTeX 将知道直接加载(小得多的)PDF 格式的图形文件,从而节省大量编译时间;输出 pdf 文件的大小也可能会缩小,但这主要取决于要转换为 pdf 的 eps 文件的内容性质。.pdf
.tex
.pdf
.ps
.eps
.pdf
以下是该软件包用户指南中的一个有趣的摘录epspdfconversion
:
我(该软件包的作者)正在使用此软件包来包含由 Stata 等软件包大量生成的 EPS 图形(或
.ps
)...该软件包确保我可以轻松包含 EPS 图形,并且可以“即时”更新相应的 PDF。
有关使用 pdf(la)tex 嵌入各种图形文件的更多信息,我建议您访问PDFLaTeX 中导入的图形来自 TeX FAQ 文档。
答案3
我已经看到评论推荐你使用 ImageMagick 将 EPS 文件转换为 PNG 图像文件格式。根据我自己的经验,我建议你使用图形魔法(ImageMagick 的兄弟)将您的图像转换为有损例如,在将其转换回 EPS 格式之前,压缩图像文件格式(例如 JPEG)。然后比较原始 EPS 文件和新 EPS 文件的大小。对于任何想要引发 ImageMagick 与 GraphicsMagick 论战的人,我有一个评论。请在同一幅图像或大量图像上使用这两种工具,然后比较生成的图像文件的大小、图像质量,如果您没有时间,请进行速度测试。然后做出选择。