集成
按平台快速上手
每个目标都使用来自 Rust 流水线的相同显示列表。选择您的技术栈,然后在 GitHub 上打开完整指南了解版本控制、字体和原生构建脚本。
Web (WASM)
将 Rust 编译为 WebAssembly;Canvas 2D 绘制显示列表。使用已发布的 npm 包和可选的 ratex-formula Web 组件。
- 安装:
npm install ratex-wasm - 从包中加载 KaTeX 字体 CSS 并注册自定义元素或调用编程式 API。
<link rel="stylesheet" href="node_modules/ratex-wasm/fonts.css" />
<script type="module" src="node_modules/ratex-wasm/dist/ratex-formula.js"></script>
<ratex-formula latex="\frac{-b \pm \sqrt{b^2-4ac}}{2a}" font-size="48"></ratex-formula> iOS (Swift)
通过 C ABI 构建 Swift / SwiftUI 视图;CoreGraphics 渲染显示列表。通过 GitHub 仓库使用 SPM。
- 在 Xcode 中:File → Add Package Dependencies →
https://github.com/erweixin/RaTeX,选择 RaTeX 产品。 - 使用
RaTeXFormula/RaTeXView;字体在首次渲染时从包中加载。
// SwiftUI
RaTeXFormula(latex: #"\frac{-b \pm \sqrt{b^2-4ac}}{2a}"#, fontSize: 24) Android (Kotlin)
AAR 通过 JNI 链接到相同的原生库;Canvas 绘制字形和规则。已发布到 Maven 坐标。
- 添加
implementation("io.github.erweixin:ratex-android:…")(当前版本见 README)。 - 在 XML 或 Compose 中放置
RaTeXView并在代码中设置latex/fontSize。
binding.mathView.latex = """\frac{-b \pm \sqrt{b^2-4ac}}{2a}"""
binding.mathView.fontSize = 24f Flutter (Dart FFI)
Dart FFI 链接到 `libratex_ffi`;`CustomPainter` 渲染显示列表。预构建的 iOS XCFramework + Android `.so` 在 pub.dev 上。
- 在
pubspec.yaml中添加ratex_flutter并运行flutter pub get。 - 使用
RaTeXWidget(latex: r'…', fontSize: 28)。
RaTeXWidget(
latex: r'\frac{-b \pm \sqrt{b^2-4ac}}{2a}',
fontSize: 28,
onError: (e) => debugPrint('RaTeX: ' + e.toString()),
) Server / CLI (PNG)
使用 tiny-skia 将相同的显示列表光栅化为 PNG——CI 快照、后端或无头服务器——无需浏览器。
- 从仓库根目录使用
ratex-rendercrate(见 README“渲染为 PNG”)。 - 通过管道传入 LaTeX 标准输入或按文档传递参数;输出为 PNG 文件或标准输出。
echo '\frac{1}{2} + \sqrt{x}' | cargo run --release -p ratex-render 架构概述
所有路径共享:词法分析 → 语法分析 → 排版 → 显示列表。原生 UI 和 WASM 将该列表映射到 CoreGraphics、Android Canvas、Flutter Canvas、Skia 或 Canvas 2D;服务器 crate 使用 tiny-skia 光栅化。