我怎么知道不能使用 w ?

我怎么知道不能使用 w ?

我有一个项目要绘制一些比下面更复杂的东西。显然我在用w调用后无法使用。我挣扎了 1 个小时才找到它。\psaxes[$x$,0][$y$,90]

在此处输入图片描述

\documentclass{standalone}
\usepackage{pstricks-add}

\begin{document}
\begin{pspicture}(-4,-4)(4,4)
    \pstVerb{/w 1 def}%
    \psaxes{->}(0,0)(-2,-2)(2,2)%
    [$x$,0][$y$,90]%<=== source of problem!
  \psline{-*}(!w w)
\end{pspicture}
\end{document}

你能看到奇怪的输出吗?该点的半径应该是 2 厘米的平方根。

w如果没有警告/错误消息,我怎么知道不能使用?

编辑:另一个单个字母标识符产生奇怪输出的例子!

\documentclass[pstricks,border=0pt]{standalone}
\usepackage{pstricks-add}

\begin{document}
\multido{\i=0+30}{12}{%
\begin{pspicture}(4,4)
    \pstVerb{/a 1 def}
    \uput{5mm}[0](2,2){$\i^\circ$}
\end{pspicture}}
\end{document}

答案1

定义并不是一个好主意全球的只有一个字母的变量。它们也在 PostScript 部分内使用。至少使用大写字母,最好使用两个字符:

\documentclass{standalone}
\usepackage{pst-plot}

\begin{document}
\pstVerb{/ww 1 def}
\begin{pspicture}(-4,-4)(4,4)
  \psaxes{->}(0,0)(-2,-2)(2,2)[$x$,0][$y$,90]
  \psline{-*}(!ww ww)
\end{pspicture}
\end{document}

答案2

建议的解决方案是使用userdict begin ... end构造。它比公认的答案更灵活。

\documentclass{standalone}
\usepackage{pstricks-add}

\begin{document}
\begin{pspicture}(-4,-4)(4,4)
    \pstVerb{userdict begin /w 1 def end}%
    \psaxes{->}(0,0)(-2,-2)(2,2)%
    [$x$,0][$y$,90]%<=== source of problem!
  \psline{-*}(!userdict begin w w end)
\end{pspicture}
\end{document}

相关内容