biblatex: запятая между автором и годом в библиографии при использовании стиля ext-authoryear с introcite=label

biblatex: запятая между автором и годом в библиографии при использовании стиля ext-authoryear с introcite=label

Я использую biblatex-extwith introcite=labelдля получения стиля цитирования, как показано в следующем вопросе:

Создание библиографии с фиксированным отступом и метками года автора с использованием biblatex и biber

Это дает мне метки с пробелом между автором и годом как в метке, так и в библиографии. Однако мне требуется иметь пробел между автором и годом в метке и запятую между автором и годом в библиографической записи. Поэтому мне нужно что-то вроде этого:

Tietze et al. 2012    Tietze, Ulrich; Schenk, Christoph, 2012.
                      Halbleiterschaltungstechnik. ...

Обратите внимание, что я использовал следующее решение, чтобы убрать скобки вокруг года:biblatex: Как убрать скобки вокруг года в стиле authoryear?

В поисках решения я нашел

\renewcommand*{\nameyeardelim}{\addcomma\space}

но это работает только для метки, делающей указанную выше запись

Tietze et al., 2012    Tietze, Ulrich; Schenk, Christoph 2012.
                      Halbleiterschaltungstechnik. ...

Это противоположно тому, что мне нужно. Мне нужен пробел между автором и годом в названии и запятая в библиографической записи.

решение1

Как упоминалосьДэвид Пёртонвкомментарии, nameyeardelim— это разделитель, зависящий от контекста. Это означает, что вы можете дать ему разные определения для библиографии и цитат. Метка introciteимеет контекст bbx@introcite, который отличается от контекста bibдля остальной части библиографии, поэтому мы можем использовать nameyeardelimздесь разные значения.

Значение по умолчанию nameyeardelimдля всех контекстов — \addspace, поэтому нам нужно только изменить разделитель для bibконтекста на запятую с последующим пробелом.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage[style=ext-authoryear, backend=biber, introcite=label, dashed=false]{biblatex}
\addbibresource{biblatex-examples.bib}

\setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip}
\setlength{\introcitewidth}{6em}

\DeclareDelimFormat[bib]{nameyeardelim}{\addcomma\space}

\DeclareFieldFormat{biblabeldate}{#1}

\begin{document}
\cite{sigfridsson,worman,geer,knuth:ct:a}
\printbibliography
\end{document}

Сигфридссон и Райд 1998 // Сигфридссон, Эмма и Ульф Райд, 1998.

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