按照“pstricks 项目的现状”(Herbet Voss,TUGboat,Vol31(2101),no.1)我准备了一个包含 3 pspicture 的文件 unitz.tex。
\documentclass{standalone}
\usepackage{pstricks}
\usepackage{pstricks-add}
%\usepackage{pst-plot}
\usepackage{calc}
\usepackage{auto-pst-pdf}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
%\newcommand\picwid{2.35}
%\newcommand\pichei{2.35}
\begin{document}
%\begin{pspicture*}(-\picwid,-\picwid)(\pichei,\pichei)
\begin{pspicture}
\rput(-2.0, 2.0){\psscalebox{1.0}{${\mathbb{C_{\mathbb{Q}}}}$}}
\psaxes[linewidth=\linwid, ticks=none, labels=none, dx=1.0, dy=1.0]{->}(0,0)(-2,-2)(2,2)[$\Re$,0][$\Im$,90]
\end{pspicture}
\begin{pspicture}
\rput(-2.0, 2.0){\psscalebox{1.0}{${\mathbb{C_{\mathbb{Q}}}}$}}
\psaxes[linewidth=0.005pt, ticks=none, labels=none, dx=1.0, dy=1.0]{->}(0,0)(-2,-2)(2,2)[$\Re$,0][$\Im$,90]
\end{pspicture}
\begin{pspicture}
\rput(-2.0, 2.0){\psscalebox{1.0}{${\mathbb{C_{\mathbb{Q}}}}$}}
\psaxes[linewidth=0.005pt, ticks=none, labels=none, dx=1.0, dy=1.0]{->}(0,0)(-2,-2)(2,2)[$\Re$,0][$\Im$,90]
\end{pspicture}
\end{document}
结果已在 images/ 中及时呈现。不幸的是,每个 unitz-fig-n.pdf (n=1,2.3) 都略微剪切了位于 (2,2) 处的 \mathbb{C}_{\mathbb{Q}}。
文件 unitz-fig-n.tex 也在 /images 中创建。为了解决这个问题,我在每个文件上运行了 pdflatex,然后运行了 pdf2ps 和 ps2eps,结果 pdf 和 eps 文件都没有被剪切。我注意到 pst2pdf 创建的 unitz-fig-n.pdf 文件被 pdflatex 覆盖,没有任何警告。
请注意,为了清楚起见,我删除了原始 pspictures 中除轴和注释之外的所有内容。
pst2pdf unitz.tex -c -e
cd images/
pdflatex --shell-escape unitz-fig-1.tex
pdflatex --shell-escape unitz-fig-2.tex
pdflatex --shell-escape unitz-fig-3.tex
pdf2ps unitz-fig-1.pdf
ps2eps -f unitz-fig-1.ps
pdf2ps unitz-fig-2.pdf
ps2eps -f unitz-fig-2.ps
pdf2ps unitz-fig-3.pdf
ps2eps -f unitz-fig-3.ps
我很困惑。为什么 pst2pdf 会剪切,而 pdflatex 生成的 .tex 文件却不会剪切图像。我可能也尝试过 pst2pdf 处理其自己的 .tex 输出。我很着迷,但也筋疲力尽。
经过数周的试验,我遵循了 LaTeX->dvips -e 路径,因为我最初对 eps 很满意。所有文件都被剪裁或导致出现荒谬的空白区域。我相信边界框应该找到包含所有 PostScript 创作的最小矩形区域。我使用了 GS,它试图通过调整边界框来提供帮助,但无济于事。我尝试了 GS pdf 往返,但没有成功(LaTeX eps 方法)。
latex unitz.tex
dvips -o unitz.ps unitz.dvi
ps2eps -g -f unitz.ps
gs -o so#126826212.pdf -sDEVICE=pdfwrite -dEPSCrop unitz.ps
gs -o unitz.roundtripped.eps -sDEVICE=eps2write so#126826212.pdf
我还应该指出,我不清楚 latex 如何生成 dvi 文件。我是否真的需要 pspicture(如果文件仅包含一个图形)。我倾向于从我的世界模型中的原点开始,并相对于该原点创建 pstricks 对象。我并不介意将东西包装在 pspicture 中(当然如果有多个的话),但我反对必须设置 pspicture 的大小。您将在附件中看到,我尝试了不同大小的 pspicture,但仍然获得了多余的空白。我没有找到任何讨论此问题的 pstricks 文档。
答案1
我们来分析一下你的 MWE,我将类修改为article
,注释了包auto-pst-pdf
,并将第 21 行更改为,在环境和之间linewidth=0.005pt
添加了单词。TEXT
[showgrid=true]
\documentclass{article}
\usepackage{pstricks}
\usepackage{pstricks-add}
%\usepackage{pst-plot}
\usepackage{calc}
%\usepackage{auto-pst-pdf}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
%\newcommand\picwid{2.35}
%\newcommand\pichei{2.35}
\begin{document}
TEXT
%\begin{pspicture*}(-\picwid,-\picwid)(\pichei,\pichei)
\begin{pspicture}[showgrid=true]
\rput(-2.0, 2.0){\psscalebox{1.0}{${\mathbb{C_{\mathbb{Q}}}}$}}
\psaxes[linewidth=0.005pt, ticks=none, labels=none, dx=1.0, dy=1.0]{->}(0,0)(-2,-2)(2,2)[$\Re$,0][$\Im$,90]
\end{pspicture}
TEXT
\begin{pspicture}
\rput(-2.0, 2.0){\psscalebox{1.0}{${\mathbb{C_{\mathbb{Q}}}}$}}
\psaxes[linewidth=0.005pt, ticks=none, labels=none, dx=1.0, dy=1.0]{->}(0,0)(-2,-2)(2,2)[$\Re$,0][$\Im$,90]
\end{pspicture}
TEXT
\begin{pspicture}
\rput(-2.0, 2.0){\psscalebox{1.0}{${\mathbb{C_{\mathbb{Q}}}}$}}
\psaxes[linewidth=0.005pt, ticks=none, labels=none, dx=1.0, dy=1.0]{->}(0,0)(-2,-2)(2,2)[$\Re$,0][$\Im$,90]
\end{pspicture}
TEXT
\end{document}
当您编译文档时,使用latex>dvips>ps2pdf
第一页如下所示:
如果你看一下,单词TEXT
应该在另一个位置(而不是在图纸上),发生这种情况是因为环境pspicture
应该携带参数(x,y)
或(x1,y1)(x2,y2)
。通过省略它并使用pst2pdf
或auto-pst-pdf
这些调用pdfcrop
脚本来裁剪图像,但是,它无法正确生成。
添加此参数将使代码如下所示:
\documentclass{article}
\usepackage{pstricks}
\usepackage{pstricks-add}
%\usepackage{pst-plot}
\usepackage{calc}
%\usepackage{auto-pst-pdf}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\newcommand\picwid{2.35}
\newcommand\pichei{2.35}
\begin{document}
TEXT
%\begin{pspicture*}(-\picwid,-\picwid)(\pichei,\pichei)
\begin{pspicture}(-\picwid,-\picwid)(\pichei,\pichei)
\rput(-2.0, 2.0){\psscalebox{1.0}{${\mathbb{C_{\mathbb{Q}}}}$}}
\psaxes[linewidth=0.005pt, ticks=none, labels=none, dx=1.0, dy=1.0]{->}(0,0)(-2,-2)(2,2)[$\Re$,0][$\Im$,90]
\end{pspicture}
TEXT
\begin{pspicture}(-\picwid,-\picwid)(\pichei,\pichei)
\rput(-2.0, 2.0){\psscalebox{1.0}{${\mathbb{C_{\mathbb{Q}}}}$}}
\psaxes[linewidth=0.005pt, ticks=none, labels=none, dx=1.0, dy=1.0]{->}(0,0)(-2,-2)(2,2)[$\Re$,0][$\Im$,90]
\end{pspicture}
TEXT
\begin{pspicture}(-\picwid,-\picwid)(\pichei,\pichei)
\rput(-2.0, 2.0){\psscalebox{1.0}{${\mathbb{C_{\mathbb{Q}}}}$}}
\psaxes[linewidth=0.005pt, ticks=none, labels=none, dx=1.0, dy=1.0]{->}(0,0)(-2,-2)(2,2)[$\Re$,0][$\Im$,90]
\end{pspicture}
TEXT
\end{document}
现在,当您运行时,pst2pdf -e test.tex
输出将test-pdf.pdf
是预期的输出以及.eps
格式的图像。