每个参数的%1
我定义\ isnil是这样的:
\ DEF \零{零}\ DEF \ isnil#1#2#3 {% \ edef \ nilTest {#1}% \ IFX \ nilTest \零#2 \#其他3 \网络连接}
但是当我试图运行它时 TeX的 </跨度> 抱怨说\ nilTest
为什么你的解决方案不起作用? \edef\pA{\isnil{#1}{\pA){#1}} 展开 \isnil 得到 \edef\nilTest{... 。现在 \edef 不可扩展,并作为第一个元素落入\ pA序列。试图扩展下一个宏 \nilTest 失败。
\edef\pA{\isnil{#1}{\pA){#1}}
\isnil
\edef\nilTest{...
\edef
\nilTest
使用 \setpar 从以下代码更改您的参数。
\setpar
\def\nil{nil} \def\setpar#1#2{% \edef\nilTest{#2}% \ifx\nilTest\nil\else\let#1\nilTest\fi} \def\first{old first} \def\second{old second} \setpar \first{nil} \setpar \second{new} first = ``\first'', second = ``\second''
附:不要在宏中使用数字。