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.

It's also my first foray into the open-source world, so constructive criticism is welcome and appreciated.

Basics

let mut q = File::create("file.tex")?; let doc = Document::new(DocumentClass::new("book")); write!(q, "{}", doc.to_string())? - The document can be filled with Components, Packages and Commands. - 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:

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

doc.newcomponent(Component::Part(p1)); - `Command`s can be created and installed like so: doc.newcommand(Command::new("brak", 1, "\ensuremath{\left(#1\right)}")); - Will add ability to generate stuff like `ensuremath` from code eventually. - Packages can be created and installed like so: let mut p1 = Package::new("parskip"); p1.addoption("parfill"); doc.newpackage(p1); `` - Also has traitOpt, which allows for adding options to a command (likeusepackageanddocumentclass`, for now).