Biblatex - 更改页面和出版商/地址字段。Inproceedings/incollection

Biblatex - 更改页面和出版商/地址字段。Inproceedings/incollection

我希望更改和字段的顺序,biblatex使@inproceedings字段@incollection位于pages和字段之前publisheraddress书籍章节和论文集的这种排序是各种语言学期刊的要求,以下是其应有的样子(取自 Isogloss):

Baker, Mark C. 2008. 微观参数世界中的宏观参数。收录于 T. Biberauer (ed.) 的《句法变异的极限》,第 351-373 页。阿姆斯特丹:John Benjamins。

booktitle字段后面跟着一个逗号,然后是“页面”。

这是一个简单的例子:

\documentclass[12pt, twoside]{article}
\usepackage[style=authoryear-comp]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{baker2008,
    AUTHOR = "Mark C. Baker",
    BOOKTITLE = "The limits of syntactic variation",
    EDITOR = "T. Biberauer",
    TITLE = "The macroparameter in a microparametric world",
    YEAR = "2008",
    LOCATION = "Amsterdam",
    PAGES = "351--373",
    PUBLISHER = "John Benjamins"}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

Biblatex 上的 authoryear 样式在末尾生成了“页数”:

我知道此输出还存在其他各种问题,但我已设法在其他地方找到修复方法,将它们全部包含在这里会太麻烦。我只需要更改顺序。我已经看到可以通过 来完成xpatch,但这些类型的编辑仍然超出了我的能力范围。有人知道怎么做吗?

答案1

一般来说,在输出中移动字段并不容易biblatex。例如,请参见如何在 biblatex-philosophy 中交换参考书目字段?。当相关字段都在同一个 bibmacro 中调用时,这可能很容易,但如果不是这种情况,一个简单的解决方案通常需要大量的代码行。有时可以通过重新和稍微滥用其他 bibmacro 来解决问题。

我们在这里可以使用的一般思想与更改 biblatex 中的部分样式editors 使用biblatex-ext'sinnamebeforetitle选项移动(参见例如Biblatex:incollection 中的格式化编辑器在 biblatex 中将编辑姓名后跟 (Ed./Eds.) 和标题前的逗号),并且pages可以通过修改 bibmacro 来移动该字段edition以便也打印pages\clearfield{pages}然后删除该字段,以便通常打印页面的宏以后不会再次执行此操作)。

\documentclass[12pt, twoside]{article}

\usepackage[
  backend=biber,
  style=ext-authoryear-comp,
  innamebeforetitle=true,
]{biblatex}

\DeclareFieldFormat{biblabeldate}{#1}

\DeclareDelimFormat[bib]{nameyeardelim}{\addperiod\space}

\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimFormat{editortypedelim}{\addspace}

\DeclareFieldAlias{translatortype}{editortype}
\DeclareDelimAlias{translatortypedelim}{editortypedelim}

\DeclareDelimFormat[bib]{innametitledelim}{\addcomma\space}

\DeclareFieldFormat{pages}{#1}

\renewbibmacro*{edition}{%
  \printfield{edition}%
  \setunit{\bibpagespunct}%
  \printfield{pages}%
  \clearfield{pages}%
  \setunit{\bibeidpunct}%
  \printfield{eid}%
  \clearfield{eid}%
}

\begin{filecontents}{\jobname.bib}
@incollection{baker2008,
  AUTHOR    = {Mark C. Baker},
  BOOKTITLE = {The Limits of Syntactic Variation},
  EDITOR    = {T. Biberauer},
  TITLE     = {The Macroparameter in a Microparametric World},
  YEAR      = {2008},
  LOCATION  = {Amsterdam},
  PAGES     = {351--373},
  PUBLISHER = {John Benjamins},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

Baker, Mark C. 2008. “微观参数世界中的宏观参数”。收录于:T. Biberauer (ed.),《句法变异的极限》,第 351–373 页。阿姆斯特丹:John Benjamins。

相关内容