#mdbook #line-break #katex #preprocessor #punctuation

bin+lib mdbook-mathpunc

一个 mdbook 预处理器,当使用 katex 时防止行内数学块和标点符号之间出现换行

2 个不稳定版本

0.2.0 2023 年 12 月 24 日
0.1.0 2023 年 11 月 20 日

771 in 数学

MIT 许可证

18KB
150

mdbook-mathpunc

Crates.io GitHub License

一个 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