大家,早安。
在我的论文中,我需要按照以下规则引用作者,但使用 authoryear 引用样式不起作用(我使用的是 biblatex):
- 作者等年份 - 如果有两位以上的作者
- 作者和合著者年份 - 如果有两位作者
- 作者等年份 a - 如果有多个出版物属于同一作者
一个例子:
这是我的数据库:
@article{sism,
author = {Mantovani, E. and Tamburelli, C. and Babbucci, D. and Viti, M. and Cenni, N.},
date = {2020},
}
@article{geodin,
author = {Mantovani, E. and Viti, M. and Babbucci, D. and Tamburelli, C. and Cenni, N.},
date = {2020},
}
@article{mant14,
author = {Mantovani, E. and Viti, M. and Babbucci, D. and Tamburelli, C. and Cenni, N. and Baglione, M. and D'Intinosante, V.},
date = {2014},
}
@article{savage70,
author = {Savage, J. C. and Burford, R. O.},
date = {1970},
}
如果我引用\cite{sism}
它表明曼托瓦尼、坦布雷利等人2020代替Mantovani 等人,2020a
如果我引用\cite{geodin}
它表明曼托瓦尼、维蒂、巴布奇、坦布雷利和琴尼 2020代替Mantovani 等人 2020b
如果我引用\cite{mant14}
它表明曼托瓦尼、维蒂、巴布奇、坦布雷利、琴尼、巴廖内和 D'Intinosante 2014代替Mantovani 等人,2014 年
如果我引用\cite{savage70}
它表明萨维奇和伯福德 1970没关系。
我尝试设置maxcitenames=1
,但如果我这样做,\cite{savage70}
它会显示萨维奇等人1970 年代替萨维奇和伯福德 1970。
谢谢您的帮助!
编辑:使用 maxcitename 时前三个长引用没有改变,不知道为什么。
答案1
您需要同时使用maxnames
和minnames
:
我引用手册中的一段话:
maxnames=〈integer〉默认值:3 影响所有名称列表(作者、编辑等)的阈值。如果列表超出此阈值,即,如果列表中包含超过〈integer〉个名称,则会根据 minnames 选项的设置自动截断。maxname 是设置 maxbibnames、maxcitenames 和 maxsortnames 的主选项。请注意,uniquelist 功能可以局部覆盖 maxnames,请参阅 §3.1.2.3 和 §4.11.4 中 uniquelist 选项的文档。
minnames=〈integer〉默认值:1 影响所有名称列表(作者、编辑等)的限制。如果列表包含超过〈maxnames〉个名称,则会自动截断为〈minnames〉个名称。〈minnames〉值必须小于或等于〈maxnames〉。minnames 是设置 minbibnames 和 mincitenames 的主选项。与 maxnames 一样,minnames 的值可以被 uniquelist 覆盖。
引用中的字母可以使用 sortyear 变量生成(另请参阅此问题:Biblatex mincitenames 不尊重作者年份)
以下代码应该会产生您想要的输出:
\documentclass[11pt]{scrartcl}
\begin{filecontents*}{bibliography.bib}
@article{sism,
author = {Mantovani, E. and Tamburelli, C. and Babbucci, D. and Viti, M. and Cenni, N.},
year = {2020},
sortyear={2020-1},
}
@article{geodin,
author = {Mantovani, E. and Viti, M. and Babbucci, D. and Tamburelli, C. and Cenni, N.},
year = {2020},
sortyear={2020-2},
}
@article{mant14,
author = {Mantovani, E. and Viti, M. and Babbucci, D. and Tamburelli, C. and Cenni, N. and Baglione, M. and D'Intinosante, V.},
year = {2014},
}
@article{savage70,
author = {Savage, J. C. and Burford, R. O.},
year = {1970},
}
\end{filecontents*}
\usepackage[citestyle=authoryear-comp,maxnames=2,minnames=1,uniquelist=true,uniquename=true,]{biblatex}
\bibliography{bibliography}
\begin{document}
\cite{sism} \cite{geodin} \cite{mant14} \cite{savage70}
\printbibliography
\end{document}
它看起来像这样:
请注意,使用authoryear-comp
或authoryear
与此设置一起使用会导致引用不明确,因为仅给出了第一作者,而区分两个条目的字母不是参考列表的一部分。我建议设置minnames
为适当的数字以反映这一点。(在您的例子中,这将是2
)