如何在 biblatex 中列出带有“卷 X ...”的“inproceedings”项目

如何在 biblatex 中列出带有“卷 X ...”的“inproceedings”项目

我使用具有 authoryear 样式的 biblatex,结果显示 @inproceedings 项目

...“标题”。在:书名. 第 123 卷。系列标题。

如何将其更改为:

...“标题”。在:书名,第 123 卷系列标题

答案1

这个 hack 似乎可以达到目的:

\documentclass{article}    
\usepackage{filecontents} % Just for the example

\usepackage[style=authoryear,backend=bibtex]{biblatex}
\DeclareFieldFormat[inproceedings]{volume}{Volume #1 of}
\DeclareFieldFormat[inproceedings]{series}{\mkbibemph{#1}}
\DeclareBibliographyDriver{inproceedings}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \usebibmacro{event+venue+date}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \iffieldundef{maintitle}
    {\printfield{volume}%
    \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \setunit{\space}\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \printlist{organization}%
  \newunit
  \usebibmacro{publisher+location+date}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \usebibmacro{finentry}}


\addbibresource{\jobname.bib}

\begin{filecontents}{\jobname.bib}
@inproceedings{Author2013,
    Title = {{A great paper}},
    Author = {A Author},
    Booktitle = {Booktitle},
    Series = {Title of Series},
    Volume = {1},
    Year = {2013}
}
\end{filecontents}

\begin{document}

\cite{Author2013}

\printbibliography

\end{document}

在此处输入图片描述

我刚刚声明了volume和的字段格式series,并修改了驱动程序中的一行inproceedings以更改单元末尾的标点符号。在这个简单的示例中,它可以工作,但我尚未检查当您有其他字段时它是否会引起麻烦,并且可能有更好的方法来实现它。

相关内容