BibTeX:ENTRY 的第三个参数是什么?

BibTeX:ENTRY 的第三个参数是什么?

有人能解释一下参数的含义吗ENTRY?这些参数是某些 BST 文件中声明的第三个参数。以下是摘录自unsrtnat.bst

ENTRY
  { address
    annote
    . . .
  }
  {}
  { label extra.label sort.label short.list }

我猜label,,,是通过计算的,extra.label但是sort.label如何计算呢?该参数似乎是当前引用的序数。在哪里可以找到该命令的完整描述?short.listbibtex.exelabelENTRY

答案1

ENTRY函数有三个参数

  1. 外部字符串变量-通常是字段
  2. 内部整数变量-通常为空
  3. 内部字符串变量 - 通常是标签等

这些都是与每个条目单独关联的变量,而不是计算过程中使用的变量。因此,您需要在此处为​​每个要处理的字段声明一个变量。

对于外部变量,给出的列表ENTRY定义了从文件中读取哪些字段.bib。另一方面,内部变量必须在.bst文件中的某个地方计算。例如,在unsrtnat.bst您将找到

FUNCTION {calc.label}
{ calc.short.authors
  short.list
  "("
  *
  year duplicate$ empty$
  short.list key field.or.null = or
     { pop$ "" }
     'skip$
  if$
  *
  'label :=
}

它本身被称为

FUNCTION {presort}
{ calc.label
  label sortify
  "    "
  *
  seq.num #1 + 'seq.num :=
  seq.num  int.to.fix
  'sort.label :=
  sort.label *
  #1 entry.max$ substring$
  'sort.key$ :=
}

ITERATE {presort}

请注意,仅仅定义函数不会执行任何操作:它只是因为ITERATE使用而label被计算。

文档中有更多关于 BibTeX 的内容驯服野兽

相关内容