我在使用 natbib 时遇到了一个奇怪的问题。此代码
@misc{CornellUniversity.,
author = {{Cornell University}},
title = {Benedict R. O'G. Anderson},
url = {\url{http://www.cornell.edu/search/index.cfm?tab=people&netid=bra2&q=benedict%20anderson}},
urldate = {2012-03-18}
}
创建以下输出:
Cornell University. Benedict R. O’G. Anderson. URL http://www.cornell.edu/search/index.cfm?tab=people&netid=bra2&q=benedict%20anderson.
在哪里:
1)文字“URL”位于实际 URL 前面
2)url 未格式化为超链接(包含 url 包)
3)“urldate”属性根本没有显示
我该如何最好地解决这些问题?
答案1
该url
字段应该只包含网址,周围没有文本格式。因此,在这种情况下,您应该删除命令\url
。此外,标准natbib
样式不提供urldate
字段。您可以将信息放在note
字段中:
从
\documentclass{article}
\usepackage{url}
\usepackage[numbers]{natbib}
\begin{document}
Citing \cite{CornellUniversity.}
\bibliographystyle{plainnat}
\bibliography{refs}
\end{document}
包含refs.bib
@misc{CornellUniversity.,
author = {{Cornell University}},
title = {{Benedict R. O'G. Anderson}},
url = {http://www.cornell.edu/search/index.cfm?tab=people&netid=bra2&q=benedict%20anderson},
note = {Last visited 2012-03-18}
}
正如@Mico 指出的那样,标题字段周围的额外括号可以防止其大小写被改变bibtex
。
答案2
如果您的代码中有\bibliographystyle{plainnat}
“URL”文本,则该文本来自样式。
在该plainnat.bst
文件中你可以找到以下代码:
FUNCTION {format.url}
{ url empty$
{ "" }
{ new.block "URL \url{" url * "}" * }
if$
}
该部分"URL \url{" url * "}" *
负责解决您的问题。您可以删除开头的 URL,或以任何您喜欢的方式更改它。
对于 urldate (稍微复杂一些):
例如,在同一个plainnat.bst
文件中,在上述代码下添加以下行:
FUNCTION {format.urldate}
{ urldate empty$
{ "" }
{new.block "[Accessed on: " urldate * "]" * }
if$
}
保存它并在同一个文件中搜索“url”。在一个地方你会发现:
ENTRY
{ address
author
........%some more functions
type
url
volume
year
}
添加urldate
在 下url
。保存。然后搜索format.url output
并添加在每一个 下format.urldate output
。
例如misc
:
FUNCTION {misc}
{ output.bibitem
format.authors output
author format.key output
title howpublished new.block.checkb
format.title output
howpublished new.block.checka
howpublished output
format.date output
format.issn output
format.url output
note output
format.urldate output %places the "urldate" after the "note"
new.block
fin.entry
empty.misc.check
}
因此,不同函数(例如 misc)中不同输出(例如 format.urldate 输出)的顺序也表示它们在参考文献中的插入顺序。
就这些 :)