我是 LaTeX 新手,需要更改文章的样式。tex 文件中的设置如下:
\documentclass[12pt,a4paper]{article}
\usepackage{natbib}
\usepackage{hyperref}
\numberwithin{equation}{section}
\usepackage{natbib}
\bibliographystyle{dcu}
\begin{document}
\bibliography{final}
\end{document}
bib文件中的一个例子:
@article{Clement1999,
author = {Clement, A. and Cane, M. A. and Seager, R},
title = {{Orbital controls on the Tropical climate}},
journal = {Paleoceanography},
year = {1999},
volume = {14},
pages = {441--456}
}
它显示了文本中的引用样式和参考文献列表:
(西蒙斯 1980)
Simmons, NM (1980). 行为。沙漠大角羊,编辑。G. Monson 和 L. Summer。亚利桑那州图森:亚利桑那大学出版社:124-44。
我需要将样式更改为:
(西蒙斯,1980)
Simmons, NM (1980). 行为。沙漠大角羊,编辑。G. Monson 和 L. Summer。亚利桑那州图森:亚利桑那大学出版社,第 124-44 页。
我尝试过以下方法来改变风格:
\bibliographystyle{dcu}
已更改\bibliographystyle{agsm}
为重新运行 tex 文件后,pdf 文件中的样式保持不变。重新运行 bib 文件显示以下消息:
! 缺少插入 $。
$
\mskip
\,->\m跳过
\thinmuskip
佛罗里达州 l.440 ... 当前运输时间为 27{\$}\,
^\circ{\$}N}},
\usepackage{natbib}
更改为\usepackage[comma]{natbib}
。控制台输出显示消息:[comma] clash with natbib
。
\cite{key}
更改为\citep{key}. After running the tex file, the style still remains the same (author year).
我应该怎么做才能在引用中显示名称和年份之间的逗号,并在参考文献中使用“pp.”代替冒号?
提前谢谢你的帮助。
答案1
我应该怎么做才能在引用中显示名称和年份之间的逗号?
答:natbib
使用选项comma
-- \usepackage[comma]{natbib}
--加载该包,然后使用命令\citep
引用相关部分。
第二个问题,即使用哪种书目样式才能获得您想要的格式,这个问题相当难回答。如下所示,没有任何属于的样式文件哈佛引文管理包(其中两个是dcu
和agsm
)可以准确地提供您想要的内容。按样式文件的字母顺序列出(并跳过有些专业的nederlands
样式),包的样式文件生成的格式如下:
艾格森
亚太经合组织
直流电压
杰姆瑞
物理学报
克鲁韦尔
我想说,apsr
参考书目样式最接近于提供您想要的格式 - 尽管您可能必须手动输入出版商名称和字符串之间缺少的逗号pp
......
有趣的是,所有这些样式都恰好在字段内容前面加上字符串“pp. ”作为前缀pages
— — 至少对于类型的条目而言是这样@incollection
。
当然,还有很多很多有多种书目样式文件可以生成作者年份样式的引文。您当然不应该觉得只能从“harvard”软件包提供的 6 种样式文件中进行选择。
附录回应 OP 的一些后续评论:
如果指令
\usepackage[comma]{natbib}
给出与您报告的类似错误消息,则可能是因为包已被加载(可能是由您使用的文档类加载)。事实上,您的 MWE 加载了natbib
包两次。如果将该选项添加comma
到第二\usepackage{natbib}
条指令,您肯定会收到所报告的错误消息。如果你不能摆脱第一个不兼容的
\usepackage{natbib}
语句,则执行该指令\setcitestyle{aysep={,}}
natbib
应该可以工作。有关宏的更多信息,请参阅软件包用户指南第 12 页\setcitestyle
。由于您的 MWE 没有
\cite
或\nocite
命令,因此该指令\bibliography{final}
不会产生任何输出。您的 MWE 还缺少指令\usepackage{amsmath}
;没有它,前导指令\numberwithin{equation}{section}
将导致错误。另外,如果您想使用hyperref
,您应该加载hyperref
后natbib
;并且,如果您希望将引文标注制作成指向相应书目条目的超链接,看起来你在佛罗里达潮流中的句子有拼写错误。我会尝试
Florida Current transport at 27\,${}^{\circ}$N
无论如何,这件事看起来与引用和参考书目生成没有直接关系,对吧?在我看来,这看起来像是一个“普通的” LaTeX 语法错误……
经过完全修改/更正的 MWE 版本会产生以下输出。(请确保在文件上运行 LaTeX、BibTeX 和 LaTeX 两次。)请注意引文标注中作者字符串和年份字符串之间的逗号。
\documentclass[12pt,a4paper]{article}
\usepackage{amsmath} % this was missing in your code
\numberwithin{equation}{section}
\usepackage{natbib} % no point in loading a package more than once...
\setcitestyle{aysep={,}}
\bibliographystyle{dcu}
\usepackage[colorlinks=true,citecolor=blue]% %% added these two options
{hyperref} % hyperref should be loaded _after_ natbib
\usepackage{filecontents}
\begin{filecontents*}{final.bib}
@article{Clement1999,
author = {Clement, A. and Cane, M. A. and Seager, R.},
title = {{Orbital controls on the Tropical climate}},
journal = {Paleoceanography},
year = {1999},
volume = {14},
pages = {441--456}
}
\end{filecontents*}
\begin{document}
\citep{Clement1999} %% need at least one \cite, \citet, or \citep command...
\bibliography{final}
\end{document}
这是用于创建上面显示的第一组屏幕截图的 MWE。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[comma]{natbib}
\usepackage{har2nat}
\bibliographystyle{agsm}
%% or: apsr, dcu, jmr, jphysicsB, kluwer
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@incollection{simmons:1980,
author = "N. M. Simmons",
title = "Behaviour",
pages = "124-44",
year = 1980,
booktitle = "The Desert Bighorn",
editor = "Gale Monson and Lowell Summer",
publisher = "University of Arizona Press",
address = "Tucson, AZ",
}
\end{filecontents*}
\begin{document}\pagestyle{empty}
\citep{simmons:1980}
\bibliography{\jobname}
\end{document}