将图像添加到 LaTeX 文件时质量会下降

将图像添加到 LaTeX 文件时质量会下降

我有一个 LaTeX 文件(使用 编译pdflatex),其中有一些通过\includegraphics命令添加的 pdf 图像。问题是图像非常大(最多 10MB),输出文件太大(超过 30MB)。

图像是通过splot命令获得的,gnuplot但图中有很多点。

我尝试获取其他格式(基本上是)的图像,.jpg因为.png文件大小要小得多,因此最终结果的大小.pdf也较小。但是当我将这些文件包含到我的 LaTeX 文档中时,图像的质量会下降很多(即使单独查看时它们的质量还可以)。

我怎样才能获得一个小型 pdf 文件,而pdflatex不会牺牲太多图像质量?我猜想问题在于从 pdf-latex 调整图像大小,但无法解决。或者换句话说,我怎样才能获得较小的.pdf图像(或其他可接受的格式pdflatex),而不会在添加到 pdf 文件时损失太多质量?

LaTeX 命令是\includegraphics[width=7cm]{file.pdf}。请注意,我必须调整它们的大小以适合 7 厘米的宽度。

编辑:

我添加了 4 个文件(中的原始图像.pdf.png以及用 编译的.jpeg结果pdf文件pdflatex。这也是乳胶代码。

文件列表

\documentclass[a4paper,10pt]{article}
\usepackage[utf8x]{inputenc}
\usepackage[pdftex]{graphicx}

\begin{document}

\begin{figure}
\centering
\includegraphics[width=7cm]{numeric.pdf}
\caption{Pdf file.}
\end{figure}

\begin{figure}
\centering
\includegraphics[width=7cm]{numeric.png}
\caption{Png file.}
\end{figure}

\begin{figure}
\centering
\includegraphics[width=7cm]{numeric.jpeg}
\caption{Jpeg file.}
\end{figure}

\end{document}

答案1

我在 Python 中将 dpi 设置为 1000 后,保存文件的质量非常好eps。使用此设置,我可以以最高级别放大,并且线条质量不会有任何损失。

我不知道您是否有办法在 gnuplot 中设置 dpi。如果不能,请使用 Python 绘制图表或在 tikz/pgf-plots 中绘制图表。

如果您想检查质量,请查看我关于代码审查的这篇文章并运行代码。

python 优化 ode 求解

编辑:

这是下载文件的链接,它们看起来比谷歌文档输出更好(这不是相同的图像,代码链接只生成我能找到的最快的前两个)。

转换为 pdf

每股收益

编辑2:

这是用 latex 编译的 PDF 中的数据(至少是它的图像)。我从数据网格文件中删除了第一行 x、t、u。

代码:使用别名打开 ipythonipython --pylab=qt

from mpl_toolkits.mplot3d import axes3d
import numpy as np
import pylab

x, t, u = np.loadtxt('/home/dustin/Documents/RandomPythonCode/datagrid.txt',
                     unpack = True)
x = x.reshape(-1, 701)
t = t.reshape(-1, 701)
u = u.reshape(-1, 701)

fig = pylab.figure()
ax = fig.add_subplot(111, projection = '3d')
cmap = pylab.get_cmap('selection')
ax.plot_surface(x, t, u, cmap = cmap, linewidth = 0)
pylab.savefig('name.eps', format = 'eps')
pylab.show()

以下是我喜欢的选择选项:Accent、gist_rainbow、jet 和 Paired。

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

要以旋转形式保存它,您需要:ax.view_init(elev=elevation_angle, azim=azimuthal_angle)并添加旋转时图表将在底部显示的角度变化。

编辑3:

gnuplot根据我阅读手册的理解set hidden3dset hidden3d隐藏了从某些角度无法看到的部分图,因为在现实生活中我们无法看透物体。默认情况下,这是在 Python 中查看图的方式。您无法看到所有内容,并且可以通过旋转图获得不同的视图。因此,我认为不需要设置任何东西来实现此目标。

相关内容