A library to make simple auto-generated LaTeX files in Rust.
To use RusTeX, add the crate to your Cargo.toml.
[dependencies]
rustex = "0.1.0"The documentation is accessible here.
- Package
- Command
- Chapter
- Section
- Enumerate
- Table
- Figure
- Text
- Label
- PageBreak
- Markdown bold (**bold**)
- Markdown italic (_italic_)
- Color text (#blue{text})
A full example with the resulting PDF file is accessible in the example folder.
-
Start by creating a base
Documentconst DOCUMENT_NAME: &str = "generated_tex/main.tex"; const DOCUMENT_CLASS: ClassType = ClassType::Report; const FONT_SIZE: &str = "12pt"; let doc_file: File = File::create(DOCUMENT_NAME).unwrap(); let doc_class: DocumentClass = DocumentClass::new( DOCUMENT_CLASS, vec![FONT_SIZE] ); let mut doc: Document = Document::new(doc_file, doc_class);
-
Add some
Packageslet packages = vec![ Package::new( "babel", vec!["english"] ), Package::new( "geometry", vec!["margin=2.5cm"] ), Package::new( "fontenc", vec!["T1"] ) ]; doc.add_packages(packages);
-
Add some global
Commandslet commands = vec![ Command::new(r"\title{Title}"), Command::new(r"\author{Author}"), Command::new(r"\date{YYYY / MM / DD}"), Command::new(r"\setlength{\tabcolsep}{18pt}") ]; doc.add_global_commands(commands);
-
Then you can add different
Items-
Any
Itemcan be added to aDocument -
Any
Itemcan be added to aContainer -
A
Containeris anItem, so they can be nested -
Itemsare displayed by order that they have been addedlet mut section_1: Section = Section::new( "Section", // Section name SectionType::Section, // Section type true, // Display section number "sec_1" // Label ); let paragraph_1 = Text::new( "Lorem ipsum dolor sit amet, **consectetur** adipiscing elit. Integer congue nisi condimentum lacus vulputate cursus. _Curabitur_ bibendum orci ac nibh vestibulum ultrices. Aenean pulvinar mattis lectus, sed vehicula leo pellentesque eget. Sed sed quam sit amet nulla lacinia mollis. Maecenas dignissim, augue quis suscipit pellentesque, ipsum turpis facilisis eros, eu aliquam erat massa sit amet ex." ); section_1.add_item(paragraph_1); doc.add_item(section_1);
-