rust_texas/
label.rs

1use crate::prelude::AsLatex;
2
3#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4pub enum Label {
5    Standard(String),
6    Chapter(String),
7    Section(String),
8    Subsection(String),
9    Equation(String),
10    Table(String),
11    Figure(String),
12    Code(String),
13    Item(String),
14    Algorithm(String),
15}
16
17impl AsLatex for Label {
18    fn to_string(&self) -> String {
19        format!(
20            " \\label{{{}}} \n",
21            match &self {
22                Label::Standard(s) => format!("std:{s}"),
23                Label::Equation(s) => format!("eq:{s}"),
24                Label::Table(s) => format!("tab:{s}"),
25                Label::Figure(s) => format!("fig:{s}"),
26                Label::Section(s) => format!("sec:{s}"),
27                Label::Subsection(s) => format!("subsec:{s}"),
28                Label::Code(s) => format!("lst:{s}"),
29                Label::Item(s) => format!("itm:{s}"),
30                Label::Algorithm(s) => format!("alg:{s}"),
31                Label::Chapter(s) => format!("ch:{s}"),
32            }
33        )
34    }
35}
36
37#[derive(Debug, Clone, PartialEq, Eq)]
38pub enum Reference {
39    Standard(String),
40    Chapter(String),
41    Section(String),
42    Subsection(String),
43    Equation(String),
44    Table(String),
45    Figure(String),
46    Code(String),
47    Item(String),
48    Algorithm(String),
49}
50
51impl AsLatex for Reference {
52    fn to_string(&self) -> String {
53        format!(
54            "~\\ref{{{}}} \n",
55            match &self {
56                Reference::Standard(s) => format!("std:{s}"),
57                Reference::Equation(s) => format!("eq:{s}"),
58                Reference::Table(s) => format!("tab:{s}"),
59                Reference::Figure(s) => format!("fig:{s}"),
60                Reference::Section(s) => format!("sec:{s}"),
61                Reference::Subsection(s) => format!("subsec:{s}"),
62                Reference::Code(s) => format!("lst:{s}"),
63                Reference::Item(s) => format!("itm:{s}"),
64                Reference::Algorithm(s) => format!("alg:{s}"),
65                Reference::Chapter(s) => format!("ch:{s}"),
66            }
67        )
68    }
69}