#转换 #LaTeX #HTML5 #MathML #CLI

程序+库 latexml-runner

使用 latexml 进行高性能 TeX 到 HTML 转换的 Rust 运行器

7 个版本

0.1.6 2021 年 3 月 11 日
0.1.5 2021 年 3 月 7 日
0.1.3 2021 年 2 月 16 日
0.1.0 2020 年 12 月 23 日

#11 in #mathml

MIT 许可证

80KB
682 代码行

latexml-runner

使用 latexmls 进行高性能转换的 Rust 运行器。

Build Status License crates.io

如果

  • 您有许多具有共享 TeX/LaTeX 包和前导的作业。
  • 任务足够小,latexml 的开销成为性能瓶颈(例如单个公式或摘要/段落)。
  • 您的系统安装允许自定义 Perl 插件
  • 具体为 latexmls v1.5.0,LaTeXML 的套接字服务器。

如果您的转换任务需要分布式设置且/或无法预加载大多数依赖项,则此 crate 不会为您提供很大的速度提升。对于此类情况,可以考虑 LaTeXML::Plugin::Cortex 作为一种替代方案。

演示

您可以通过使用公共 docker 映像来尝试它,避免任何安装问题。

以下示例中,我们使用适用于转换 StackExchange 和 Wikipedia 等网站中的数学的调用

$ for i in {1..200}; do echo "\sqrt{x}+\frac{1}{2}=0" >> formula_latex.txt; done
 
$ time docker run --cpus="2.0" --memory="8g" \
-v "$(pwd)":/workdir -w /workdir \
latexml/latexml-runner:latest \
-i formula_latex.txt -o formula_xml.csv -l formula_status.log \
--preload=LaTeX.pool --preload=bm.sty --preload=texvc.sty \
--preload="literal:\\let\\theequation\\relax" \
--whatsin=math --whatsout=math --pmml --cmml --mathtex --format=html5 \
--nodefaultresources --timeout=30 

在例如 Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz 的机器上应在 9.5 秒内完成。

重要的是,formula_status.log 文件应包含两百个零,每行一个,以表示转换稳健地完成,无错误。换句话说, harness 和 latexmls 正确通信。

依赖项

~6–15MB
~196K SLoC