将系列放在总页数之后

将系列放在总页数之后

我想将系列项目放在行的实际末尾,即总页数之后。

在这里,我发现了如何将其放在日期后面:Biblatex/Biber:将系列、卷数和编号放在末尾

使用以下代码:

\RequirePackage{xpatch}
\renewbibmacro*{series+number}{%
  \iffieldundef{series}
    {}
    {\printtext[parens]{%
       \printfield{series}%
       \setunit*{\addspace}%
       \printfield{number}%
       \newunit}}}
\newcommand*\patchseries[1]{%
  \xpatchbibdriver{#1}
    {\usebibmacro{series+number}}
    {}
    {}
    {\typeout{Warning: Failed to remove series+number from driver #1.}}
  \xpatchbibdriver{#1}
    {\usebibmacro{publisher+location+date}}
    {\usebibmacro{publisher+location+date}%
     \setunit{\addcomma\addspace}%
     \usebibmacro{series+number}}
    {}
    {\typeout{Warning: Failed to add series+number to driver #1.}}}
\patchseries{book}\patchseries{inbook}
\patchseries{collection}\patchseries{incollection}
\patchseries{proceedings}\patchseries{inproceedings}
\DeclareFieldFormat{number}{\bibstring{number}~#1}

但对于这个

@BOOK{laplantine1999,
  keywords = {livre},
  entrysubtype = {ouvrages},
  title = {Je, nous et les autres},
  publisher = {Le Pommier},
  year = {1999},
  author = {LAPLANTINE, François},
  address = {Paris},
  series = {Manifeste},
  pagetotal = {162}
 }

结果是这样的: 

拉普兰蒂纳,弗朗索瓦。我,我们和其他人,巴黎:Le Pommier,1999 年,(汇编宣言),162 页。

我想: 

拉普兰蒂纳,弗朗索瓦。我、我们和其他人,巴黎:Le Pommier,1999 年,162 页。 (合集宣言)

答案1

你可能想要

\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=authortitle]{biblatex}
\usepackage{microtype}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Book{Kafka.2001,
  Title                    = {Die Verwandlung},
  Author                   = {Kafka, Franz},
  Publisher                = {Philipp Reclam},
  Year                     = {2001},
  Address                  = {Stuttgart},
  Number                   = {9900},
  Series                   = {Reclams Universal-Bibliothek}
}
@BOOK{laplantine1999,
  keywords = {livre},
  entrysubtype = {ouvrages},
  title = {Je, nous et les autres},
  publisher = {Le Pommier},
  year = {1999},
  author = {LAPLANTINE, François},
  address = {Paris},
  series = {Manifeste},
  pagetotal = {162}
 }
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\usepackage{xpatch}

\renewbibmacro*{series+number}{%
  \iffieldundef{series}
    {}
    {\printtext[parens]{%
       \printfield{series}%
       \setunit*{\addspace}%
       \printfield{number}%
       \newunit}}}

\newcommand*\patchseries[1]{%
  \xpatchbibdriver{#1}
    {\usebibmacro{series+number}}
    {}
    {}
    {\typeout{Warning: Failed to remove series+number from driver #1.}}
  \xpatchbibdriver{#1}
    {\usebibmacro{addendum+pubstate}}
    {\usebibmacro{addendum+pubstate}%
     \setunit{\addspace}%
     \usebibmacro{series+number}}
    {}
    {\typeout{Warning: Failed to add series+number to driver #1.}}}

\patchseries{book}\patchseries{inbook}
\patchseries{collection}\patchseries{incollection}
\patchseries{proceedings}\patchseries{inproceedings}

\DeclareFieldFormat{number}{\bibstring{number}~#1}

\begin{document}
\blockcquote{Kafka.2001}{Als Gregor Samsa eines Morgens aus unruhigen Träumen erwachte, fand er sich in seinem Bett zu einem ungeheueren Ungeziefer verwandelt.}.

\nocite{sigfridsson,worman,brandt,baez/article,laplantine1999}

\printbibliography
\end{document}

唯一的变化是

  \xpatchbibdriver{#1}
    {\usebibmacro{addendum+pubstate}}
    {\usebibmacro{addendum+pubstate}%
     \setunit{\addspace}%
     \usebibmacro{series+number}}
    {}
    {\typeout{Warning: Failed to add series+number to driver #1.}}

代替

  \xpatchbibdriver{#1}
    {\usebibmacro{publisher+location+date}}
    {\usebibmacro{publisher+location+date}%
     \setunit{\addcomma\addspace}%
     \usebibmacro{series+number}}
    {}
    {\typeout{Warning: Failed to add series+number to driver #1.}}

这使得该系列进一步落后。

相关内容