我的 bst 文件中的 bbl.and 函数被忽略

我的 bst 文件中的 bbl.and 函数被忽略

我为一篇论文创建了一个自定义的 bautzen.bst 文件,这篇论文必须用德语撰写,采用哈佛风格,但有一些变化。为了创建 bst,我使用了 custom-bib 脚本并添加了一个函数(用于格式化 urldate)。

bst文件包含该函数:

FUNCTION {bbl.and}
{ "und"}

其他功能如

FUNCTION {bbl.volume}
{ "Band" }

正确应用于参考文献列表。但是,当在文本中使用 \cite 时,如果只有两位作者,我会得到“Pott and Pott”而不是“Pott und Pott”。
我还加载了 babel

\usepackage[ngerman]{babel}

文献中对参考文献的定义如下:

\bibliographystyle{bautzen}

由于标题和 bst 文件很大,所以我不在这里粘贴它们,请参考标题贝斯特
我确实需要修复这个问题,但不知道哪里出了问题,所以非常感谢您的帮助!


以下可以用作 mwe,但当然您需要上面链接中的自定义 bst 文件。

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage{lmodern}
\usepackage{natbib}
\begin{document}
Test with \cite{Pott2012} and an end.
\bibliography{bib}
\bibliographystyle{bautzen}
\end{document}

@book{Pott2012,
address = {Berlin, Heidelberg},
author = {Pott, Oliver and Pott, Andre},
doi = {10.1007/978-3-642-29685-7},
isbn = {978-3-642-29684-0},
publisher = {Springer Berlin Heidelberg},
series = {Springer-Lehrbuch},
title = {{Entrepreneurship}},
url = {http://www.springerlink.com/index/10.1007/978-3-642-29685-7},
year = {2012}
}

答案1

似乎在运行该custombib实用程序时,您指示将使用harvard引文管理包而不是包natbib。至少这可以解释 bst 文件中宏、、和(最重要的是)的存在。\harvarditem考虑到所有这些基于 harvard 的宏,我很惊讶您甚至可以编译 mwe。至少,您应该在序言中加载和包,而不仅仅是包。(您可能已经猜到了,包将 harvard 类型的指令转换为等效的 natbib 类型的指令。)\harvardyearleft\harvardyearright\harvardandnatbibhar2natnatbibhar2nat

同样值得注意的是,该功能bbl.and未被使用任何地方在 bst 文件中。您应该分别将"\harvardand{}"" \harvardand{} "(请注意第二种情况下的额外空格)替换为bbl.and或者,如果您愿意,也可以将"und"和替换为" und "

答案2

使用

\providecommand\harvardand{}
\renewcommand\harvardand{ und }

加载后natbib

您没有使用函数bbl.and而是使用\harvardand了宏。

相关内容