我想用不同大小的图像创建一个 pdf 文档,并将每幅图像调整到适合文本尺寸,以便将它们包含在文档中,
\includegraphics[width=\textwidth, height=\textheight, keepaspectratio]{file.jpg}
问题是这些图像非常巨大:总共 160MB;并且这个大小保留在 pdf 输出中(160.9MB),但由于我调整了每个图像的大小,因此我不需要那么多像素信息。
我如何利用调整每幅图像的大小来赚取空间?
答案1
PDF 是一种可扩展格式,因此您是否能看到这些像素取决于您的输出分辨率,即 PDF 查看器的屏幕分辨率和缩放级别或打印机的纸张大小和 dpi 数。两者都可能非常高(您显然可以花不到 100 欧元/美元/英镑购买一台分辨率为 4800 dpi 的打印机,而在 4K 或 Retina 显示屏上使用 Adobe Reader 达到 6400% 也需要非矢量图形具有一定的分辨率)。
我的意思是,记住,这曾经是原生屏幕分辨率:
长话短说:TeX 无法知道你需要什么分辨率,只有你自己知道(有时这很难决定)。如果你只需要 72 dpi 的分辨率来进行屏幕阅读(请不要这样做,但这是你的决定),那么将它乘以图像的英寸大小,你就知道该说什么了瘸子或者您选择的任何软件(参见 Werner 的评论)。此外,按照 JLDiaz 的建议巧妙使用 JPEG 参数可能是一个非常好的主意。
答案2
正如其他人所建议的,您可以对图像进行一些预处理。您可以使用任何您熟悉的、可以同时批量处理多个文件的工具来完成此操作。
如果您使用 ConTeXt,您可以非常轻松地将其挂接到图形包含例程中。您可能也可以在 LaTeX 中执行此操作。这是一个使用 graphicsmagick 减小图像大小并压缩图像的示例。
\startluacode
figures.converters.jpg = {
degradejpg = function(oldname,newname)
os.execute(string.format('gm convert -size 80%% -quality 20%% "%s" "%s"',oldname,newname))
end
}
figures.registersuffix("degradejpg","jpg")
\stopluacode
\starttext
%% unmodified inclusion
\externalfigure [hacker]
%% reduced size and higher compression
\externalfigure [hacker] [conversion=degradejpg]
\stoptext