论文需要用哈佛格式(又名作者年份格式)来格式化引用标注,例如:
我的 *.tex 文件的内容如下:
...
\usepackage{natbib,stfloats}
\begin{document}%
\citet{ananthanarayanan2011scarlett} create more replicas for hot files
to simplify the scheduling decision-making. EC (erasure
coding) to alleviate the low storage efficiency of multi-replicas in
HDFS~\citep{sathiamoorthy2013xoring, subedi2015finger, xia2015tale}. The
benefits of data prefetching have been widely
discussed~\citep{prajapati2014locality,chen2012data}.
\bibliographystyle{agsm}
% \bibliographystyle{abbrvnat}
% \setcitestyle{authoryear,open={(},close={)}}
\bibliography{refs}
\end{document}
最终结果并不如我所愿。问题在于:
对于两位作者,格式不是 (A 和 B,年份),而是 (A & B 年份)
对于三位或更多作者来说,不是 (A et al., year) 而是 ( A et al. year)
标注组应先按字母顺序列出,然后按时间顺序列出,但格式化的结果是(Zaharia et al. 2008, Magalhães et al. 2015),不是按字母顺序排列,并且标注没有用“;”分隔。
示例显示格式化的结果:
然后我转而将参考书目样式设置为abbrvnat
:
\bibliographystyle{abbrvnat}
\setcitestyle{authoryear,open={(},close={)}}
格式化的结果变为:
但是它仍然存在第一个字母顺序问题,并且它引发了另一个问题,即标注不是被“()”包围,而是被“[]”包围。
有人能帮我解决这个问题吗?这是 cite 命令的问题还是 bst 的配置问题?谁能给出一个简短的 cite 和配置示例,以便按要求格式化论文。谢谢!
答案1
对于参考书目样式的方法abbrvnat
,请尝试发出指令
\setcitestyle{authoryear,round,semicolon}
加载后natbib
。因此,省略该open={(},close={)}
部分。顺便说一句,每当对的参数进行更改时\setcitestyle
,都应该完全重新编译文档——LaTeX、BibTeX 和 LaTeX 两次——以传播所有更改。
据我所知,natbib
和引文管理包都按照输入(和)harvard
中提供的顺序对格式化的引文调用进行排序。因此,恐怕您需要按照所需的顺序列出参数。\citep
\citet
\citep