许多 latex 软件包都使用了术语“宏”,它是什么意思?根据 LaTeX,宏的定义是什么?这个宏有什么用?请举例说明。提前谢谢您。
答案1
宏处理是编程语言的一个特殊用法,例如维基百科。
除了 TeX 之外,其他著名的宏系统包括m4
、C 预处理器和 SGML/XML/HTML 实体机制。
几乎所有可以在 Latex 中定义的命令都是宏,当宏被“扩展”时,它们会被低级命令的定义所取代。
在宏处理器中(与编译语言不同),主要机制是文本替换,因此
\newcommand\foo{hello}
输入
\foo\space world
该宏\foo
不是指向某个预编译函数的指针,它指向其替换文本,并在行中被替换,因此处理器会看到
hello\space world
就像这是原始输入一样,处理以此作为输入重新开始。(本描述中省略了一些细节)
\space
是 LaTeX 中已经定义的宏,扩展到空格,因此输入最终变成
hello world
这是传递到 TeX 排版核心的一系列不可扩展的标记。
答案2
(La)TeX 中的宏应该被视为名词。然后,根据韦氏词典:
定义
macro
复数macros
:代表一系列操作的单个计算机指令
在包和类级别编码的所有其他内容都依赖于宏和一些更深层次的原语- TeX 核心的一部分。