我正在使用该natbib
软件包来编写参考书目,最初使用的是这种plainnat
样式,但后来被告知只能使用哈佛参考文献。因此,我尝试将参考书目样式更改为我在在线参考表上找到的样式 - 例如agsm.bst
,但我发现只有那些可行且按所需顺序排列参考书目参考文献的样式(“作者;年份;标题;期刊;卷;页码”)会将卷号加粗,如下所示:
JR Krebs,1980 年,最佳觅食、捕食风险和领土防御。阿尔代亚,68:83-90
它看起来很奇怪,我想删除它,但我不知道如何做——我需要更改代码吗,或者是否有我应该使用的样式包?
这是我设置的代码:
\documentclass[12pt]{article}
\usepackage{fontspec}
\setmainfont{Arial}
\usepackage{natbib}
\usepackage{graphicx}
\usepackage{listings}
\lstset{frame=single,breaklines=true}
\setcounter{secnumdepth}{4}
\sloppy
\usepackage{geometry}
\geometry{margin=1in}
\title{PAPER TITLE}
\date{}
\begin{document}
TEXT HERE
\bibliographystyle{plainnat}
\bibliography{bibliography.bib}
并且参考书目条目输入如下:
@article{krebs1980optimal,
title={Optimal foraging, predation risk and territory defence},
author={Krebs, JR},
journal={Ardea},
volume={68},
pages={83--90},
year={1980},
publisher={BioOne}
}
答案1
它确实发生了变化,因为这只是特定样式在 BibTeX 层中的作用。如果你查看派生的,你很容易就能看到发生了什么.bbl
:
\begin{thebibliography}{xx} \harvarditem{Krebs}{1980}{krebs1980optimal} Krebs, J. \harvardyearleft 1980\harvardyearright , `Optimal foraging, predation risk and territory defence', {\em Ardea} {\bf 68},~83--90. \end{thebibliography}
'68' 位于一个组中,在该组中\bf
发出了(过时的)字体命令,该命令将组内容格式化为粗体。您可以尝试
% arara: xelatex
% arara: bibtex
% arara: xelatex
% arara: xelatex
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{krebs1980optimal,
title={Optimal foraging, predation risk and territory defence},
author={Krebs, JR},
journal={Ardea},
volume={68},
pages={83--90},
year={1980},
publisher={BioOne}
}
\end{filecontents*}
\documentclass[12pt]{article}
\usepackage{fontspec}
\setmainfont{Arial}
\usepackage{natbib}
\let\oldthebibliography\thebibliography
\renewcommand\thebibliography{\let\bf\relax\oldthebibliography}
\begin{document}
\nocite{*}
\bibliographystyle{agsm}
\bibliography{\jobname}
\end{document}
值得注意的是,这将\bf
禁用所有的参考书目。
答案2
您可以非常轻松地修改该bst
文件。
agsm.bst
在 TeX 系统中查找文件将其复制到与文档相同的文件夹中
.tex
,名称为agsm-nobf.bst
使用任意文本编辑器打开新文件
在其中找到唯一包含字符串的行
\bf
编辑,使其变成
FUNCTION {embolden} { duplicate$ empty$ { pop$ "" } % { "{\bf " swap$ * "}" * } { "{" swap$ * "}" * } if$ }
(我保留了原来的,但注释掉了,以便将来记忆)
现在你的文件可以变成
\begin{filecontents*}{\jobname.bib}
@article{krebs1980optimal,
title={Optimal foraging, predation risk and territory defence},
author={Krebs, JR},
journal={Ardea},
volume={68},
pages={83--90},
year={1980},
publisher={BioOne}
}
\end{filecontents*}
\documentclass[12pt]{article}
\usepackage{fontspec}
\setmainfont{Arial}
\usepackage{natbib}
\usepackage{graphicx}
\usepackage{listings}
\lstset{frame=single,breaklines=true}
\setcounter{secnumdepth}{4}
\usepackage{geometry}
\geometry{margin=1in}
\title{PAPER TITLE}
\date{}
\begin{document}
TEXT HERE \nocite{*}
\bibliographystyle{agsm-nobf}
\bibliography{\jobname}
\end{document}
需要注意的几点。我删除了\sloppy
,你也应该这样做。filecontents*
这里的环境只是为了方便,为了让示例自成一体;你将使用你的bibliography.bib
文件,但调用应该是
\bibliography{bibliography}
没有 .bib
。
编译、运行 BibTeX 并再次编译。
答案3
你写了:
我正在使用该
natbib
软件包来编写参考书目,最初使用的是这种plainnat
样式,但后来被告知只能使用哈佛参考文献。因此,我尝试将参考书目样式更改为我在在线参考资料表上找到的样式 - 例如agsm.bst
,...
这是不是如果您需要做的只是将引文标注的样式从数字样式更改为“哈佛”样式(也称为作者年份样式),则无需更改书目样式。虽然确实是该软件包agsm
提供的样式文件之一harvard
,但您不必切换到agsm
(或该软件包提供的其他六种书目样式之一harvard
)即可生成作者年份样式的引文标注。
有很多书目样式能够生成作者年份样式的引文标注。事实上,如果您对书目样式生成的格式感到满意,您只需在加载时plainnat
说明该选项即可。(默认情况下,将使用方括号;如果您更喜欢圆括号,请同时说明该选项。)用于生成“文本”引文标注和生成“括号”引文标注。authoryear
natbib
round
\citet
\citep
当然,如果你更喜欢样式生成的格式agsm
,请务必切换到agsm
样式。但请注意,它不是必要的如果您需要做的只是更改引用标注的样式,则可以这样做。
\RequirePackage{filecontents}
\begin{filecontents}{bibliography.bib}
@article{krebs1980optimal,
title={Optimal foraging, predation risk and territory defence},
author ={Krebs, J. R.},
journal={Ardea},
volume={68},
pages={83--90},
year={1980},
publisher={BioOne}
}
\end{filecontents}
\documentclass[12pt]{article}
\usepackage{fontspec}
\setmainfont{Arial}
\usepackage[authoryear,round]{natbib}
\bibliographystyle{plainnat}
\usepackage{geometry}
\geometry{margin=1in}
\begin{document}
\citet{krebs1980optimal}; \citep{krebs1980optimal}
\bibliography{bibliography}
\end{document}