Как убрать точку после года и добавить запятую после автора в \parencite

Как убрать точку после года и добавить запятую после автора в \parencite

Когда я \parenciteчто-то хочу, чтобы точка после года была опущена, а после автора была запятая. Следующие команды уже есть в моей преамбуле:

\renewcommand*{\postnotedelim}{\addcolon\space} % add colon after year on \parencite
\DeclareFieldFormat{postnote}{#1} %no page prefix when citing
\DeclareFieldFormat{multipostnote}{#1} %no page prefix when citing

Это отображает мой цитируемый источник как

(Автор 1975.: 49)

но я хочу, чтобы они были показаны как

(Автор, 1975: 49)


МВЭ

\documentclass{article}
\usepackage[serbian]{babel}

\usepackage[backend=biber, style=authoryear]{biblatex}

\renewcommand*{\postnotedelim}{\addcolon\space}
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \parencite[42]{sigfridsson}
\end{document}

решение1

serbian.lbxставит \adddotпосле года в \mkbibdateshortи связывает макросы. Вы можете избавиться от точек, переопределив макросы в \DefineBibliographyExtras{serbian}.

Вы можете добавить запятую после автора с помощью \renewcommand*{\nameyeardelim}{\addcomma\space}.

\documentclass[serbian]{article}

\usepackage[T1]{fontenc}
\usepackage[serbian]{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=authoryear]{biblatex}

\DefineBibliographyExtras{serbian}{%
  \renewcommand*\mkbibordinal[1]{\stripzeros{#1}}
  \renewcommand*\mkbibdateshort[3]{%
    \iffieldundef{#3}{}{\mkbibordinal{\thefield{#3}}%
      \iffieldundef{#2}{}{\addnbspace}}%
    \iffieldundef{#2}{}{\mkbibordinal{\thefield{#2}}%
      \iffieldundef{#1}{}{\addnbspace}}%
    \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}%
    {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
  \renewcommand*\mkbibseasondateshort[2]{%
    \mkbibseason{\thefield{#2}}%
    \iffieldundef{#1}{}{\space}%
    \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
    \renewcommand*\mkbibseasondatelong[2]{%
    \mkbibseason{\thefield{#2}}%
    \iffieldundef{#1}{}{\space}%
    \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}

\renewcommand*{\postnotedelim}{\addcolon\space} % add colon after year on \parencite
\renewcommand*{\nameyeardelim}{\addcomma\space}
\DeclareFieldFormat{postnote}{#1} %no page prefix when citing
\DeclareFieldFormat{multipostnote}{#1} %no page prefix when citing


\begin{filecontents}{\jobname.bib}
@book{elk,
  author    = {Anne Elk},
  title     = {A Theory on Brontosauruses},
  year      = {1972},
  publisher = {Monthy \& Co.},
  location  = {London},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \parencite[380]{sigfridsson}
ipsum \parencite[42]{elk}

\printbibliography
\end{document}

Кажется, это даёт желаемый результат, но может иметь побочные эффекты и поломки в других местах.

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

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