考虑一下这个 MWE
\documentclass{article}
\begin{filecontents}[force]{\jobname.bib}
@book{Lazarenko2013,
author = {Lazarenko, Igor and Mircheva, Elina and Encheva, Radostina and Stoyanova, Daniela and Sharankov, Nikolay},
title = {The Temple of the Pontic Mother of Gods in Dionysopolis},
date = {2013},
location = {Varna},
}
@incollection{Lazarenko2010,
author = {Lazarenko, Igor and Mircheva, Elina and Encheva, Radostina and Sharankov, Nikolaj},
title = {The Temple of the Pontic Mother of Gods in Dionysopolis},
date = {2010},
booktitle = {Ancient Sacral Monuments in the Black Sea},
editor = {Petropoulos, Elias K. and Maslennikov, Alexander A.},
location = {Thessaloniki},
pages = {13--62},
}
\end{filecontents}
\usepackage[backend=biber,
citestyle = ext-authoryear
,bibstyle = ext-authortitle
,isbn = false
,introcite = label
,dashed = false
,articlein = false
,sorting = nyt
% ,maxnames = 2
% ,minnames = 1
% ,uniquename=full
,maxbibnames = 999
]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
输出为
我想要一个简短但独特的标签名称 - 在这种情况下它应该是Lazarenko 2010
和Lazarenko 2013
。
答案1
根据“简短但独特”对您来说的具体含义,您的里程可能会有所不同。
你一定会想看看选项uniquelist
。有了它,uniquelist=false,
您可以停止biblatex
尝试使作者列表唯一,这样(min|max)citenames
我们就可以得到“Lazarenko et al. 2010”和“Lazarenko et al. 2013”的适当值。如果两部作品来自同一年,该uniquelist
选项还有一个选项minyear
可以再次扩展列表。有关更多信息,uniquelist
请参见第 68 页和 §4.11.4名称歧义消除的文档biblatex
。
许多设置的人uniquelist=false,
也想设置uniquename=false,
(该uniquename
选项有更多可能的值,在文档中通过示例进行了解释(!))。
如果您还想去掉“et al.” (我不推荐这样做),则需要选项来nohashothers=true,
确保extradate
在必要时生成值。您可能还想设置nosortothers=true,
以避免违反直觉的排序结果。设置这些选项后,您可以开始抑制“et al.”。最好通过重新定义格式来完成此操作labeldate
(原始定义可以在参见biblatex.def
(v3.14)第 933-960 页)。 也可以看看https://github.com/plk/biblatex/issues/861。
\documentclass{article}
\usepackage[backend=biber,
citestyle = ext-authoryear
,bibstyle = ext-authortitle
,isbn = false
,introcite = label
,dashed = false
,articlein = false
,sorting = nyt
,maxcitenames = 2
,mincitenames = 1
,uniquelist = false
,uniquename = false
,nohashothers = true
,nosortothers = true
,maxbibnames = 999
]{biblatex}
\DeclareNameFormat{labelname}{%
\ifcase\value{uniquename}%
\usebibmacro{name:family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}%
\or
\ifuseprefix
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffixi}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefixi}
{\namepartsuffixi}}%
\or
\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}%
\fi}
\begin{filecontents}{\jobname.bib}
@book{Lazarenko2013,
author = {Lazarenko, Igor and Mircheva, Elina
and Encheva, Radostina and Stoyanova, Daniela
and Sharankov, Nikolay},
title = {The Temple of the Pontic Mother of Gods in Dionysopolis},
date = {2013},
location = {Varna},
}
@incollection{Lazarenko2010,
author = {Lazarenko, Igor and Mircheva, Elina
and Encheva, Radostina and Sharankov, Nikolaj},
title = {The Temple of the Pontic Mother of Gods in Dionysopolis},
date = {2010},
booktitle = {Ancient Sacral Monuments in the Black Sea},
editor = {Petropoulos, Elias K. and Maslennikov, Alexander A.},
location = {Thessaloniki},
pages = {13--62},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}