4

In an assignment, I am required to have citations formatted in the following manner:

  • in the authoryear style
  • with a comma after the andothers-string (normally "et al.")
  • with "et al." translated to "ym." (Finnish)

I know how this way to add the comma: \renewcommand*{\nameyeardelim}{\addcomma\addspace}. Also I know a way to define the bibliography string to be translated into Finnish: \DefineBibliographyStrings{finnish}{andothers={ym.}}. Both of these methods work fine separately, but when used simultaneously, the comma just won't appear. How to translate the "et al." and add a comma after it?

I didn't find a way to do this using Biber. It is my preferred bibliography-handling method, and I wouldn't like to learn a new one just to solve this little problem.

To clarify, below are minimal examples and outputs.


% Works fine, except that the andothers is in the wrong language:    
\documentclass{article}

\usepackage[finnish]{babel}
\usepackage{csquotes}
\usepackage[backend=biber, maxcitenames=1, style=authoryear]{biblatex}

%\DefineBibliographyStrings{finnish}{andothers={ym.}} % To translate "et al."

\ExecuteBibliographyOptions{firstinits=true, uniquename=init}

\addbibresource{et_al.bib}
\renewcommand*{\nameyeardelim}{\addcomma\addspace} % To add the comma

\begin{document}
I refer to~\parencite{reference}.
\printbibliography
\end{document}

Output: Exactly what I want, except for the "et al."


% The et al. is in the correct language, but the comma ends up missing in the output:    
\documentclass{article}

\usepackage[finnish]{babel}
\usepackage{csquotes}
\usepackage[backend=biber, maxcitenames=1, style=authoryear]{biblatex}

\DefineBibliographyStrings{finnish}{andothers={ym.}} % To translate "et al."

\ExecuteBibliographyOptions{firstinits=true, uniquename=init}

\addbibresource{et_al.bib}
\renewcommand*{\nameyeardelim}{\addcomma\addspace} % Should add the comma, but somehow doesn't work

\begin{document}
I refer to~\parencite{reference}.
\printbibliography
\end{document}

Output: Otherwise fine, but the comma is missing


The .bib file is as follows:

@article{reference,
author = {Author, Andrew and Example, Edgar},
title = {Example article},
year = 2015,
journal = {Some Journal}
}
lockstep
  • 250,273
kekomieli
  • 43
  • 6

1 Answers1

8

Normally, biblatex interprets literal periods . in bibstrings and the like as sentence-ending periods and suppresses following punctuation to avoid double punctuation.

So we need to make sure biblatex knows that the . in ym. is an abbreviation dot. This can be done via ym.\isdot (where we turn the literal period into a dot afterwards) or ym\adddot (where we directly insert an abbreviation dot).

So you could have

\DefineBibliographyStrings{finnish}{andothers={ym\adddot}}

MWE

\documentclass{article}

\usepackage[finnish]{babel}
\usepackage{csquotes}
\usepackage[backend=biber, maxcitenames=1, style=authoryear]{biblatex}

\DefineBibliographyStrings{finnish}{andothers={ym\adddot}}

\ExecuteBibliographyOptions{firstinits=true, uniquename=init}

\begin{filecontents}{\jobname.bib}
@article{reference,
author = {Author, Andrew and Example, Edgar},
title = {Example article},
year = 2015,
journal = {Some Journal}
}
\end{filecontents}

\addbibresource{\jobname.bib}
\renewcommand*{\nameyeardelim}{\addcomma\addspace}

\begin{document}
I refer to~\parencite{reference}.
\printbibliography
\end{document}

enter image description here

moewe
  • 175,683