嵌套的输入文件用于创建名为 的 EPS 文件input.eps
。它是通过 动态生成的\immediate\write18
。它只是渲染一些以 6 厘米边长的正方形为界的蓝色同心圆。
然后将其导入外部pspicture
,并用边长为 6 厘米的红色正方形包围。
% main.tex
\documentclass[pstricks,border=1cm]{standalone}
\usepackage{filecontents}
\usepackage{graphicx}
\begin{filecontents*}{input.tex}
\documentclass[pstricks,border=1cm]{standalone}
\begin{document}
\begin{pspicture}[showgrid](6,6)
\foreach\i in {0.0,0.2,...,3.0}{\pscircle[linecolor=blue](3,3){\i}}
\end{pspicture}
\end{document}
\end{filecontents*}
\immediate\write18{latex input}
\immediate\write18{dvips -E -t unknown -o input.eps input}
\newsavebox\myBox
\savebox\myBox{\includegraphics{input}}
\begin{document}
\begin{pspicture}(6,6)
\rput(3,3){\usebox\myBox}
\psframe[linecolor=red](6,6)
\end{pspicture}
\end{document}
如果我使用以下场景编译上述 MWE:
场景 1:(结果不好)
latex -shell-escape main
dvisvgm -n --bbox=papersize main
场景 2:(糟糕的结果)
latex -shell-escape main
dvips -t unknown main.dvi
gswin64c -dCompatibilityLevel=1.5 -dAutoRotatePages#/None -sDEVICE=pdfwrite -o main.pdf main.ps
或者
latex -shell-escape main
dvips -E -t unknown -o main.eps main.dvi
dvisvgm -E -n main
场景三:(几乎好的结果)
xelatex -shell-escape main
问题
正如你在场景 1 和 2 中看到的那样,进口 input.eps
被缩小、平移和旋转。如何避免这种不必要的变换?
补充:根据第三种情况的结果,似乎 1cm 的边框(在嵌套文档类中定义)被忽略了。如何保留此边框?
答案1
latex <file>
dvisvgm <file>
\documentclass[pstricks,border=1cm]{standalone}
\usepackage{graphicx}
\usepackage{pst-eps}
\newsavebox\myBox
\begin{document}
\PSTtoEPS[bbllx=0,bblly=0,bburx=6,bbury=6,
checkfile=false,headers=all,makeeps=all*]{input.eps}{%
\psgrid[gridlabels=0pt](6,6)%
\pgfforeach\i in {0.0,0.2,...,3.0}{\pscircle[linecolor=blue](3,3){\i}}
}
\savebox\myBox{\includegraphics{input}}
\begin{pspicture}[showgrid](6,6)
\rput[lb](0,0){\usebox\myBox}
\psframe[linecolor=red](6,6)
\end{pspicture}
\end{document}