我有一个相关问题转换 .bib 文件以获取大写字母。
我有一个 bst,我想破解它以获得相反的效果,即摆脱大写的文章标题,例如
“这是一篇关于经济学的论文”
代替
“这是一篇经济学论文”
即使 bib 文件中的条目是后者。
我在 bst 文件中找到了它
FUNCTION {format.title}
{ title
"title" bibinfo.check
duplicate$ empty$ 'skip$
{
"\enquote{" swap$ *
"}, " *
}
if$
}
我尝试了几个地方进行插入change.case$
(说实话,我不太懂这种语言,所以全都是反复试验),但都导致参考书目中缺少标题。
这是可行的方法吗,还是我必须在其他地方寻找才能获得所需的效果?
克里斯托弗
答案1
您可以使用以下命令更改文件中的函数.bst
(并记得重命名样式)
FUNCTION {format.title}
{ title "t" change.case$
"title" bibinfo.check
duplicate$ empty$ 'skip$
{
"\enquote{" swap$ *
"}, " *
}
if$
}
但是,您必须记住,它不会更改文件中 {} 内的文本.bib
。
文件中的指令.bst
以逆波兰表示法编写。该指令change.case$
有两个参数:第一个是文本(在当前堆栈上),第二个是"u"
更改为大写、"t"
更改为小写(除第一个字符和 {} 中的字符外)以及"l"
更改为小写。
因此指令
title "t" change.case$
意思是:放入title
堆栈,然后"t" change.case$
改变堆栈上的文本的大小写并将结果放入堆栈。