biblatex-verbose:编辑器后的逗号而不是句号

biblatex-verbose:编辑器后的逗号而不是句号

“编辑”后面的句号应该是逗号。我找到了 bibmacro byeditor+others,但不知道需要更改什么。\DeclareFieldFormat在其他情况下有助于标点符号的 也没有帮助。

\documentclass{article}

\usepackage[style=verbose]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{foo,
    author = {Author},
    title = {Title},
    booktitle = {Booktitle},
    editor = {Editor},
    location = {Location},
    year = {2013},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
\nocite{foo}
\printbibliography
\end{document}

输出

答案1

我不知道以下是否是最好的方法,但在定义中用\newunit替换是可行的。\addcommabyeditor+others

添加

\renewbibmacro*{byeditor+others}{%
  \ifnameundef{editor}
    {}
    {\usebibmacro{byeditor+othersstrg}%
     \setunit{\addspace}%
     \printnames[byeditor]{editor}%
     \clearname{editor}%
     \addcomma}%
  \usebibmacro{byeditorx}%
  \usebibmacro{bytranslator+others}}

你的序言。

因此,修改你的 MWE 为

\documentclass{article}

\usepackage[style=verbose]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{foo,
    author = {Author},
    title = {Title},
    booktitle = {Booktitle},
    editor = {Editor},
    location = {Location},
    year = {2013},
}
\end{filecontents}

\renewbibmacro*{byeditor+others}{%
  \ifnameundef{editor}
    {}
    {\usebibmacro{byeditor+othersstrg}%
     \setunit{\addspace}%
     \printnames[byeditor]{editor}%
     \clearname{editor}%
     \addcomma}%
  \usebibmacro{byeditorx}%
  \usebibmacro{bytranslator+others}}

\addbibresource{\jobname.bib}

\begin{document}
\nocite{foo}
\printbibliography
\end{document} 

给出

在此处输入图片描述

相关内容