Похожий наэта почта, я хотел бы ограничить список авторов в цитате одним + et al. (даже если группы авторов могут быть разными). Предложенное решение ( uniquelist=false
) по сути также работает, но есть проблема при использовании его в сочетании с citestyle=authoryear-comp
. Если в библиографии один и тот же (первый) автор появляется один раз с написанным именем, а один раз только с инициалами, они не рассматриваются как один и тот же автор. Поэтому в списке цитат, даже если citestyle=authoryear-comp
, цитаты будут разделены. Вот пример:
\documentclass{article}
\usepackage[
citestyle=authoryear-comp,
maxcitenames=1,
giveninits=true,
uniquename=init,
uniquelist=false,
ibidtracker=context,
%
bibstyle=authoryear,
dashed=false, % dashed: substitute rep. author with ---
date=year,
sorting=nyt,
minbibnames=3,
hyperref=true,
backref=true,
citecounter=true,
citetracker=true,
natbib=true, % natbib compatibility mode (\citep and \citet still work)
backend=biber, % Compile the bibliography with biber
]{biblatex}
\usepackage{filecontents}
\usepackage{hyperref}
\begin{filecontents}{\jobname.bib}
@misc{ABC01,
author = {Author, A. and Buthor, B. and C},
year = {2001},
title = {Alpha},
}
@misc{ABC02,
author = {Author, A. and Buthor, B. and Cuthor, C., and Duthor, D.},
year = {2001},
title = {Beta},
}
@misc{ADE01,
author = {Author, Andrew and Duthor, D. and E},
year = {2001},
title = {And now for something completely different},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Some text \citep{ABC01, ABC02, ADE01}.
Some text \autocite{ADE01}.
\printbibliography
\end{document}
Я попытался исправить это поведение, следуяэта почтаи настройка giveninits=true
и uniquename=init
, но это не решило проблему. Как мне получить biblatex
лечениеАвтор, А.иАвтор, Эндрюкак тот же автор?
решение1
Начиная с biblatex
версии 3.20 вы можете указать biblatex
использовать для хеширования только инициалы, чего в данном случае будет достаточно, или вы можете локально переопределить хеш имени с помощью уникального «идентификатора имени».
Если вы хотите, чтобы для хеширования использовались только инициалы, используйте
\documentclass{article}
\usepackage[
backend=biber,
style=authoryear-comp,
maxcitenames=1,
giveninits=true,
uniquename=init,
uniquelist=false,
]{biblatex}
\usepackage{hyperref}
\DeclareNamehashTemplate{
\namepart[hashscope=full]{family}
\namepart[hashscope=init]{given}
\namepart[hashscope=full]{prefix}
\namepart[hashscope=full]{suffix}
}
\begin{filecontents}{\jobname.bib}
@misc{ABC01,
author = {Author, A. and Buthor, B. and C},
year = {2001},
title = {Alpha},
}
@misc{ABC02,
author = {Author, A. and Buthor, B. and Cuthor, C., and Duthor, D.},
year = {2001},
title = {Beta},
}
@misc{ADE01,
author = {Author, Andrew and Duthor, D. and E},
year = {2001},
title = {And now for something completely different},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Some text \autocite{ABC01, ABC02, ADE01}.
Some text \autocite{ADE01}.
\printbibliography
\end{document}
Если вы хотите переопределить хеширование, используйте
\documentclass{article}
\usepackage[
backend=biber,
style=authoryear-comp,
maxcitenames=1,
giveninits=true,
uniquename=init,
uniquelist=false,
]{biblatex}
\usepackage{hyperref}
\begin{filecontents}{\jobname.bib}
@misc{ABC01,
author = {id=A1, family=Author, given=A. and Buthor, B. and C},
year = {2001},
title = {Alpha},
}
@misc{ABC02,
author = {id=A1, family=Author, given=A. and Buthor, B. and Cuthor, C. and Duthor, D.},
year = {2001},
title = {Beta},
}
@misc{ADE01,
author = {id=A1, family=Author, given=Andrew and Duthor, D. and E},
year = {2001},
title = {And now for something completely different},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Some text \autocite{ABC01, ABC02, ADE01}.
Some text \autocite{ADE01}.
\printbibliography
\end{document}
Старый ответ
Вам понадобится способ убедить biblatex
, что Author, A.
и Author, Andrew
являются одним и тем же человеком. Обходной путь — задать shortauthor
равно Author, A.
для тех записей, где author
есть Author, Andrew
.
\documentclass{article}
\usepackage[
backend=biber,
style=authoryear-comp,
maxcitenames=1,
minbibnames=3,
giveninits=true,
uniquename=init,
uniquelist=false,
dashed=false
date=year,
backref=true,
citecounter=true,
]{biblatex}
\usepackage{hyperref}
\begin{filecontents}{\jobname.bib}
@misc{ABC01,
author = {Author, A. and Buthor, B. and C},
year = {2001},
title = {Alpha},
}
@misc{ABC02,
author = {Author, A. and Buthor, B. and Cuthor, C., and Duthor, D.},
year = {2001},
title = {Beta},
}
@misc{ADE01,
author = {Author, Andrew and Duthor, D. and E},
shortauthor = {Author, A. and Duthor, D. and E},
year = {2001},
title = {And now for something completely different},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Some text \parencite{ABC01, ABC02, ADE01}.
Some text \autocite{ADE01}.
\printbibliography
\end{document}