LaTeX Source2e

ltdefns.dtx

\@height, \@depth, \@width, \@minus, \@plus, \hb@xt@ 省空间之用.

\@namedef{ NAME }\def{\NAME}, 但 NAME 可以含任何字符.

\@nameuse{ NAME } 扩展成 \{NAME}.

\@ifnextchar 测试下一个字符并执行相应的命令.

\@ifundefined, \@ifdefinable 测试是否已经定义或者可定义.

\newcommand, \renewcommand, \newenvironment, \renewenvironment 定义命令和环境.

\@cons, \@car, \@cdr 如 LISP 中相应函数名.

\typeout 输出

\typein [CMD]{MSG} 输入.

\@carcube 取以 \@nil 结尾的列表中前三个.

\@onlypreamble, \@preamblecmds 添加只有文档前面才能执行的命令列表.

\@star@or@long 测试是否有 * 而决定是否定义 long 型命令.

\newif

\providecommand 如果已经定义, 就不放弃.

\CheckCommand 确认命令已经定义.

\@gobble, \@gobbletwo, \@gobblefour 除去参数.

\@firstofone, \@firstoftwo, \@secondoftwo, \@iden, \@thirdofthree 返回指定的参数.

\@expandtwoargs 将两个参数完全展开并传给宏执行.

\@backslashchar 类别为 12 的 "\".

\@unexpandable@protect 在扩展(\edef)中保护命令.

\DeclareRobustCommand 声明一个被保护的命令.

\@ifundefined 测试命令是否已定义并执行相应的命令.

\@qend, \@qrelax 分别为类别为 12 的 end, relax.

\@ifnextchar 测试下个字符并执行两个命令中的相应的. 一个技巧是怎样将空格作为宏的定界符.

\makeatletter, \makeatother 改变 "@" 的类别.

\@ifstar 测试下个字符是否为 "*" 并执行相应命令.

=\@dblarg= { *CMD* }{ ARG } 扩展成 \CMD[ARG]{ARG}, 而 {CMD}[OPT]{ARG} 扩展成 \CMD[OPT]{ARG}.

\@sanitize 将所有的特殊的字符除了"{}"的类别改为 12.

\@onelevel@sanitize 将宏定义的中所有字符类别改为 12.

No comments: