我想破解一个基于 的新 BibTeX 样式文件plain.bst
,在其中我可以显示条目类型location
中字段的值inproceedings
。我已经开始如下:
- 我已将其添加
location
到块中定义的字段列表中ENTRY
。 - 在中,我只是在打印的位置之后
FUNCTION{inproceedings}
插入了一行。location output
booktitle
这可行!但是,现在我只想将的值括location
在括号中。我尝试定义一个FUNCTION{format.location}
,但我对 BibTeX 语言的理解不够好,无法做到这一点。对该函数有什么建议吗?我该如何在中调用它FUNCTION{inproceedings}
?
答案1
一个简单的解决方案可能是这样的:
FUNCTION {format.location}
{
location empty$
{}
{"(" location * ")" *}
if$
output
}
该函数的工作原理如下:首先,它检查location
条目 ( location empty$
) 是否已给出。如果测试失败(即 有值location
),则
- 它放到
(
堆栈上, - 它放到
location
堆栈上, *
将堆栈上的最后两个元素连接起来,并将结果放入堆栈。所以在这一步之后,我们有(<location>
- 放入
)
堆栈 *
将堆栈上的最后两个元素连接起来,并将结果放入堆栈。所以在这一步之后,我们有(<location>)
最后一步output
检查当前状态,并包括适当的标点符号。