我有一个文档,其中包含使用该picture
环境创建的一些图形。现在我需要为每个图形创建一个 PostScript 文件,但如果我只是将它们复制到空白文档中,则每个图形都会占用整整一页。
例如,如果我有
...
\setlength{\unitlength}{1in}
\begin{picture}(3.14,2.71)
%Draw things
\end{picture}
...
然后我想创建一个 3.14x2.71 英寸的 .PS 文件,其中只包含此绘图。我应该能够将picture
上面的环境更改为\includegraphics
加载新文件的命令,并让它对输出的文档进行零更改。
从用 LaTeX 绘制的、
picture
与原始文件具有相同尺寸的 PostScript 文件的最佳方法是什么?
答案1
你应该看看(非常有用)预览包。您可能需要该tightpage
选项,如果您希望生成的 eps 具有确切地您需要的尺寸与原来相同\setlength\PreviewBorder{0 pt}
。
您不需要将picture
环境复制到其他空白文档中,您只需要\PreviewEnvironment{picture}
在序言中添加一行,以便仅提取图片。
扩展你的例子
\documentclass{article}
\usepackage[active,tightpage]{preview}
\setlength\PreviewBorder{0pt}
\PreviewEnvironment{picture}
\begin{document}
\setlength{\unitlength}{1in}
Text before picture
\begin{picture}(3.14,2.71)
Contents of picture environment
\end{picture}
\begin{picture}(1.00,1.00)
Contents of picture environment2
\end{picture}
Text after pictures
\end{document}
使用 pdflatex 编译后,pdf 页面大小精确为 3.14in*2.71in 和 1.00in*1.00in,使用 latex 和 dvips 编译后,ps 页面大小与 pdf 页面大小相同。使用外部工具可以将 pdf 或 ps 转换为 eps,但如果您愿意,可以将其替换tightpage
为psfixbb
,然后dvips -E -i
在 dvi 上运行,以获得一系列 eps 文件,每个文件的大小均正确(名为 jobname.001 jobname.002 等,您必须将其重命名为 jobname.001.eps 等)。
从该行中删除该active
选项usepackage
意味着文件将像从未加载过预览一样进行编译。
附言:如果您希望\includegraphics
盒子与原版非常精确地相同,那么您还应该考虑hiresbb
包装选项graphicx
。否则尺寸会四舍五入到 1 bp
(大点)精度。
答案2
运行ps2eps
您制作的 postscript 文件。您将获得一个封装的 postscript,您可以使用 postscript 查看器查看它或通过 嵌入它\includegraphics
。
答案3
如果你将图像创建为空白的 PDF 页面(没有页码!),则可以使用 pdfcrop修剪空白