在引用中的“et al.”后添加逗号不适用于其他语言的“et al.”

在引用中的“et al.”后添加逗号不适用于其他语言的“et al.”

在作业中,我需要按照以下格式来引用:

  • 作者年份格式
  • 在 andothers 字符串后面加上逗号(通常为“et al.”)
  • 将“et al.”翻译为“ym”。(芬兰语)

我知道如何用这种方式添加逗号:\renewcommand*{\nameyeardelim}{\addcomma\addspace}。我还知道一种定义要翻译成芬兰语的参考书目字符串的方法:\DefineBibliographyStrings{finnish}{andothers={ym.}}。这两种方法单独使用时效果都很好,但同时使用时,逗号不会出现如何翻译“et al.”并在其后面添加逗号?

我没有找到使用 Biber 来实现这一点的方法。这是我首选的书目处理方法,我不想为了解决这个小问题而学习一种新方法。

为了澄清起见,下面是最少的示例和输出。


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

输出: 除了“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}

输出: 否则没问题,但缺少逗号


.bib文件如下:

@article{reference,
author = {Author, Andrew and Example, Edgar},
title = {Example article},
year = 2015,
journal = {Some Journal}
}

答案1

通常,将字符串等中的biblatex文字句号解释为句子结束句号,并抑制后面的标点符号以避免双重标点符号。.

因此我们需要确保biblatex知道.inym.是缩写点。这可以通过ym.\isdot(我们将文字句点随后转换为点)或ym\adddot(我们直接插入缩写点)来实现。

所以你可以

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

平均能量损失

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

在此处输入图片描述

相关内容