Texas

Purpose

This crate does not, in any way, even remotely cover the vast variety of things you can do with latex. Instead, it attempts to provide a friendly API for some of the most basic functions. Furthermore, it does not catch most latex errors.

It's also my first foray into the open-source world, so constructive criticism is welcome and appreciated. https://github.com/Abhay478/Texas/issues

Basics

rust let mut q = File::create("file.tex")?; // let doc = Document::new(DocumentClass::new("book")); let doc = document!("book"); write!(q, "{}", doc.to_string())? - The document can be filled with Components, Packages and Commands. They can be created using both functions and macros. - Component is an enum, with each variant containing a separate struct. If a component impls the Populate trait, you can fill it with more Components, then install it in the Document like so:

```rust let mut p1 = Part::new("one"); p1.attach(Component::Chapter(Chapter::new("c1")))? .attach(Component::Chapter(Chapter::new("c2")))?;

p1.attach_vec(vec![chapter!("c3"); 2])?;

doc.newcomponent(Component::Part(p1)); - `Command`s can be created and installed like so: rust doc.newcommand(Command::new("brak", 1, "\ensuremath{\left(#1\right)}")); - And commands can be called in-text like so: rust let mut p1 = section!("one"); p1.attach(Component::Command( doc.getcommand("brak")?.call(vec!["hello"])?, ))?; p1.attach(command!(doc, "brak", "there"))?; - Will add ability to generate stuff like `ensuremath` from code eventually. - Packages can be created and installed like so: rust // let mut p1 = Package::new("parskip"); // p1.addoption("parfill"); let mut p1 = package!("parskip", "parfill"); doc.new_package(p1); `` - Also has traitOpt, which allows for adding options to a command (likeusepackageanddocumentclass`, for now).

Log

Future