| Crates.io | Texas |
| lib.rs | Texas |
| version | 0.2.3 |
| created_at | 2023-06-27 13:49:54.87978+00 |
| updated_at | 2023-07-26 15:13:59.183975+00 |
| description | Crate to generate latex documents |
| homepage | |
| repository | https://github.com/Abhay478/Texas |
| max_upload_size | |
| id | 901316 |
| size | 42,947 |
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
Document, which you populate per your whims and fancies. This can be written to a file like so:let mut q = File::create("file.tex")?;
let doc = document!("book");
write!(q, "{}", doc.to_string())?
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:let mut p1 = part!("one");
p1.attach(chapter!("c1"))?
.attach(chapter!("c2"))?; // and so on.
p1.attach_vec(vec![chapter!("c3"); 2])?;
doc.new_component(p1);
Commands can be created and installed like so:doc.new_command(Command::new("brak", 1, "\\ensuremath{\\left(#1\\right)}"));
let mut p1 = section!("one");
p1.attach(command!(doc, "brak", "hello there"))?;
ensuremath from code eventually.doc.new_package(package!("parskip", "parfill"));
Opt, which allows for adding options to a command (like usepackage and documentclass, for now).package! macro wasn't working, fixed that.lib.rs) for convenience.Line code.package! macro. Wasn't really crippling to begin with.