#bibtex #latex #bibliography #biber

biblatex

解析、编写和评估BibTeX和BibLaTeX文件

17个版本

0.9.3 2024年3月7日
0.9.1 2023年11月29日
0.8.0 2023年4月4日
0.7.0 2023年3月27日
0.3.0 2020年9月13日

#205解析器实现 中排名

Download history 1071/week @ 2024-04-05 1039/week @ 2024-04-12 845/week @ 2024-04-19 1026/week @ 2024-04-26 887/week @ 2024-05-03 1066/week @ 2024-05-10 1824/week @ 2024-05-17 1316/week @ 2024-05-24 1052/week @ 2024-05-31 1369/week @ 2024-06-07 1333/week @ 2024-06-14 1187/week @ 2024-06-21 1115/week @ 2024-06-28 1195/week @ 2024-07-05 1363/week @ 2024-07-12 1206/week @ 2024-07-19

5,028 每月下载量
34 包(6个直接)中使用

MIT/Apache

205KB
5K SLoC

BibLaTeX

Build status Current crates.io release Documentation

BibLaTeX是一个用于解析和编写BibTeX和BibLaTeX文件的Rust包。

BibLaTeX可以帮助您解析.bib参考文献文件。与其他可用的包不同,此包试图将字段内的数据解析成易于使用的结构体和枚举,如PersonDate,以便下游使用。

用法

将以下内容添加到您的Cargo.toml

[dependencies]
biblatex = "0.9"

解析参考文献并获取条目的作者,就像这样简单

let src = "@book{tolkien1937, author = {J. R. R. Tolkien}}";
let bibliography = Bibliography::parse(src).unwrap();
let entry = bibliography.get("tolkien1937").unwrap();
let author = entry.author().unwrap();
assert_eq!(author[0].name, "Tolkien");

此库在Bibliography结构体上操作,这是一个条目的集合(您的.bib文件中的项目,以@开头并括在花括号内)。条目可以包含多个字段。条目为Bib(La)TeX文件中的每个可能字段提供getter方法,这些方法自动处理字段别名、组合和类型转换。

请参阅LaTeX参考文献管理WikiBook部分BibLaTeX包手册,以了解每个字段的预期含义。

生成的文档更具体地描述了getter的选择和行为,但通常,它们遵循以下约定:对应字段的蛇形名称(例如,对于booktitleaddon,getter命名为book_title_addon)。

限制

此库试图为BibLaTeX规范提供相当全面的覆盖,其中大多数流通过的.bib文件都可以处理。

然而,该包目前有一些限制

  • 没有显式支持入口集合,尽管通过手动获取 entryset 字段并调用 parse::<Vec<String>>() 来处理它们是很容易的

依赖项

~1–1.7MB
~60K SLoC