RustTeX
RustTeX is a Rust library for programmatically generating LaTeX documents. It provides a builder-style API to create LaTeX content with ease, allowing you to focus on the structure and content of your document without worrying about syntax errors.
Features
- Generate LaTeX documents programmatically.
- Support for document classes, packages, sections, formatting, and more.
- Builder-style API for intuitive usage.
- Easily extendable with custom LaTeX commands.
Installation
Add the following to your Cargo.toml
:
[]
= "0.1.2"
Usage
Here are some examples of how to use RustTeX to generate LaTeX documents.
Example 1: Basic Document
use ;
let mut builder = new;
builder.set_document_class;
builder.use_package;
builder.begin_document;
builder.title;
builder.author;
builder.maketitle;
builder.section;
builder.add_literal;
builder.end_document;
println!;
Generated LaTeX:
\begin{document}
\title
\author
\maketitle
This is the introduction.
\end{document}
Example 2: Formatting Text
use ContentBuilder;
let mut builder = new;
builder.begin_document;
builder.add_literal;
builder.text_bold;
builder.add_literal;
builder.text_italic;
builder.add_literal;
builder.text_underline;
builder.add_literal;
builder.end_document;
println!;
Generated LaTeX:
\begin{document}
Here is some , , and .
\end{document}
Example 3: Adding Sections and Subsections
use ;
let mut builder = new;
builder.set_document_class;
builder.begin_document;
builder.section;
builder.subsection;
builder.add_literal;
builder.subsection;
builder.add_literal;
builder.end_document;
println!;
Generated LaTeX:
\begin{document}
Content for subsection 1.
Content for subsection 2.
\end{document}
Example 4: Using Custom Environments
use ;
let mut builder = new;
builder.begin_document;
builder.env;
builder.env;
builder.end_document;
println!;
Generated LaTeX:
\begin{document}
\begin{center}
This text is centered.
\end{center}
\begin{quote}
This is a quoted block.
\end{quote}
\end{document}
Example 5: Adding Labels and References
use ContentBuilder;
let mut builder = new;
builder.begin_document;
builder.section;
builder.label;
builder.add_literal;
builder.end_document;
println!;
Generated LaTeX:
\begin{document}
See Section for more details.
\end{document}
Contributing
Contributions are welcome! Feel free to open issues or submit pull requests to improve RustTeX.