为什么必须将 % 放在 \pstVerb 之前的行尾?

为什么必须将 % 放在 \pstVerb 之前的行尾?

请考虑红点的位置。

在此处输入图片描述

第一种情况

当我不激活时\pstVerb{/xxx 1 def},红点位于正确位置。

\documentclass[border=12pt]{standalone}
\usepackage{pst-eucl}
\addtopsstyle{gridstyle}{gridlabels=0,griddots=0}

\begin{document}
\begin{pspicture}[showgrid](2,2)
    \pstGeonode{A}(1.5,0){B}(1.5,1.5){C}
    \pstRightAngle[fillstyle=solid,fillcolor=green!50]{A}{B}{C}
    %\pstVerb{/xxx 1 def}
    \psdots[linecolor=red](1,1)
\end{pspicture}    
\end{document}

第二种情况

当我激活时\pstVerb{/xxx 1 def},红点会偏离其正确位置。

\documentclass[border=12pt]{standalone}
\usepackage{pst-eucl}
\addtopsstyle{gridstyle}{gridlabels=0,griddots=0}

\begin{document}
\begin{pspicture}[showgrid](2,2)
    \pstGeonode{A}(1.5,0){B}(1.5,1.5){C}
    \pstRightAngle[fillstyle=solid,fillcolor=green!50]{A}{B}{C}
    \pstVerb{/xxx 1 def}
    \psdots[linecolor=red](1,1)
\end{pspicture}
\end{document}

第三种情况

当我将其附加到%的末尾时\pstRightAngle[fillstyle=solid,fillcolor=green!50]{A}{B}{C},红点会返回到其正确位置。

\documentclass[border=12pt]{standalone}
\usepackage{pst-eucl}
\addtopsstyle{gridstyle}{gridlabels=0,griddots=0}

\begin{document}    
\begin{pspicture}[showgrid](2,2)
    \pstGeonode{A}(1.5,0){B}(1.5,1.5){C}
    \pstRightAngle[fillstyle=solid,fillcolor=green!50]{A}{B}{C}%<== why do I need this comment?
    \pstVerb{/xxx 1 def}
    \psdots[linecolor=red](1,1)
\end{pspicture}
\end{document}

问题:

为什么我需要把它放在%末尾\pstRightAngle[fillstyle=solid,fillcolor=green!50]{A}{B}{C}而不是末尾\pstVerb{/xxx 1 def}?这真的很令人困惑。

答案1

代码\ignorespaces末尾缺少:\pstRightAngle

[...]
    \fi\fi\fi}%
  \egroup\ignorespaces%
}%

\pstVerb也会给出一个空格,但下面的开头\psdots有一个。因此,和都有一个尾随空格,但只有一个被下面的忽略\pst@killglue\pstRightAngle\pstVerb\psdots

相关内容