Bibtex 样式 - 未定义的控制序列

Bibtex 样式 - 未定义的控制序列

下面的代码显示了用 KBibTex 生成的 .bib 文件,该文件旨在作为从现在开始编写的一些文章的通用数据库。

@comment{x-kbibtex-personnameformatting=<%l><, %f>}

@book{leh,
author = "Cox, Michael M. and Nelson, David L.",
edition = "5",
publisher = "Omega",
title = "{Lehninger: Principles of Biochemistry}",
year = "2007"
}

@book{lev1,
author = "Levine, Ira N.",
edition = "5",
publisher = "McGraw Hill",
title = "{F{\'i}sicoqu{\'i}mica}",
volume = "1",
year = "2004"
}

@book{lev2,
author = "Levine, Ira N.",
edition = "5",
publisher = "McGraw Hill",
title = "{F{\'i}sicoqu{\'i}mica}",
volume = "2",
year = "2004"
}

@book{reg,
author = "Gonz{\'a}lez, J. R. Regueiro and Lamesa, C. L{\'o}pez and Rodr{\'i}guez, S. Gonz{\'a}lez and Naves, E. Mart{\'i}nez",
booktitle = "{Biolog{\'i}a y patolog{\'i}a del sistema inmune}",
edition = "4",
publisher = "Panamericana",
title = "{Inmunolog{\'i}a}",
year = "2010"
}

我可以很好地将它与一些样式一起使用,例如 plain、vancouver、ieeetr 等。但是,当使用其他一些样式时,特别是基于 chicago 和 harvard 的样式,我会收到错误消息。

例如:当使用 dcu (基于哈佛)时,我得到:

! 未定义控制序列。l.3 \harvarditem {Cox \harvardand\ Nelson}{2007}{leh} ?

由于该序列未写在 .bib 上,所以奇怪的是,它一定是由 bibtex 生成到 .bbl 中的。

知道如何修复此问题吗?我需要编辑 .bbl 吗?如何编辑?

提前感谢大家。

附言:值得注意的是,我正在使用 texworks 和 babel 提供的西班牙语文章模板。

编辑于 2013 年 10 月 9 日

以下是 MWE:

\documentclass[12pt]{article} 
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc} 

\begin{document}

\nocite{*}

\bibliography{Docs/latex/books.bib}
\bibliographystyle{dcu}
\end{document}

其中 books.bib 是我之前发布的代码。

但是,在制作 MWE 时,我发现编译对错误有某种影响。即:在删除文档中无用的部分后,我只能正确运行一次,但之后再也无法运行,尽管我尝试删除所有辅助文件。我比以前更加困惑了。

希望这可以帮助。

答案1

书目dcu样式不能“单独”使用,而必须通过调用包来补充harvard

\documentclass[12pt]{article} 
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc} 
\usepackage{harvard}

\begin{document}

\nocite{*}

\bibliography{Docs/latex/books.bib}
\bibliographystyle{dcu}
\end{document}

您也许愿意看一下natbib还包含“哈佛风格”引文的软件包。

答案2

除了考虑harvard引文管理包(正如 @egreg 在其回答中建议的那样),您可能还想研究使用har2natnatbib包。正如包的名称所暗示的那样,包将包提供的命令(以及包附带的参考书目样式所使用的命令,例如) har2nat“翻译”为包可以理解的命令。harvardharvarddcunatbib

harvard您是否会看到和natbib/选项之间的性能有很大差异har2nat? 不会,除非您还可以使用该hyperref包。hyperref 手册对其与引文管理包的兼容性有以下说明:

软件包hyperref旨在与其他软件包协作,但存在几个可能的冲突源,例如操纵书目机制的 [p] 软件包。harvard支持 Peter Williams 的软件包。但是,推荐使用 Patrick Daly 的natbib软件包,它具有特定的hyperref钩子,可以实现可靠的交互。此软件包涵盖了各种各样的布局和引用样式,所有这些都适用于hyperref

简而言之,尽管该harvard软件包是“受支持的”,但其互操作性和兼容性才是最突出的natbib。正是出于对能够使用的需求hyperref,几年前我就从该harvard软件包切换到了该natbib软件包(har2nat如果我使用的是基于哈佛风格的文件,例如,则切换到该软件包dcu)。

相关内容