#latex #pdf #tex #generation

rust-texas

用于生成 LaTeX 文档的包

7 个版本

0.3.5 2024年5月31日
0.3.0 2024年5月10日
0.2.8 2024年1月25日
0.2.7 2023年9月20日
0.2.6 2023年8月30日

#797文本处理

50 每月下载量
用于 beary

MIT 许可证

64KB
2K SLoC

TEXAS

这个包原本是 Texas(大写T),由于出现了一个问题,所以我只能通过这种方式将其“重命名”。对于任何不便之处,我深表歉意。现在它是 rust-texas

用途

这个包并没有以任何方式涵盖您可以用 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())?
  • 文档可以填充 Component(包括 LabelReferenceEnvironment 等),PackageCommand。它们可以通过函数和宏创建。
  • Component 是一个枚举,每个变体包含一个单独的结构体。如果一个组件实现了 Populate 特性,您可以用更多的 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, r"\ensuremath{\left(#1\right)}"));
  • 并且可以在文本中这样调用命令
let mut p1 = section!("one");
p1.attach(command!(doc, "brak", "hello there"))?;
  • 也可以创建和安装 Package
doc.new_package(package!("parskip", "parfill"));
  • 还实现了特性 Opt,它允许向命令添加选项(例如,现在对于 usepackagedocumentclass)。
    • Opt 现在也实现了环境

组件

我们有很多。

层次结构

这些是文档中的区域。

  • 部分
  • 章节
  • 子节
  • 段落

Beamer

自 0.3.0 版本以来就支持 beamer。以下组件可用

  • 框架

环境

嗯,我还没有添加所有这些。您目前还不能创建自己的环境(这个功能即将推出),但您可以使用 Environment 结构体来使用任何环境。

  • 环境
  • 列表:专门用于 Itemize 和 Enumerate 环境的结构体。
  • 图:专门用于 Figure 环境的结构体。

基本文本

  • TextChunk:多种类型的文本(普通、斜体、粗体等)。更多内容请参考 TextType 枚举。

表格

  • 表格
  • 行:由 & 分隔的一系列 TextChunk。也可以在 align 环境中使用。

内置

  • 内置:所有的小符号(如 \phi\infty)和一些功能(如 \ensuremath)。更多内容请参考 BuiltinType 枚举。

标签

  • 标签
  • 引用

其他

  • 图像
  • 命令
  • 输入

日志

  • 0.3.0

    • 好了,这是一个很大的更新。
    • 添加了 Beamer 文档类。
      • 尚未添加主题。
    • 添加了更多的 TextType
    • 向各种结构体添加了 with_components 方法。
    • 进行了一些清理。
  • 0.3.5

    • 添加了标签!据我所知,这是其他 Latex crate 所没有的功能。
    • 创建了一个预导入模块!对于任何 texas 相关的功能,只需添加 use rust_texas::prelude::*;
    • component.rsdocument.rs 分割成多个文件。
    • 默认情况下,文档包含 graphicxhyperref
    • 添加了更多的 TextType
    • 修复了与 Opt 相关的一些错误,即它对环境没有任何作用。
    • 其他一些小更改。

依赖

~450KB