我为一篇论文创建了一个自定义的 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
\harvardand
natbib
har2nat
natbib
har2nat
同样值得注意的是,该功能bbl.and
未被使用任何地方在 bst 文件中。您应该分别将"\harvardand{}"
和" \harvardand{} "
(请注意第二种情况下的额外空格)替换为bbl.and
或者,如果您愿意,也可以将"und"
和替换为" und "
。
答案2
使用
\providecommand\harvardand{}
\renewcommand\harvardand{ und }
加载后natbib
您没有使用函数bbl.and
而是使用\harvardand
了宏。