6 个版本 (破坏性更新)
0.5.1 | 2024 年 8 月 8 日 |
---|---|
0.5.0 | 2024 年 8 月 2 日 |
0.4.0 | 2024 年 8 月 1 日 |
0.3.0 | 2024 年 7 月 21 日 |
0.1.0 | 2024 年 5 月 1 日 |
#542 在 解析器实现 中
每月 586 次下载
655KB
5.5K SLoC
包含 (WOFF 字体,390KB) font/latinmodern-math.woff2,(WOFF 字体,47KB) font/lmroman12-bold.woff2,(WOFF 字体,49KB) font/lmroman12-italic.woff2,(WOFF 字体,46KB) font/lmroman12-regular.woff2
pulldown-latex
用于 $\LaTeX$ 解析和 mathml
渲染的拉式解析器。
本项目受 KaTeX
、Temml
、MathJax
等项目启发,正在积极维护,目前 95% 的功能与 KaTeX
等类似项目支持的功能相符,并且经过最小化测试。该软件应该适用于大多数用例。然而,不建议用于大规模生产环境,因为需要更健壮的测试。
目标
遵循现代 LaTeX 原则:理想情况下,此库应主要与 latex2e
和 amsmath
兼容。这里的“主要”一词指的是这些包暴露的数学命令;排版文本超出了此crate的范围。此目标的另一个后果是,一些已废弃的 plain-TeX 命令(例如,\atop
、\over
等)不受此crate支持。
紧密模仿传统 LaTeX:此crate的目标是努力生成美观的方程式。这意味着 mathml
输出可能经过调整,以使其类似于 pdflatex
、KaTeX
或 MathJax
的输出。
开发说明
测试
- 所有
temml
和katex
测试的内容 - Cargo Mutants
- 错误
TODO's/已知错误
稍后:
- 关于状态变化和解析器满足的不变性的更好的文档。
-
Dimension
值过大 - 方括号矩阵的左右间距不等。
- 斜体数字不是斜体,因为它们不在 unicode 中。
-
\bar
产生很小的横线,应该更大。 - 颜色 API 重构
-
\sideset
不支持的 plain-TeX & LaTeX 行为
- 更改字符的
catcode
\if
* 宏^^_
&^^[0-9a-f][0-9a-f]
作为指定字符的方式- 重新定义活动字符 该库目前仅支持默认活动字符,因此不允许定义活动字符。
- 隐式字符作为空白标记 正如《TeX入门》第265页中Knuth所规定,一个
space token
表示一个 显式 或 隐式 空格。该库目前不支持当需要space token
时使用 隐式 空格标记。 - 使用内部值和参数,如寄存器,以及类似
\tolerance
的事物(参见《TeX入门》第267页的完整定义) \magnification
参数 &true
大小- 不区分大小写的关键词匹配。根据《TeX入门》第265页,关键词如
pt
、em
、true
等,是不区分大小写的(例如,pT
会匹配pt
)。该库不支持此行为,因为关键词必须完全匹配(即,em
、true
、pt
等)。 fil
单位 TeX 允许使用fil(ll...) 单位,该库不支持。
- 定义中的
\outer
指示符 \edef
,我们不支持宏的预展开。\csname
&\endcsname
\begingroup
和{
,以及\endgroup
和}
的行为相同;也就是说,\begingroup
和\endgroup
没有保持“相同模式”的特性(见《TeX入门》第275页)。- 所有垂直列表操作命令。例如
\vskip
、\vfil
、\moveleft
等。 \hfil
、\hfill
\over
、\atop
以及所有已弃用的“分数样”控制序列。
不支持的 KaTeX/Temml 选项
- 宏前缀
- 包装
- 左方程编号
colorIsTextColor
ThrowOnError
maxSize
trust
\toggle
组
杂项参考 & 工具
在开发此包期间使用的源。代码注释中的任何引用都专门指这些链接。