使用大量不必要的括号是否会减慢编译过程?
我之所以问这个问题,是因为我使用了很多警报命令,这些命令的定义如下
\def\alert#1{\textcolor{red}{#1}}
所以当我想要删除这些命令时,通常我只需删除\alert{}
(TeXstudio 有一个用括号删除命令的快捷方式Alt+Del
:)。
但我必须将光标放在命令上才能执行此操作。所以我更喜欢使用“查找/替换”来删除\alert
,这样括号仍然保留。
如果我们使用许多不必要的括号,编译过程的速度是否会受到影响?
答案1
大括号组本身不太可能产生可衡量的效果。foo
并且{foo}
实际上只是 TeX 内循环中的几个额外指令。然而,可能导致明显时间浪费(尤其是内存浪费)的原因是 TeX 必须在执行时管理本地和全局分配,因此}
如果您进行了任何本地分配(定义、字体更改\label
等),则必须将组之前的定义保存在堆栈中并在组末尾恢复。虽然大多数 LaTeX 环境都是一个组,但顶级环境document
会进行一些特殊处理,以便它不会创建一个组,以避免文档中的每个 LaTeX 命令都在一个组内并影响保存堆栈的使用。