当使用 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}
否则空间就会丢失