2 个不稳定版本
| 0.2.0 | 2023 年 12 月 24 日 |
|---|---|
| 0.1.0 | 2023 年 11 月 20 日 |
771 in 数学
18KB
150 行
mdbook-mathpunc
一个 mdBook 预处理器,当使用 katex 时防止行内数学块和标点符号之间出现换行。
安装
假设您已安装 mdBook 和 mdbook-katex,使用以下命令安装软件包:
$ cargo install mdbook-mathpunc
然后将其添加到您的 book.toml 文件中作为预处理器
[preprocessor.mathpunc]
before = ["katex"]
before = ["katex"] 这一行确保 mathpunc 在 katex 预处理器之前运行。
实现
这非常基础:预处理器只是简单地替换所有出现的 $p(其中 p 是零或一个闭括号后跟五个标点符号之一 , . ; : )(可能在美元符号和 p 之间有零个或多个空白字符)为 p$,除非美元符号被反斜杠转义。如果 p 是 : 或 ):,则在其前面添加负空间 \!\!,因为它们在数学模式下渲染时会有额外的空白空间(例如,在编写 $a$: 时,没有人期望在 a 和 : 之间有任何空间,正如在将其转换为 $a:$ 时的情况)。它不处理其他标点符号,如 ? 或 !,因为这些标记后面跟数学块的情况很少见。它使用 fancy-regex crate 来完成此操作。
请注意,如果某些内联方程以标点符号开头,例如 $,a$,可能会产生不期望的副作用,它将被替换为 ,$a$。
待办事项
目前预处理器只处理内联数学的默认分隔符,即 $。mdbook-katex 预处理器允许定义内联数学的自定义分隔符,例如 \( ... \)。在这里处理自定义分隔符会更好。
依赖关系
~12–26MB
~336K SLoC