pstricks 中的计算会吞噬命令后的空格

pstricks 中的计算会吞噬命令后的空格

当使用 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)之间的空白被吞没的地方。1add

如何在 pstricks 中的坐标计算中使用计数器的值?谢谢。

答案1

\psframe(\x, \Y)(!1 \x\space add 1 \Y\space add}

否则空间就会丢失

相关内容