下面的代码显示了用 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 在其回答中建议的那样),您可能还想研究使用har2nat
和natbib
包。正如包的名称所暗示的那样,包将包提供的命令(以及包附带的参考书目样式所使用的命令,例如) har2nat
“翻译”为包可以理解的命令。harvard
harvard
dcu
natbib
harvard
您是否会看到和natbib
/选项之间的性能有很大差异har2nat
? 不会,除非您还可以使用该hyperref
包。hyperref 手册对其与引文管理包的兼容性有以下说明:
软件包
hyperref
旨在与其他软件包协作,但存在几个可能的冲突源,例如操纵书目机制的 [p] 软件包。harvard
支持 Peter Williams 的软件包。但是,推荐使用 Patrick Daly 的natbib
软件包,它具有特定的hyperref
钩子,可以实现可靠的交互。此软件包涵盖了各种各样的布局和引用样式,所有这些都适用于hyperref
。
简而言之,尽管该harvard
软件包是“受支持的”,但其互操作性和兼容性才是最突出的natbib
。正是出于对能够使用的需求hyperref
,几年前我就从该harvard
软件包切换到了该natbib
软件包(har2nat
如果我使用的是基于哈佛风格的文件,例如,则切换到该软件包dcu
)。