底层命令解释

判断是否已经定义用\ifdefined或者\ifcsname,如果没有eTeX支持也可以用\ifx\foo\undefined或者 LaTeX 内核的\@ifundefined

判断是否用过一遍,可以在,然后在后面检测。

\xdef把定义中的内容完全展开,用来定义一个宏;\let让新宏与旧宏意义相同。\xdef就是\global\edef\let没有\global的意思。

1
2
3
4
\def\a{foo}
\def\b{\a}
\edef\c{\b} 得到的是 \c -> foo
\let\d\b 得到的是 \d -> \a

一个外链:What is the difference between and

\renewcommand所带参数可以包含用;
\renewcommand*不行

将一个命令输出为带斜杠的字符串。

让制控命令顺序颠倒过来,后面的命令先起作用,下边是一个证明的例子:

1
2
3
4
5
\def\test{9999}
\makeatletter
\def\testt#1#2#3#4{\@alph{#1}\@Alph{#2}\@Roman{#3}\@roman{#4}}
\makeatother
\expandafter\testt\test

如果不加:

1
\testt\test

就会出错。

0%