更改 windycity 中 @incollection 条目的卷序和页码顺序

更改 windycity 中 @incollection 条目的卷序和页码顺序

目前,样式为 的@incollection条目会将页码放在卷之前。当s 带有 a和单独的s 时,这是有意义的,但对于单个名称下的 s 则不太有意义。我该如何改变这种情况?windycitybiblatex@mvcollectionmaintitlebooktitlemvcollection

梅威瑟:

\documentclass{memoir}
\usepackage[style=windycity]{biblatex}
\usepackage{filecontents}

\begin{filecontents}{biblio.bib}
    @incollection{entry,
        title = {Chapter},
        author = {Author},
        location = {Place},
        publisher = {Publisher},
        date = {2020},
        volume = {1},
        pages = {100--110},
        booktitle = {Book},
        editora = {Editor}
    }
\end{filecontents}
\bibliography{biblio}
\begin{document}
   \nocite{entry}
   \printbibliography
\end{document}

生成:

作者。“章节。”在书中,由编辑编辑,100–110。第 1 卷。地点:出版商,2020 年。

但我希望它产生:

作者。“章节”。收录于书中,由编辑编辑。第 1 卷,100-110。出版地:出版商,2020 年。

如何改变这一现状?

答案1

对复杂的风格进行改变windycity可能会有风险,因为它要紧密遵循芝加哥风格。

我已尽力避免副作用,但你还是应该小心。

volumes+bookseries+etc我对和宏做了三处更改,以便在没有字段时volume+number+etc交换pages和字段。volumesbookbooktitle

平均能量损失

\documentclass{memoir}
\usepackage[style=windycity]{biblatex}
\begin{filecontents}[overwrite]{biblio.bib}
@incollection{entry,
  title = {Chapter},
  author = {Author},
  location = {Place},
  publisher = {Publisher},
  date = {2020},
  volume = {1},
  pages = {100--110},
  booktitle = {Book},
  editora = {Editor}
}
@InCollection{doe2018,
    author = {Doe, Jane},
    title = {A Poem},
    translator = {Smith, John},
    pages = {56-57},
    crossref = {jones2018}
}
@InBook{jones2018,
    editor = {Jones, David},
    title = {A Volume of Poems},
    volume = {2},
    year = {2018},
    crossref = {blow2016}   
}
@Collection{blow2016,
    editor = {White, Amy},
    title = {A Collection of Poems},
    volumes = {4},
    address = {Chicago},
    publisher = ucp,
    year = {2018}
}
\end{filecontents}
\addbibresource{biblio.bib}
\renewbibmacro*{volumes+bookseries+etc}{%
  \usebibmacro{volumes}%
  \usebibmacro{bookseries}%
  \iffieldundef{bookbooktitle}% <-- edit
    {}%                         <-- edit
    {\usebibmacro{pages}}%      <-- edit
  \usebibmacro{volume+number+etc}%
  \usebibmacro{book:number}%
  \usebibmacro{part}}%
\renewbibmacro*{volume+number+etc}{%
  \iffieldundef{\xvolume volume}
    {}
    {\iffieldundef{bookbooktitle}%    <-- edit
       {}%                            <-- edit
       {\usebibmacro{swapvol+pages}}% <-- edit
     \iffieldundef{series}
       {\newunit}%
       {\setunit{\addcomma\space}}%
     \iffieldnum{\xvolume volume}
       {\printfield[volume]{\xvolume volume}%
        \usebibmacro{volume:number}}%
       {\bibstring{volumes}\space
        \printfield[noformat]{\xvolume volume}}%
     \clearfield{\xvolume volume}%
     \usebibmacro{part}%
     \iffieldundef{bookbooktitle}% <-- edit
       {\usebibmacro{pages}}%      <-- edit
       {}%                         <-- edit
     \iftoggle{collection}
       {\iftoggle{swapvol}
          {\addcomma\space}%
          {\space\bibstring{of}\space}}%
       {\iffieldundef{maintitle}
          {}
          {\space\bibstring{of}\space}}}}
\begin{document}
\nocite{entry,doe2018}
\printbibliography
\end{document}

输出

相关内容