biblatex:针对一位、两位或三位作者提供不同的输出

biblatex:针对一位、两位或三位作者提供不同的输出

我正在使用/自定义verbose样式biblatex。这是所需的输出,取决于作者的数量(仅关注作者):

苹果,安东尼。标题[⇦ 1 位作者]
香蕉,芭芭拉/克里斯椰子。标题[⇦ 2 位作者]
日期,Donna 等人。标题[⇦ >2 位作者]

我几乎已经明白了,只有一个空间我无法摆脱:

\documentclass{article}

\usepackage[backend=biber,style=verbose,%
            maxnames=2,minnames=1,%
            maxitems=2,minitems=1]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}

@book{one,
    author = {Anthony Apple},
    title = {Title}}
@book{two,
    author = {Barbara Banana and Chris Coconut},
    title = {Title}}
@book{three,
    author = {Donna Date and Eric Eggplant and Fred Fig},
    title = {Title}}

\end{filecontents}

\addbibresource{\jobname.bib}

\DefineBibliographyStrings{english}{%
  and = {\unspace/}}

\begin{document}

\nocite{*}% adds all entries to the bibliography

\printbibliography

\end{document}

带有虚假空间的输出

答案1

如果您确实想在所有语言中使用斜线作为分隔符,那么只需重新定义\finalnamedelim- 在名称列表中最后一个名称之前打印的分隔符。其中biblatex.def定义如下。

\newcommand*{\finalnamedelim}{%
  \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
  \addspace\bibstring{and}\space}

这将在引用和参考书目中使用斜线:

\renewcommand*{\finalnamedelim}{\addslash}

这将仅在参考书目中使用斜线:

\renewcommand*{\finalnamedelim}{%
  \ifbibliography
    {\addslash}
    {\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
     \addspace\bibstring{and}\space}}

相关内容