Старый ответ

Старый ответ

Похожий наэта почта, я хотел бы ограничить список авторов в цитате одним + 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}

Некоторый текст (Автор и др. 2001a,b,c). Некоторый текст (Автор и др. 2001c).

Связанный контент