扩大命令的优先级

扩大命令的优先级

一直在使用\setlength\bigskipamount{#1}。但我想像这样放大优先级。这样正确吗?还是应该将 {#1} 放在 的括号内\bigskipamount

\setlength{\bigskipamount}{#1}

答案1

我认为这个问题的意思是“我可以在这里用支架固定材料吗?”从两个角度回答:

Lamport 立场

在 Lamport 定义核心 LaTeX 命令的书中,全部参数用括号括起来。因此,在处理文档命令时,它们始终是“允许的”。

技术答案

\setlength宏需要两个参数:第一个必须是单个标记,第二个可能包含多个标记。当 TeX 查找未分隔的参数(如这里)并抓取带括号的组(“平衡文本”)时,消费者宏会接收不带括号的材料。因此,给出{\foo}\foo两者最终都会导致宏抓取这些标记并得到完全相同的结果:\foo

另外,虽然没有直接询问,但请注意 TeX 会跳过控制序列后的空格。因此\foo \bar\foo\bar是相同的。

相关内容