Appearance
自定义快捷键和宏(宏编辑器)
宏和快捷键是 Liii STEM 中提升编辑效率的两大法宝。快捷键让你一键触发常用操作,而宏则允许你将重复的内容封装成简短命令。本文先以自定义快捷键为例带你入门,随后深入介绍宏的创建与编辑。
本文范围:本文只介绍通过宏编辑器和快捷键编辑器进行图形化编辑的方法。如果你希望直接编写源码或在导言区中定义宏,请参阅 快速入门 Scheme。
1 自定义快捷键
Liii STEM 支持为任何环境,标记或宏命令创建自定义快捷键,让你摆脱频繁敲击长命令或在菜单栏中逐层查找的烦恼。
1.1 为环境创建快捷键(以定理环境为例)
在科技写作中,定理环境是使用频率极高的语义块。根据 文本模式完全指南,插入定理环境现有两种方式: 输入 \theorem 后回车 或者 通过菜单栏 插入 → 语义块 → 定理 插入。当你需要频繁插入定理时,这两种方式都略显繁琐。更高效的做法是为定理环境绑定一个专属快捷键。
提示:虽然我们以定理环境为例,但任意 Liii STEM 环境(章节,语义块,高亮,数学公式等)都可以用同样的方法为其定义快捷键。
将光标置于任意定理环境内,点击焦点工具栏的扳手图标(样式选项),在弹出的菜单中选择 编辑快捷键...,即可进入快捷键编辑器:
![]() 图 1:焦点工具栏的「编辑快捷键...」入口 | ![]() 图 2:快捷键编辑器 |
如图 1 所示,焦点工具栏的扳手图标提供了针对当前环境的多种自定义选项,其中 编辑快捷键... 即是我们为定理环境添加快捷键的入口。
进入快捷键编辑器(图 2)后,左侧列表可以查看已定义的快捷键,右侧可以为当前环境设置新的快捷键组合。例如,我们可以为定理环境自定义 T + Tab (图中为macOS的快捷键显示, Windows会有不同) 作为快捷键。你会发现,在填写快捷键时,宏命令会自动填写 —— 这是因为每个快捷键背后本质上都是调用一个宏命令(而不是环境)来完成操作的。
试一试:为定理环境设置一个你喜欢的快捷键(例如
T+Tab),然后在文档中测试它。
除了为特定环境设置快捷键,你也可以通过菜单栏 工具 → 键盘 → 编辑键盘快捷键,打开快捷键编辑器页面进行更系统的管理。
除了环境外,您也可以框选任意内容,并为此内容定义一个宏,然后为这个宏定义一个快捷键。
到这里,你已经了解了快捷键的基本用法。接下来我们将深入介绍宏的创建与编辑。
2 宏:定义,创建与编辑
宏是 Liii STEM 中非常强大的功能,它允许你将重复的内容封装成一个简短命令。例如,如果你经常需要输入 "南方科技大学",可以定义一个名为 sustech 的宏,之后只需输入 \sustech 回车即可自动展开。宏的优势在于:当你需要修改内容时,只需修改宏定义,所有使用该宏的地方会自动更新。而第1节提到的快捷键,本质上就是通过按键组合来快速调用某个宏命令。
Liii STEM 提供了图形化的宏编辑器,无需编写代码即可创建宏。
2.1 宏与环境:以 Theorem 为例
在 Liii STEM 中,宏(Macro)和环境(Environment)是两个密切相关但层次不同的概念。以 Theorem(定理)为例:
- 宏是一段可展开的文本或命令替换。当你输入
\theorem回车时,Liii STEM 实际上是在调用名为theorem的宏,宏展开后生成创建 Theorem 环境的指令。 - 环境是宏展开后创建的带结构的排版容器。Theorem 环境会自动处理编号(如"定理 1.")、字体样式、间距等排版规则。也就是说,环境是宏展开的结果,而不是宏本身。
以我们前面定义的 sustech 宏为例:它的宏体是 "南方科技大学",展开后就是一段纯文本,不带任何结构或样式。而 theorem 宏的宏体则是一段 Scheme 代码 (make 'theorem),它的作用是调用 Liii STEM 的内部函数 make 来创建一个 Theorem 环境。
选读:Scheme 代码解读:
(make 'theorem)是 Liii STEM 底层使用的 Scheme 语言表达式。其中make是一个函数,'theorem(注意前面的单引号)表示符号(symbol)theorem。整句的含义是:"调用make函数,创建一个 Theorem 环境"。这与你在文档中输入\theorem回车的效果完全一致,只不过前者是底层实现,后者是用户界面。举一反三:同样的道理,如果你为前面定义的
sustech宏分配了快捷键,那么快捷键编辑器中自动填写的 Scheme 代码也是(make 'sustech)。\sustech在文档中展开为 "南方科技大学",而(make 'sustech)就是这个展开操作的底层实现。想了解更多 Scheme 代码的写法?请参阅 快速入门 Scheme。
也就是说:快捷键 → 调用宏 → 宏展开为 Scheme 代码 → 创建环境或插入纯文本。
小结:宏是可展开的命令;环境是宏展开后生成的结构化排版容器(带编号、样式等)。
\theorem和\sustech本质上都是宏,只是前者展开后创建环境,后者展开后仅输出纯文本。快捷键通过调用宏来间接创建环境。
2.2 创建简单宏
点击菜单栏 工具 → 宏命令 → 新建宏,打开宏定义小部件。在 enter-name 的位置 (鼠标点击即可,无需删除 enter-name)输入宏的名称,如 sustech,在 ≔ 符号下方输入宏的内容,如 南方科技大学。完成后点击 使用 → 确认。现在你的宏已经定义好了,你可以通过键入 \sustech 回车多次使用它。


试一试:创建一个名为
pku的宏,内容为 "北京大学",然后在文档中调用它。
2.3 创建带参数的宏
宏还可以接受参数,让每次调用时填入不同的内容。假设你希望定义一个生成对角矩阵的宏 diag,并附加约束:符号 x 和 n 可以在每次使用宏时更改。
与前面的示例一样输入宏的名称后,你可以使用 Alt + → 快捷键插入额外的宏参数,例如 x 和 n。在输入宏的内容时,可以通过键入 \x 回车和 \n 回车在内容内部使用这些参数。使用 \diag 回车应用宏时,将为每个参数提供一个空的且可编辑的插槽。
这里需要区分两个概念:参数的定义和参数的引用。在宏编辑器中,你首先使用
Alt+→定义了参数x和n,这些是在宏头部声明的形式参数。而在编写宏内容时,你输入\x回车,这表示引用前面定义好的参数x,将其值插入到当前位置。如果不加反斜杠直接输入x,那只是一个普通字母;加上反斜杠后,Liii STEM 会将其识别为宏参数引用,并以棕色显示以作区分。

小技巧:在普通文档中先设计好原型(如输入一个对角矩阵),然后将其复制粘贴到宏编辑器的内容区域,再把变量替换为参数引用,这是创建复杂宏的高效方法。
提示:在宏编辑器中创建宏时,也可以同时为其分配快捷键。这样,你不仅可以输入
\宏名来调用,还可以直接通过快捷键触发。此外,你也可以先选中任意内容(通过鼠标或者键盘Shift+←/↑/↓/→/Home/End,macOS 上为Command+←/→),再为其创建宏并绑定快捷键。详见 《高效编辑指南》 3.1 节 文档的结构化遍历。
3 修改/重定义现有宏
除了创建新宏,你还可以自定义 Liii STEM 内置的现有宏,或者修改文档中已有的宏定义。
3.1 通过焦点工具栏修改
要修改已创建的宏,最快捷的方式是将光标放在宏标签内部或紧随其后,然后使用以下任一方式打开宏编辑器:
- 点击
焦点→首选项→编辑宏 - 点击焦点工具栏中的扳手图标 →
编辑宏
例如,假设你之前定义了一个 sustech 宏,内容为 "南方科技大学"。现在你希望把内容改为 "SUSTC",你只需要把光标放在 sustech 标记内部或紧随其后,按上述方式打开宏编辑器,把内容改为 "SUSTC",确认后文档中所有使用 \sustech 的地方都会自动更新为 "SUSTC"。
3.2 通过宏编辑器列表修改
你也可以通过菜单栏 工具 → 宏命令 → 编辑宏 打开宏编辑器,在左侧列表中搜索并选择要编辑的宏。只要可用,宏的简短描述就会显示在文档区域中。这种方式特别适合当你不确定宏名称,或者需要浏览所有可用宏时。
3.3 选读:理解宏的结构
在编辑宏时,了解宏的结构非常重要。Liii STEM 的宏往往是分层的,一个宏可能依赖于其他子宏。
例如,proof 环境的内部结构如下:
<assign|proof|
<macro|body|
<render-proof|<proof-text>|body>>>这里 proof 宏调用了 render-proof 子宏,而 render-proof 又进一步调用了 qed 宏来生成证明结束符号 □。
如果你希望将证明结束符号从 □ 改为 ■,直接修改 qed 宏的定义即可,而不需要修改 proof 或 render-proof。要深入修改此类底层子宏(如 qed),通常需要进入文档的导言区(Preamble)进行编辑。你可以通过菜单栏 文档 → 源 → 显示导言(或快捷键 Command + Option + p)打开导言区视图。
建议:在自定义现有宏之前,先调查其依赖树,识别控制你希望更改行为的那些子宏,这样可以避免不必要的修改。如果你想系统性地管理所有宏定义和子宏依赖,请参阅 在导言区编辑宏(即将推出)。
4 进一步学习
宏编辑器适合快速定义简单宏和进行基本定制。如果你需要编写更复杂的宏,或者希望一次性管理所有宏定义,请参阅 在导言区编辑宏(即将推出)。
如果你想深入了解 Liii STEM 的样式语言底层,可以参考 快速入门 Scheme。
需要一份完整的快捷键速查表?请参阅 Liii STEM 的键盘快捷键。

