
Когда я \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}
Кажется, это даёт желаемый результат, но может иметь побочные эффекты и поломки в других местах.