我在用chicago.sty
引用论文。有一次,我必须引用两篇第一作者相同、年份相同的论文。我不想使用显示所有作者的引用选项。相反,我想要“Smith et al. (2009a)”和“Smith et al. (2009b)”之类的内容。
有什么办法可以做到这一点(无需更改为 natbib)?
以下是一个例子:
\documentclass{report}
\usepackage{chicago}
\usepackage{filecontents}
\usepackage[colorlinks=true,citecolor=red]{hyperref}
\begin{document}
\begin{tabular}{llll}
shortcite & \shortcite{Smith2012}
citeyear & \citeyear{Smith2012} \\
\end{tabular}
\begin{tabular}{llll}
shortcite & \shortcite{Smith2012b}
citeyear & \citeyear{Smith2012b}
\end{tabular}
\bibliographystyle{chicago}
\bibliography{references}
\end{document}
答案1
尽管你明确要求提供该chicago
软件包的 bibtex 解决方案,但我还是忍不住要向你推荐biblatex
,因为芝加哥格式手册biblatex 样式文件由biblatex-chicago
包裹。
要更改触发 biblatex 中“et al.”字符串的作者数量,您可以使用选项maxnames
和minnames
。将它们设置为1
可满足您的要求(但值得注意的是,根据biblatex-chicago
手册,作者不建议这样做芝加哥格式手册)。这些选项可以传递给biblatex-chicago
包。
您在评论中提到无法\citeyear
工作biblatex
;这可能是因为\citeyear
只打印年份字段,而没有附加额外的标签来消除歧义。但这可以通过命令实现\citeyear*
。
注意::请注意biblatex-chicago
(v. 0.9.9.a)要求biber
其作者年份格式,如手册(§2):
对于使用作者日期样式或处理 Unicode 中的 .bib 文件的用户来说,[Biber] 是必需的。
这意味着你应该bibtex
用一个来代替这个 pass biber
。使用[pdf]latex
→编译它biber
→ [pdf]latex
→[pdf]latex
以下是 MWE:
\documentclass{article}
%\usepackage{chicago}
\usepackage[authordate,backend=biber,maxnames=1,minnames=1]{biblatex-chicago}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Smith2012,
author = {A. Smith and B. Schmidt},
title = {A title},
journal = {A Journal},
year = {2012},
}
@article{Smith2012b,
author = {A. Smith and B. Schmidt},
title = {Another title},
journal = {Another Journal},
year = {2012},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\usepackage[colorlinks=true,citecolor=red]{hyperref}
\begin{document}
\verb!autocite! is the main citation command: it knows if it is in text or in notes, and switches between \verb!\footcite! and \verb!\parencite! accordingly. \autocite[1]{Smith2012}, \autocite[1]{Smith2012b}
\verb!\footcite! is for citations on footnotes\footcite[1]{Smith2012}, \footcite[1]{Smith2012b}
\verb!\parencite! is for citations in parentheses \parencite[1]{Smith2012}, \parencite[1]{Smith2012b}
\verb!\textcite! is for inline citations, like \textcite[1]{Smith2012}, \textcite[1]{Smith2012b}
\verb!\citeyear! cites only the \verb!year! field, not \verb!year+label!: \citeyear[1]{Smith2012b}. To cite the whole label, you should try the starred variant \verb!\citeyear*!: \citeyear*[1]{Smith2012}, \citeyear*{Smith2012b}
You can also have multiple citations with some of these commands: \autocites{Smith2012}{Smith2012b}
%\bibliographystyle{chicago}
%\bibliography{\jobname}
\printbibliography
\end{document}
输出结果如下: