![有没有(简单的)方法来创建或个性化.bst 文件?](https://linux22.com/image/262233/%E6%9C%89%E6%B2%A1%E6%9C%89%EF%BC%88%E7%AE%80%E5%8D%95%E7%9A%84%EF%BC%89%E6%96%B9%E6%B3%95%E6%9D%A5%E5%88%9B%E5%BB%BA%E6%88%96%E4%B8%AA%E6%80%A7%E5%8C%96.bst%20%E6%96%87%E4%BB%B6%EF%BC%9F.png)
当你为期刊准备一篇文章时(就我而言,量子信息与计算在出版《Rinton Press》一书时,他们经常要求你使用某种格式来引用参考文献;就我而言,格式如下:
[1] R. Calderbank 和 P. Shor(1996 年),存在良好的量子纠错码, Phys. Rev. A, 54, 第 1098-1106 页。
[2] MA Nielsen 和 J. Kempe (2001),可分离国家的整体混乱程度比局部混乱程度更高, 量化-ph/0105090。
[3] AW Marshall 和 I. Olkin (1979),不等式:主要化理论及其应用,Academic Press(纽约)。
问题是,有时(这种情况就是如此)他们不.bst
为bibtex
用户提供样式文件。我(我想还有很多其他人)不喜欢将 bibtex 文件的所有参考资料逐一复制到 tex 文档中。因此,以下是我想回答的问题:
创建
.bst
文件?(适用于 Rinton 或任何其他出版商)
乍一看,我认为这很容易做到:毕竟,文件.bst
只是一个为列表提供格式的简单脚本。奇怪的是,经过长时间的搜索,我还是无法找到一个简单干净的解决方案来解决这个问题。以下是我一直在寻找的选项:
我曾尝试改编以前的 .bst 文件:具体来说,
apsrev4-1.bst
,其格式类似。其他人之前也尝试过这种解决方案[1],[2]。但是,这是一个丑陋的选择。首先,它需要浏览 .bst 的脚本并理解它。其次,不同的 .bst 文件中使用的脚本格式不同(相当烦人),因此除非您确实理解所写的内容,否则很难修改它们。上面的解决方案非常糟糕,而且确实浪费了时间,所以我想知道:有没有软件工具(希望有 GUI)可以完成这项工作?毕竟,对于 .bst 脚本专家来说,编写某种程序来生成 .bst 文件应该相当容易。此站点中有一些相关问题,要求提供类似的信息[3],[4];我在那里看到了几个建议的应用程序,但浏览它们的手册似乎不太容易使用。难道没有一些软件工具可以在不到 1 小时的工作时间内生成 .bst 吗?
评论:理想情况下我想要使用/个性化/创建.bst
支持字段的样式eprint
(例如aps4-1.bst
)。
答案1
正如 Ulrike 所说,使用发行版中提供的 makebst 工具。请注意,该程序会询问一长串问题,因此在执行此操作时请留出一些时间。可以这样调用它:
latex makebst
答案2
书目样式的定制是最近开发的吸水工程是为 BibTeX 创建的,尽管它使用的是 BibTeX 的替代品而不是 BibTeX 本身。引用 Bibulous 文档的介绍:
Bibulous 的诞生源于对使用 BibTeX 晦涩难懂的语言创建参考书目样式的复杂性感到沮丧,同时也源于这样的认识:由于参考书目是高度结构化的,因此应该能够使用模板方法简单灵活地指定它们。无需学习一门新语言即可创建参考书目样式,指定样式只需几分钟。
对于 OP 的数据库文件
@article{one,
title = {Good quantum error-correcting codes exist},
author = {Calderbank, A. R. and Shor, Peter W.},
journal = {Phys. Rev. A},
volume = {54},
issue = {2},
pages = {1098--1105},
year = {1996},
doi = {10.1103/PhysRevA.54.1098},
url = {http://link.aps.org/doi/10.1103/PhysRevA.54.1098}
}
@arxiv{two,
author = {M. A. Nielsen and J. Kempe},
year = 2001,
title = {Separable states are more disordered globally than locally},
url = {quant-ph/0011117}
}
@book{three,
author = {Albert W. Marshall and Ingram Olkin},
title = {Inequalities: theory of majorization and its applications},
year = 1979,
publisher = {Academic Press},
address = {New York}
}
(请注意,我根据 OP 的输入稍微更改了条目,假设与在线参考资料的差异是无意的。)相应的样式模板可以采用以下形式
TEMPLATES:
article = <au> (<year>), \textit{<title>}, <journal>, <volume>,{ }...
[pp.~<startpage>--<endpage>|p.~<startpage>|<eid>|].[ <note>]
book = [<au>|<ed>|] (<year>), \textit{<title>}, <publisher> (<address>).[ <note>]
arxiv = <au> (<year>), \textit{<title>}, \url{<url>}.
SPECIAL-TEMPLATES:
citelabel = <citenum>
sortkey = <citenum>
authorlist = <author.to_namelist()>
editorlist = <editor.to_namelist()>
authorname.n = [<authorlist.n.first.initial()>.][<authorlist.n.middle.initial().compress()>.][<authorlist.n.prefix>] <authorlist.n.last>[, <authorlist.n.suffix>]
au = <authorname.0>, ...,{ and }<authorname.9>
editorname.n = [<editorlist.n.first.initial()>.][<editorlist.n.middle.initial().compress()>.][<editorlist.n.prefix>] <editorlist.n.last>[, <editorlist.n.suffix>]
ed = <editorname.0>, ...,{ and }<editorname.3>
这里我使用了自定义条目类型,但用户arxiv
也可以使用其他任何名称。将此模板与 Bibulous 结合使用会产生格式化的输出misc
更改样式模板很容易。这<au>
是格式化作者列表的典型缩写,每个<.>
变量的意思是“在此处插入条目的数据”。要添加期刊名称的斜体,只需在模板中输入命令即可\textit{...}
。
<journal>
要将年份放在参考文献的末尾而不是作者列表之后,只需移动(<year>)
到模板内的所需位置即可。等等。Bibulous 文档包含各种其他示例供您参考。