tui_math/lib.rs
1//! # tui-math
2//!
3//! Render LaTeX math beautifully in terminal UIs with ratatui.
4//!
5//! ## Example
6//!
7//! ```rust,no_run
8//! use tui_math::{MathWidget, render_latex};
9//!
10//! // Render LaTeX to Unicode string
11//! let rendered = render_latex(r"\frac{x^2 + 1}{y}").unwrap();
12//! println!("{}", rendered);
13//!
14//! // Or use as a ratatui widget
15//! let widget = MathWidget::new(r"\int_0^\infty e^{-x^2} dx");
16//! ```
17
18mod canvas_widget;
19mod mathbox;
20mod renderer;
21mod unicode_maps;
22mod widget;
23
24pub use canvas_widget::CanvasMathWidget;
25pub use mathbox::MathBox;
26pub use renderer::{MathRenderer, RenderError};
27pub use widget::{MathWidget, MathWidgetState, StatefulMathWidget};
28
29/// Render LaTeX math to a Unicode string for terminal display
30pub fn render_latex(latex: &str) -> Result<String, RenderError> {
31 let renderer = MathRenderer::new();
32 renderer.render_latex(latex)
33}
34
35/// Render MathML to a Unicode string for terminal display
36pub fn render_mathml(mathml: &str) -> Result<String, RenderError> {
37 let renderer = MathRenderer::new();
38 renderer.render_mathml(mathml)
39}