В Biblatex отсутствуют инициалы с неуникальными именами

В Biblatex отсутствуют инициалы с неуникальными именами

Я цитирую разных авторов с одинаковой фамилией, biblatexи обычно он добавляет инициалы, чтобы различать их, но в случае двух авторов с одинаковым именем в одной цитате он добавляет только инициалы первого автора. Как мне добавить инициалы и для второго автора?

bib-файл:

@Book{MuthenMuthen19982017a,
  title     = {{Mplus User's Guide}},
  publisher = {Muth{\'e}n \& Muth{\'e}n},
  year      = {1998--2017},
  author    = {Muth{\'e}n, L. K. and Muth{\'e}n, B. O.},
  address   = {Los Angeles, CA},
  edition   = {8},
}

@Article{Muthen1983a,
  author  = {Muth{\'e}n, B. O.},
  title   = {{Latent variable structural equation modeling with categorical data}},
  journal = {{Journal of Econometrics}},
  year    = {1983},
  volume  = {22},
  pages   = {43--65},
}

tex-файл:

\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{csquotes}
\usepackage[style=apa, backend=biber, bibencoding=utf8]{biblatex}
\addbibresource{example.bib}

\begin{document}
\noindent
\parencite{Muthen1983a}\\
\parencite{MuthenMuthen19982017a}

\printbibliography
\end{document}

выход:

введите описание изображения здесь

решение1

Если я правильно понял комментарии вhttps://blog.apastyle.org/apastyle/2014/01/когда-использовать-инициалы-автора-для-текстовых-цитат.htmlправильно, стиль APA хочет только инициалы, чтобы устранить неоднозначность разных авторов с одинаковой фамилией для ведущих авторов. Это означало бы, что поведение, которое мы наблюдаем, является результатом, которого хочет APA.

К счастью, в этом случае довольно легко изменить поведение, чтобы устранить неоднозначность всех имен в цитатах. Нам нужно только labelname:donameнемного переопределить. По сравнению с исходным определением (в текущей версии 7.7 его biblatex-apaможно найти в лл. 77-96apa.cbx) мы удалили начальный тест с участием \ifuniqueprimaryauthor.

В целом следует отметить, что модифицировать его может быть довольно сложно, biblatex-apaдаже если «это должно быть легко». Поэтому, если вы не собираетесь следовать стилю APA, обычно более целесообразно начать с одного из стандартных стилей, а не с сильно настроенного и, следовательно, сложного biblatex-apa.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage[style=apa, backend=biber]{biblatex}

\renewbibmacro*{labelname:doname}[8]{%
  \ifcase\value{uniquename}%
    \ifuseprefix
      {\usebibmacro{name:family}{#1}{#3}{#5}{\relax}}
      {\usebibmacro{name:family}{#1}{#3}{\relax}{\relax}}%
  \or
     \ifuseprefix
       {\usebibmacro{name:given-family}{#1}{#4}{#5}{\relax}}
       {\usebibmacro{name:given-family}{#1}{#4}{\relax}{\relax}}%
  \or
     \ifuseprefix
       {\usebibmacro{name:given-family}{#1}{#3}{#5}{\relax}}
       {\usebibmacro{name:given-family}{#1}{#3}{\relax}{\relax}}%
  \fi
  \usebibmacro{name:andothers}}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{MuthenMuthen19982017a,
  title     = {{Mplus} User's Guide},
  publisher = {Muthén \& Muthén},
  date      = {1998/2017},
  author    = {Muthén, L. K. and Muthén, B. O.},
  address   = {Los Angeles, CA},
  edition   = {8},
}
@article{Muthen1983a,
  author  = {Muthén, B. O.},
  title   = {Latent variable structural equation modeling with categorical data},
  journal = {Journal of Econometrics},
  year    = {1983},
  volume  = {22},
  pages   = {43--65},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
\parencite{Muthen1983a}

\parencite{MuthenMuthen19982017a}

\printbibliography
\end{document}

(BO Muthén, 1983)//(LK Muthén & BO Muthén, 1998–2017)

Обратите внимание, что yearполе должно содержать только целое число. Для диапазонов года/даты используйте поле dateи формат ввода ISO 8601 (например, date = {1998/2017},).

Явное указание bibencoding=utf8не было необходимым в MWE, так как biblatexавтоматически определяется bibencodingfrom \usepackage[utf8]{inputenc}. .bibФайл на самом деле не использовал UTF-8, он был только US-ASCII, поэтому я переключил MWE на UTF-8.

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