有人能解释一下参数的含义吗ENTRY
?这些参数是某些 BST 文件中声明的第三个参数。以下是摘录自unsrtnat.bst
:
ENTRY
{ address
annote
. . .
}
{}
{ label extra.label sort.label short.list }
我猜label
,,,是通过计算的,extra.label
但是sort.label
如何计算呢?该参数似乎是当前引用的序数。在哪里可以找到该命令的完整描述?short.list
bibtex.exe
label
ENTRY
答案1
该ENTRY
函数有三个参数
- 外部字符串变量-通常是字段
- 内部整数变量-通常为空
- 内部字符串变量 - 通常是标签等
这些都是与每个条目单独关联的变量,而不是计算过程中使用的变量。因此,您需要在此处为每个要处理的字段声明一个变量。
对于外部变量,给出的列表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 的内容驯服野兽