我希望我的引用风格是哈佛风格。
我正在使用以下内容:
\documentclass[conference]{IEEEtran}
\usepackage[comma]{natbib}
\usepackage{url}
\begin{document}
foo \citep{vitz_history_2016}
\bibliographystyle{IEEEtran}
\bibliography{references}
\end{document}
文件中示例的引用.bib
:
@online{vitz_history_2016,
year = {2016},
title = {History of the Periodic Table},
url = {https://chem.libretexts.org/Bookshelves/Ancillary_Materials/Exemplars_and_Case_Studies/Exemplars/Culture/History_of_the_Periodic_Table},
titleaddon = {Chemistry {LibreTexts}},
author = {Vitz, Ed and Moore, John and Shorb, Justin and Prat-Resina, Xavier and Wendorff, Tim and Hahn, Adam},
urldate = {2019-11-25},
date = {2016-05-26},
langid = {english},
file = {fname}
}
我通常使用\cite{author}
和创建文档\bibliographystyle{IEEEtran}
,因此通过包含\usepackage{url}
URL 可以正确显示:
我希望出现与第二个例子相同的参考文献,但使用与第一个例子相同的哈佛风格引用。
任何帮助将非常感激!
答案1
似乎存在几个问题。
由于您正在使用
IEEEtran
文档类,因此使用IEEEtran
参考书目样式以及包应该专门与和命令natbib
结合使用;两者都将生成数字样式的引用标注。与参考书目样式实际上不可用。\cite
\citep
\citet
IEEEtran
如果您希望将
natbib
包与IEEEtran
文档类一起使用,则可能应该使用IEEEtranN
书目样式。(N
inIEEEtranN
代表natbib
...)使用此设置,\cite
和\citep
仍将产生数字样式的标注,但\citet
现在也可以“工作”,因为它会创建作者-数字样式引用标注。尽管你尽力尝试,但你不会得到这种设置来产生作者-年风格,又名“哈佛风格”和“agsm 风格”,引用标注。话虽如此,我会回应@moewe 的评论:大多数(所有?!)需要使用
IEEEtran
文档类的期刊都采用数字样式引用标注;他们可能会拒绝采用作者编号或作者年份样式引用标注的提交。万一这不是打字错误:正确的语法是
\citep{<some_key>}
,而不是\citep(<some_key>)
。
\documentclass[conference]{IEEEtran}
\begin{filecontents}[overwrite]{mybib.bib}
@online{vitz_history_2016,
year = {2016},
title = {History of the Periodic Table},
url = {https://chem.libretexts.org/Bookshelves/Ancillary_Materials/Exemplars_and_Case_Studies/Exemplars/Culture/History_of_the_Periodic_Table},
titleaddon = {Chemistry {LibreTexts}},
author = {Vitz, Ed and Moore, John and Shorb, Justin and Prat-Resina, Xavier and Wendorff, Tim and Hahn, Adam},
urldate = {2019-11-25},
date = {2016-05-26},
langid = {english},
file = {fname}
}
\end{filecontents}
\usepackage[numbers,comma]{natbib}
\bibliographystyle{IEEEtranN} % not 'IEEEtran'
\usepackage{xurl}
\usepackage[colorlinks,allcolors=blue]{hyperref} % just for this example
\begin{document}
foo \citep{vitz_history_2016} % not "\citep(author)"
bar \citet{vitz_history_2016}
\bibliography{mybib}
\end{document}
附录\bibliographystyle{IEEEtranN}
:如果我用替换,我实际上可以重现第一个屏幕截图中显示的糟糕的非换行 URL 字符串,其中下标代替了下划线\bibliographystyle{agsm}
。这种agsm
风格相当古老,并使用了一个名为 的宏\harvardurl
,它确实不是采取与排版 URL 字符串时相同的预防措施\url
;这些预防措施适用于可能出现在 URL 字符串中的 TeX 特殊字符,例如_
和%
。(非常感谢 @moewe 向我指出这一点!)
如果你必须使用agsm
书目格式,那么有两种方法可以进行:首先,你可以提供说明
\renewcommand\harvardurl{\textbf{URL:} \url}
之后\bibliographystyle{agsm}
。其次,你可以改变
url = {https://chem.libretexts.org/Bookshelves/Ancillary_Materials/Exemplars_and_Case_Studies/Exemplars/Culture/History_of_the_Periodic_Table},
到
url = {\url{https://chem.libretexts.org/Bookshelves/Ancillary_Materials/Exemplars_and_Case_Studies/Exemplars/Culture/History_of_the_Periodic_Table}},
当然,这两种方法都假设您已经加载了一个合适的包——url
并且xurl
想到了——它定义了一个“真正的”\url
宏。
顺便说一句,如果你想使用agsm
书目风格,你应该加载har2nat
包,而不是natbib
直接加载包。为什么?agsm
书目风格是哈佛引文管理包,附带一些专门的命令。该har2nat
包 (a) 加载natbib
包,(b) 将 - 特定的宏“翻译”harvard
为natbib
包识别的宏。如果您希望hyperref
在文档中使用该包,这将特别有用:hyperref
与包完全兼容natbib
,但与包的兼容性较差harvard
。
\documentclass[conference]{IEEEtran}
\begin{filecontents}[overwrite]{mybib.bib}
@online{vitz_history_2016,
year = {2016},
title = {History of the Periodic Table},
url = {\url{https://chem.libretexts.org/Bookshelves/Ancillary_Materials/Exemplars_and_Case_Studies/Exemplars/Culture/History_of_the_Periodic_Table}},
titleaddon = {Chemistry {LibreTexts}},
author = {Vitz, Ed and Moore, John and Shorb, Justin and Prat-Resina, Xavier and Wendorff, Tim and Hahn, Adam},
urldate = {2019-11-25},
date = {2016-05-26},
langid = {english},
file = {fname}
}
\end{filecontents}
\usepackage{har2nat} % not 'natbib' directly
\bibliographystyle{agsm}
\usepackage{xurl}
\usepackage[colorlinks,allcolors=blue]{hyperref}
\begin{document}
foo \citep{vitz_history_2016} % not "\citep(author)"
bar \citet{vitz_history_2016}
\bibliography{mybib}
\end{document}