.bib 文件中哪些字段必须用{大括号}或“引号”括起来(为什么年份不必如此)?

.bib 文件中哪些字段必须用{大括号}或“引号”括起来(为什么年份不必如此)?

我正在编写一些与 .bib 字段交互的软件。我希望能够正确扩展字段值中的 @string 缩写,并且我一直在学习引用规则。在几乎所有情况下,似乎字段的值( 之后的位=)必须:

  • 完全“引用”或{括号}
  • 或者不带括号,但是是缩写的标签@string(引用时值将扩展为该缩写)
  • 或由单独的项目列表组成#,每个项目均符合上述其中一项。

例如,对于该publisher领域来说,情况确实如此。我无法编写一份引用了以下内容的文档:publisher = Oxford University Press,没有似乎适用于yearyear = 2011,工作正常,正如year = yr我有的那样@String{yr = 1967}(请注意字符串定义中缺少括号或引号)。

这是为什么?据我从文档中了解到,两者都是文字字段。年份字段有何不同,我的软件应该实施哪些规则?(如果您能指出一些文档的相关部分,显然我不需要完整的细分)。

答案1

BibTeX 的精彩文档尼古拉斯·马基驯服野兽(更多官方文档请访问https://ctan.org/pkg/bibtex对大多数人来说有点欠缺,因为它假设读者了解 LaTeX 书籍 [Leslie Lamport. LaTeX: A Document Preparation System. Addison-Wesley, 1997.])

第 3 部分第 8 条.bib文件结构(第 20 页)我们发现

  • 值 (IE(每个赋值右侧)可以放在花括号或双引号之间。主要区别在于,在第一种情况下,你可以写双引号,而在第二种情况下,则不能。对于引用关于“文件名和字体”的评论作者:Frank Mittelbach,您可以使用以下解决方案之一:
    title = "Comments on {"}Filenames and Fonts{"}",
    title = {Comments on "Filenames and Fonts"},
    
    花括号必须匹配,因为它们将出现在 LaTeX 编译的输出中。[...]
  • 对于数值,可以省略花括号和双引号。

这意味着您可以省略括号/引号的原因year = 1994,是因为该值是纯数字。这与特定字段无关,而是与内容有关。

s的情况@string在第 3 部分第 9 节第 21 页中讨论。

相关内容