我在 Windows 上运行,我想知道 pdflatex 内部使用哪些命令行选项将 eps 转换为 pdf 文件?(注意:为了运行 pdflatex,我下载了 MikTex,并将其用作前端。)
一旦 MikTex 运行,它就会下载“epstopdf”包(?)以及命令行工具。然后我链接两个命令行实用程序 eps2eps,然后链接 epstopdf 来生成文件。
即 eps2eps file1.eps file2.eps epstopdf file2.eps
(我需要运行 eps2eps 来解决缺少边界框的问题。)
内容正确,但 pdf 页面大小被裁剪为图形大小。
当 pdflatex 生成文件时,中间文件(xx-converted-to.pdf)的 pdf 页面大小是正常页面大小(8x11 或其他)。
确保这一点清楚 - 这是一个关于 epstopdf 可执行文件的问题,而不是如何使用 pdflatex。我希望这里有人有专业知识来解释 pdflatex 如何使用其他可执行文件来生成中间 pdf。
谢谢。
答案1
在我的系统(TeX Live 2013)中,该epstopdf
包运行以下命令:
repstopdf --outfile=xx-converted-to.pdf xx.eps
如果您在命令行中运行该命令,并使用附加选项--debug
,您可以看到 epstopdf 在调用 ghostscript 时所做的事情。不幸的是,它实际上创建了原始 eps 的修改版本,并gs
在其上运行,然后删除它(即使有--debug
!),所以我不能肯定地说它里面有什么。但仔细查看后epstopdf.pl
我发现它会更改页面大小以匹配边界框:
print $OUT "%%BoundingBox: 0 0 $width $height$/";
print $OUT "<< /PageSize [$width $height] >> setpagedevice$/";
因此我看不到任何具有较大页面尺寸的中间 pdf:我对 epstopdf(程序或包)的所有使用都只生成一个大小等于原始 eps 的 pdf。
生成的 pdf 文件的大小需要与 eps 文件的大小相同:pdflatex 需要尺寸信息以确保正确的间距和位置。