\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}

これは目的の出力を生成するように見えますが、副作用があり、他の場所で問題が発生する可能性があります。

ここに画像の説明を入力してください

関連情報