1 个不稳定版本
0.1.0 | 2023年8月4日 |
---|
#1398 in 文本处理
135KB
906 行
RusTeX
一个用于在 Rust 中创建简单自动生成 LaTeX 文件的库。
快速开始
要使用 RusTeX
,将 crate 添加到你的 Cargo.toml
。
[dependencies]
rustex = "0.1.0"
文档
文档可在此处访问:这里。
实现的功能
组件
- 包
- 命令
- 章节
- 节
- 枚举
- 表格
- 图
- 文本
- 标签
- 页面分隔符
格式化
- Markdown 粗体 (**粗体**)
- Markdown 斜体 (_斜体_)
- 彩色文本 (#blue{text})
示例
一个包含生成的 PDF 文件的完整示例在 example 文件夹中。
-
首先创建一个基本
Document
const DOCUMENT_NAME: &str = "generated_tex/main.tex"; const DOCUMENT_CLASS: ClassType = ClassType::Report; const FONT_SIZE: &str = "12pt"; let doc_file: File = File::create(DOCUMENT_NAME).unwrap(); let doc_class: DocumentClass = DocumentClass::new( DOCUMENT_CLASS, vec![FONT_SIZE] ); let mut doc: Document = Document::new(doc_file, doc_class);
-
添加一些
Packages
let packages = vec![ Package::new( "babel", vec!["english"] ), Package::new( "geometry", vec!["margin=2.5cm"] ), Package::new( "fontenc", vec!["T1"] ) ]; doc.add_packages(packages);
-
添加一些全局
Commands
let commands = vec![ Command::new(r"\title{Title}"), Command::new(r"\author{Author}"), Command::new(r"\date{YYYY / MM / DD}"), Command::new(r"\setlength{\tabcolsep}{18pt}") ]; doc.add_global_commands(commands);
-
然后你可以添加不同的
Items
-
任何
Item
都可以添加到Document
-
任何
Item
都可以添加到Container
-
Container
是一个Item
,因此它们可以嵌套 -
Items
的显示顺序是它们被添加的顺序let mut section_1: Section = Section::new( "Section", // Section name SectionType::Section, // Section type true, // Display section number "sec_1" // Label ); let paragraph_1 = Text::new( "Lorem ipsum dolor sit amet, **consectetur** adipiscing elit. Integer congue nisi condimentum lacus vulputate cursus. _Curabitur_ bibendum orci ac nibh vestibulum ultrices. Aenean pulvinar mattis lectus, sed vehicula leo pellentesque eget. Sed sed quam sit amet nulla lacinia mollis. Maecenas dignissim, augue quis suscipit pellentesque, ipsum turpis facilisis eros, eu aliquam erat massa sit amet ex." ); section_1.add_item(paragraph_1); doc.add_item(section_1);
-
依赖
~2.2–3MB
~53K SLoC