#latex #tex #pdf #generation

已删除 德州

用于生成 LaTeX 文档的 crate

5 个版本

0.2.3 2023年7月26日
0.2.2 2023年7月15日
0.1.9 2023年7月3日
0.1.3 2023年6月30日

#55 in #tex

Download history 114/week @ 2024-04-05 10/week @ 2024-04-12

每月下载量 104

MIT 许可证

37KB
1K SLoC

德州

目的

本 crate 并没有涵盖您可以使用 LaTeX 完成的各种事情。相反,它试图提供一些最基本功能的友好 API。此外,它不会捕获大多数 LaTeX 错误。

这也是我第一次进入开源世界,因此欢迎和感谢建设性的批评。 https://github.com/Abhay478/Texas/issues

基本功能

  • 主要类型是 Document,您可以随心所欲地填充它。可以这样写入文件
let mut q = File::create("file.tex")?;
let doc = document!("book");
write!(q, "{}", doc.to_string())?
  • 文档可以填充 ComponentPackageCommand。它们可以通过函数和宏创建。
  • Component 是一个枚举,每个变体包含一个单独的结构体。如果一个组件 implPopulate 特性,您可以用更多 Component 填充它,然后像这样将其安装到 Document
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);
  • Command 可以这样创建和安装
doc.new_command(Command::new("brak", 1, "\\ensuremath{\\left(#1\\right)}"));
  • 并且可以在文中这样调用命令
let mut p1 = section!("one");
p1.attach(command!(doc, "brak", "hello there"))?;
  • 最终将添加从代码生成类似 ensuremath 的功能。
  • 包可以像这样创建和安装
doc.new_package(package!("parskip", "parfill"));
  • 还有一个 Opt 特性,允许为命令添加选项(如目前 usepackagedocumentclass)。

日志

  • 0.1.7

    • package! 宏不起作用,已修复。
    • 将模块移到前面(在 lib.rs 中重新导出)以方便使用。
  • 0.1.8

    • 小错误。由于 Line 代码导致的 LaTeX 错误。
  • 0.1.9

    • 将结构体引入作用域。
  • 0.2.1

    • 现在有了文档。
  • 0.2.2

    • 图像和表格。
    • 修复了一些文档的小问题。
    • 修复了 package! 宏的另一个问题。最初并没有真正致命。
  • 0.2.3

    • 小清理。
    • 最终添加了 ensuremath 功能。还将添加更多。

无运行时依赖