我忘记了使用\expandafter
这样的规则,\rect
可以将其用作psframe
和的点参数pspicture
。
\documentclass{standalone}
\usepackage{pstricks}
\def\rect{(-3,-3)(3,3)}
\begin{document}
\begin{pspicture}[showgrid=top]\rect
\psframe[linecolor=red]\rect
\end{pspicture}
\end{document}
您能再审阅一下吗?
答案1
PSTricks 预计
\begin{pspicture}[<options>]
后面跟着明确的坐标。因此\rect
在 TeX 开始查找 之前必须将其展开\begin
。
\newcommand{\expandcoord}[2]{%
\expandafter\expandcoordaux\expandafter{#2}{#1}%
}
\newcommand\expandcoordaux[2]{#2#1}
然后你可以说
\expandcoord{\begin{pspicture}[showgrid=top]}{\rect}
\expandcoord{\psframe[linecolor=red]}{\rect}
\end{pspicture}
这里的主要问题是\expandafter
只跳过一令牌,因此必须采取间接方式。这当然会破坏auto-pst-pdf
或类似的包。