PdfLatex 在转换时裁剪图像

PdfLatex 在转换时裁剪图像

我在 Ubuntu 上使用 pdfLaTeX、Vim 和 LaTeX 套件以及软件包graphics。我已将图像从 Matlab 导出为 EPS 格式,但自动转换(我不确定是什么将其转换为 pdf)会裁剪部分图像。

Converted

EPS文件可用这里

使用 Matlab 的导出或 LaTeX 的\includegraphics参数进行调整没有帮助。

\documentclass{article}
\usepackage{graphicx} 
\begin{document} 

\begin{figure}[h!]
    \includegraphics[width=3.5in]{im1.eps}
\end{figure}
\end{document} 

短暂性失眠!

答案1

很可能 EPS 文件中的边界框数据是错误的。可以使用 Ghostscript 来计算边界框,例如(替换tiger.eps为您的文件):

gs -q -sDEVICE=bbox -dBATCH -dNOPAUSE tiger.eps

结果如下:

%%BoundingBox: 0 0 150977 150977
%%HiResBoundingBox: 0.000000 0.000000 150976.921393 150976.939393

这些行可用于替换%%BoundingBox:EPS 文件开始部分以 开头的行。

LaTeX 中的“自动转换”使用epstopdf(调用同名 Perl 脚本的 LaTeX 包)进行转换,并使用边界框数据作为生成的 PDF 文件的介质大小。


此方法适用于im1.eps更新的EPS 文件问题,ghostscript 报告的边界框:

%%BoundingBox: 23 20 381 293
%%HiResBoundingBox: 23.201999 20.519999 380.603660 292.103640

编辑后im1.eps,EPS文件的起始注释部分如下所示:

%!PS-Adobe-3.0 EPSF-3.0
%%CreationDate: 2017-01-16T20:11:08
%%Pages: (atend)
%%BoundingBox: 23 20 381 293
%%HiResBoundingBox: 23.201999 20.519999 380.603660 292.103640
%%LanguageLevel: 3
%%EndComments

顺便说一句,原始边界框是0 0 500 500。由于实际边界框较小,如果 EPS 文件未修复,则转换后的 PDF 文件会有额外的白色边距。

还有另一种方法可以修复图像:

epstopdf im1.eps
pdfcrop im1.pdf

结果是im1-crop.pdf,包含在 LaTeX 文档中:

\includegraphics{im1-crop}

im1.eps是问题中的文件,im2.eps是具有固定边界框的 EPS 文件。然后是以下文档pdflatex

\documentclass{article}
\usepackage{graphicx}
\setlength{\fboxsep}{0pt}
\begin{document}
\centering
\fbox{\includegraphics[width=.5\linewidth]{im1}}
\par
\bigskip
\fbox{\includegraphics[width=.5\linewidth]{im2}}
\end{document}

生成

Result

通过可视化边界框生成的帧\fbox。结果显示,原始图像具有较大的白色边缘,而校正后的图像具有紧密的边界框。

相关内容