转换 .bst 文件以获取小写字母

转换 .bst 文件以获取小写字母

我有一个相关问题转换 .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$改变堆栈上的文本的大小写并将结果放入堆栈。

相关内容