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