使用 rput 时,我注意到它放错了我的对象。通过测试,我发现了两种奇怪的行为:
\rput(0,0) { object }
稍微移动我的对象。对以下代码执行 latex:\documentclass{article} \usepackage{pst-all} \begin{document} \psset{xunit=.5pt,yunit=.5pt,runit=.5pt} \begin{pspicture}(350,150) \rput(0,0) { \pscustom[linestyle=none,fillstyle=solid,fillcolor=green] { \newpath \moveto(75,150) \lineto(65,125) \lineto(75,135) \lineto(85,125) \closepath } } \pscustom[linestyle=none,fillstyle=solid,fillcolor=red] { \newpath \moveto(75,150) \lineto(65,125) \lineto(75,135) \lineto(85,125) \closepath } \end{pspicture} \end{document}
在绿色箭头上方产生了红色箭头,但可以看到绿色箭头稍微错位了。
\rput(0,0) { { object } }
移动得更远。例如:\documentclass{article} \usepackage{pst-all} \begin{document} \psset{xunit=.5pt,yunit=.5pt,runit=.5pt} \begin{pspicture}(350,150) \rput(0,0) { { \pscustom[linestyle=none,fillstyle=solid,fillcolor=green] { \newpath \moveto(75,150) \lineto(65,125) \lineto(75,135) \lineto(85,125) \closepath } } } \pscustom[linestyle=none,fillstyle=solid,fillcolor=red] { \newpath \moveto(75,150) \lineto(65,125) \lineto(75,135) \lineto(85,125) \closepath } \end{pspicture} \end{document}
latex --version
给出:
pdfTeX 3.14159265-2.6-1.40.15 (TeX Live 2014/Arch Linux)
kpathsea version 6.2.0
这是为什么?如何解决?
答案1
使用 `
\rput(...){%
... %
}
无需额外空格!例如:
\rput(0,0){%
\pscustom[linestyle=none,fillstyle=solid,fillcolor=green]
{
\newpath
\moveto(75,150)
\lineto(65,125)
\lineto(75,135)
\lineto(85,125)
\closepath
}%
}
否则,您会得到两个不需要的空格。\pscustom
本身会删除空格,但的参数\rput
将作为默认 TeX 处理并将保留空格。
答案2
使用左锚点
\rput[Bl] (0,0) {
(...)
}
可以解决问题(tl
并且bl
也可以代替Bl
)。
还可以删除不必要的空格,例如
\rput(...){%
... %
}
解决了这个问题,但在包含外部文件时并不方便,因为外部文件必须不包含多余的空格。