我知道我需要在后面放一个内部数量\the
。我知道扩展是 catcode 12 的标记列表(空格字符除外)。我知道下一个问题:
\skip0=30pt plus 2pt\relax
a\hskip\the\skip0 minus 1pt b
a\hskip\skip0 b
a\hskip\skip0 minus 1pt b
但在 pgf/tikz 的来源中,我看到例如
\def\pgfgetlastxy#1#2{%
\edef#1{\the\pgf@x}%
\edef#2{\the\pgf@y}%
}%
\pgf@x
前面通常有\the
。为什么the
在这种情况下是必要的?你知道一个有问题的例子吗?
答案1
\pgf@x
和寄存器\pgf@y
是临时寄存器,经常更改。使用\the
内部\edef
寄存器存储当前值其中作为字符串变成正常宏,以便在寄存器再次改变之后,值仍然可以在其他地方使用。
简单地使用\def#1{\pgf@x}
会使宏成为#1
其同义词,\pgf@x
而不会给您带来任何好处。