不必要的括号与加速编译过程

不必要的括号与加速编译过程

使用大量不必要的括号是否会减慢编译过程?

我之所以问这个问题,是因为我使用了很多警报命令,这些命令的定义如下

\def\alert#1{\textcolor{red}{#1}}

所以当我想要删除这些命令时,通常我只需删除\alert{}(TeXstudio 有一个用括号删除命令的快捷方式Alt+Del:)。

但我必须将光标放在命令上才能执行此操作。所以我更喜欢使用“查找/替换”来删除\alert,这样括号仍然保留。

如果我们使用许多不必要的括号,编译过程的速度是否会受到影响?

答案1

大括号组本身不太可能产生可衡量的效果。foo并且{foo} 实际上只是 TeX 内循环中的几个额外指令。然而,可能导致明显时间浪费(尤其是内存浪费)的原因是 TeX 必须在执行时管理本地和全局分配,因此}如果您进行了任何本地分配(定义、字体更改\label等),则必须将组之前的定义保存在堆栈中并在组末尾恢复。虽然大多数 LaTeX 环境都是一个组,但顶级环境document会进行一些特殊处理,以便它不会创建一个组,以避免文档中的每个 LaTeX 命令都在一个组内并影响保存堆栈的使用。

相关内容