转换各种图像、位图和矢量以用于 LaTeX 和 PDFLaTeX 文档的首选方法是什么?
有很多方法可以做到这一点,一些利用各种 LaTeX 包中的标准包含,另一些则提供更好的结果。
如果您想使用 pdflatex 生成最终输出,则可以将 PDF 图像直接包含到 LaTeX 文档中,但如果您想生成 dvi 文件,则不能。
pdflatex 可以使用 PDF、PNG 和 JPEG
latex/dvips 可以使用 PS、EPS
查看更多详情:
我将位图转换为 PNG,将矢量图形(例如 SVG)转换为 PDF。pdflatex理解 PNG 和 PDF。
如果您有一个“PDF 格式”的图像,并且您不想将其包含为 pdf,您可能需要先使用 .pdf 提取完整的图像数据pdfimages
。其他转换可能仅以降低的分辨率渲染图像。
基本问题是 a) 您希望以不同方式处理光栅和矢量图像,并且 b) 这会引入潜在的陷阱。
要做的“正确”事情在一定程度上取决于您的最终输出。
如果您的最终输出将是一个 .pdf 文件,并且您现在不需要 pstricks 或其他任何东西,那么您最好只使用 pdflatex 直接生成文件。
在这种情况下:
如果您不执行上述操作,您的光栅图形将被转换为 jpeg,并且可能会获得压缩伪影。如果您可以选择输出,则 png 是最好的选择。
如果您打算使用 .dvi 文件,那么您将需要 .eps 的所有内容。(只要生成边界框文件,就可以 gzip 这些文件)。
如果你小心,你可以做到这两点。我将所有矢量图存储为(压缩的).eps,因为有一些 .pdf 无法做到的事情 .eps 可以。我将所有光栅图形存储为 .png。使用 make,我可以根据需要为 .dvi 或 .pdf 输出动态生成这些规范版本的临时副本。
上面有人指出了文件名问题。你想避免“。” 在文件名中,并始终避免在您的乳胶文件本身中使用后缀。
我目前首选的方式是使用bmeps
并epstopdf
包含在 MikTeX 中。用于生成 png 的 pdf 和 eps 版本。
在一个名为 的文件convertimage.bat
中,
bmeps -p3 -c -e8f -tpng %1.png > %1.eps
epstopdf %1.eps
通过包含在路径和写作中使用convertimage.bat filenameminusextension
包含在使用的文件中,
\begin{figure}[h]
\begin{center}
\includegraphics[scale=0.25]{path/to/fileminuxextension}
\caption{My caption here}
\label{somelabelforreference}
\end{center}
\end{figure}
正如 John D. Cook 所说,您可用的图像格式取决于您使用的是latex
还是pdflatex
.
我发现ImageMagick是一种在格式之间转换图像的有用工具。处理位图图像,加上 ps/pdf/eps(带有 ghostscript)和无数其他的。可通过apt
,macports
等获得。
我只使用 Encapsulated PostScript (.eps) 图形(首先使用 NetPBM 转换位图),因为无论如何我总是使用 dvips + ps2pdf,然后我使用 \includegraphics{file}。
我使用 Mac,所以我使用 GraphicConverter 加载图像并导出为 PDF。当我绘制图表时,我使用 Omnigraffle,它可以让我导出为 PDF。在 Windows 上,我曾经使用支持 EPS 的 Visio,嵌入也没有问题。
我总是包含 PNG 格式的图像。
如果你用 pdflatex 编译你的代码,那么你也可以使用\includegraphics
在 pdf 中包含图像(你必须包含包graphix