-
Notifications
You must be signed in to change notification settings - Fork 16
/
complex.rs
60 lines (45 loc) · 1.61 KB
/
complex.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
extern crate latex;
use latex::{print, Align, Document, DocumentClass, Element, Equation, List, ListKind, Section};
// const COMPLEX: &'static str = include_str!("complex.tex");
fn create_document() -> Document {
let mut doc = Document::new(DocumentClass::Article);
// Set the document's metadata
doc.preamble
.title("Hello World")
.author("Michael-F-Bryan")
.use_package("amsmath")
.use_package("parskip");
doc.push(Element::TitlePage)
.push(Element::ClearPage)
.push(Element::TableOfContents)
.push(Element::ClearPage)
.push(first_section());
doc
}
/// The "Introduction" section. It starts off with an intro paragraph, some
/// equations, then lists a bunch of objectives.
fn first_section() -> Section {
let mut section_1 = Section::new("Introduction");
section_1.push("This is an example paragraph.");
let mut equations = Align::new();
equations
.push("y &= mx + c")
.push(Equation::with_label("quadratic", "y &= a x^2 + bx + c"));
section_1
.push("Please refer to the equations below:")
.push(equations);
let mut objectives = List::new(ListKind::Enumerate);
objectives
.push(r"Demonstrate how to use the \textit{latex} library.")
.push("Create a reasonably complex document")
.push("???")
.push("PROFIT!");
section_1.push("Here are our objectives:").push(objectives);
section_1
}
pub fn main() {
let doc = create_document();
let rendered = print(&doc).unwrap();
// assert_eq!(rendered, COMPLEX);
println!("{}", rendered);
}