BibLaTeX/Biber:截断作者列表,但不截断书籍编辑者列表

BibLaTeX/Biber:截断作者列表,但不截断书籍编辑者列表

我已将maxnamesBibLaTeX 选项设置为,1因为我只想显示第一位作者,然后是。但是,对于书籍,我想定义一个专用的maxnames。例如,目前,我对 IUPAC 金书的引用如下所示:

IUPAC:“化学术语汇编(“金书”)”。AD McNaught ,编辑。Blackwell Scientific Publications,牛津,第 2 版,1997 年。DOI:10.1351/goldbook。

我还想显示第二位(也是最后一位)编辑 A. Wilkinson,而不是截断列表。到目前为止,我找不到使用该选项的确切代码。由于我在宏和函数maxnames中都没有看到它,所以我猜想它在函数中使用,但我不明白该函数的代码。authoreditor\printnames

是否有可能将作者数量与编辑数量分开?


编辑:添加了 MWE

\documentclass{article}

\usepackage{hyperref}

\usepackage[%
    backend = biber,%
    style = trad-abbrv,%
    citestyle = numeric-comp,%
    sorting = nty,%
    minnames = 1,%
    maxnames = 1%
]{biblatex}

\bibliography{references}

\begin{filecontents}{references.bib}
    @book{IUPAC1997,
        address = {Oxford},
        author = {IUPAC},
        doi = {10.1351/goldbook},
        edition = {2},
        editor = {McNaught, A. D. and Wilkinson, A.},
        isbn = {0-9678550-9-8},
        publisher = {Blackwell Scientific Publications},
        title = {{Compendium of Chemical Terminology (the “Gold Book”)}},
        year = {1997}
    }
\end{filecontents}

\begin{document}

This should be cited.\cite{IUPAC1997}

\printbibliography[heading = bibnumbered]

\end{document}

在我的本地文档中,我使用了trad-abbrvbibstyle 并修改了其中的部分内容(用引号代替斜体文本等),但与这个问题无关,因此我更喜欢使用该trad-abbrv样式共享较短的 MWE。

答案1

biblatexmaxnames和选项minnames同样适用于所有名称。如果您想要更好地控制不同类型的不同名称,则需要修改相关的 bibmacros。在这种情况下,有几种不同的方法可以得到所需的结果,但它们的语义会有所不同。

下面我们坚持maxnames=1,并仅重新定义一个 bibmacro 以editor在标题后打印更多 s。

\documentclass{article}
\usepackage[
    backend = biber,
    style = trad-abbrv,
    citestyle = numeric-comp,
    sorting = nty,
    minnames = 1,
    maxnames = 1,
]{biblatex}
\usepackage{hyperref}

\renewbibmacro*{byeditor+others}{%
  \ifnameundef{editor}
    {}
    {\printnames[byeditor][-\value{listtotal}]{editor}%
     \setunit{\addcomma\space}%
     \usebibmacro{editorlstr}%
     \clearname{editor}%
     \newunit}%
  \usebibmacro{byeditorx}%
  \usebibmacro{bytranslator+others}}

\begin{filecontents}{\jobname.bib}
@book{IUPAC1997,
  address   = {Oxford},
  author    = {IUPAC},
  doi       = {10.1351/goldbook},
  edition   = {2},
  editor    = {McNaught, A. D. and Wilkinson, A.},
  isbn      = {0-9678550-9-8},
  publisher = {Blackwell Scientific Publications},
  title     = {Compendium of Chemical Terminology (the “Gold Book”)},
  year      = {1997},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
This should be cited. \cite{IUPAC1997}

\printbibliography[heading = bibnumbered]
\end{document}

IUPAC。《化学术语汇编》(“金书”)。AD McNaught 和 A. Wilkinson 编辑。Blackwell Scientific Publications,牛津,第 2 版,1997 年。isbn:0-9678550-9-8。doi:10.1351/goldbook。

相关内容