![pstricks 中的计算会吞噬命令后的空格](https://linux22.com/image/381832/pstricks%20%E4%B8%AD%E7%9A%84%E8%AE%A1%E7%AE%97%E4%BC%9A%E5%90%9E%E5%99%AC%E5%91%BD%E4%BB%A4%E5%90%8E%E7%9A%84%E7%A9%BA%E6%A0%BC.png)
当使用 pstricks 和 xelatex 绘制正方形时,以下 MWE 运行良好。
\documentclass{article}
\usepackage{pstricks}
\begin{document}
\def\x{0 } % Notice that there MUST be a white space after 0
\psframe(\x, 1)(!1 \x add 1 1 add)
\end{document}
问题是,当我尝试\psframe
在带有计数器的 whiledo 循环中执行时,命令后的空格会被吞掉。请看以下 MWE:
\documentclass{article}
\usepackage{pstricks}
\newcounter{Y}
\setcounter{Y}{1}
\begin{document}
\def\x{0 }
\def\Y{\theY }
\psframe(\x, \Y)(!1 \x add 1 \Y add)
\end{document}
xelatex test
当使用test.tex 是源文件名称的命令进行编译时,会引发以下错误:
Using PSTricks configuration for XeTeX+xdvipdfmx
))) (/usr/share/texlive/texmf-dist/tex/generic/pstricks/pst-fp.tex))
(./test.aux) [1] (./test.aux)Error: /undefined in 1add
Operand stack:
--nostringval-- 0.0 true 0.0 28.4527 1 1
看起来在扩展 中的 \Y 之后\psframe
,第二个坐标变为最后一个和(!1 0 add 1 1add)
之间的空白被吞没的地方。1
add
如何在 pstricks 中的坐标计算中使用计数器的值?谢谢。
答案1
\psframe(\x, \Y)(!1 \x\space add 1 \Y\space add}
否则空间就会丢失