#proc-macro #convert #latex #align #tex-expr #tex-equation #latex-code

二进制 math_dsl_macro

将 LaTeX 代码转换为 Rust 代码的 Proc-macro

1 个不稳定版本

0.1.0 2021 年 10 月 16 日

#25 in #align

MIT/Apache

29KB
712

例如

# #[macro_use]
# extern crate math_dsl_macro;
# fn main() {
# let psi = 1f64;
tex_expr!(r"\frac\pi 3 (1-\cos^2\psi)^2");
# }

展开为类似以下内容

# let psi = 1f64;
std::f64::consts::PI / 3f64  * ( 1f64 - psi.cos().powi(2) ).powi(2);

类似地

# #[macro_use]
# extern crate math_dsl_macro;
# fn main() {
# let psi = 1f64;
tex_equation!(r"x=\frac\pi 3 (1-\cos^2\psi)^2");
# }

展开为

# let psi = 1f64;
let x = std::f64::consts::PI / 3f64  * ( 1f64 - psi.cos().powi(2) ).powi(2);

例如,如果 myinput.tex 包含

Other \LaTeX code
\begin{align*}
x=\frac\pi 3 (1-\cos^2\psi)^2
\end{align*}
Other \LaTeX code
\begin{align*}
a=b+c
\end{align*}
Other \LaTeX code

from_latex_file!("myinput.tex");

展开为

# let psi = 1f64;
# let b = 1f64;
# let c = 1f64;
let x = std::f64::consts::PI / 3f64  * ( 1f64 - psi.cos().powi(2) ).powi(2);
let a = b + c;

依赖项

~7MB
~129K SLoC