0

I'm looking to change the order of the fields in biblatex for @inproceedings and @incollection so that the pages field comes before the publisher and address fields. This ordering for book chapters and proceedings is a requirement for various Linguistics journals, and this is an example of how it should look (taken from Isogloss):

Baker, Mark C. 2008. The macroparameter in a microparametric world. In T. Biberauer (ed.), The limits of syntactic variation, 351-373. Amsterdam: John Benjamins.

The booktitle field would be followed by a comma, and then 'pages'.

Here is a minimal example:

\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 on the authoryear style produces this with 'pages' at the end:

I know that there are various other problems with this output, but I have managed to find fixes for them elsewhere and to include them all here would be too much. I just need the ordering change. I've seen that it can be done through xpatch, but these kinds of edits are still beyond me. Would anyone know how to do it?

2
  • I won't have time for an in-depth answer tonight, but some aspects of your desired style seem to be covered by the recent tex.stackexchange.com/q/629219/35864. Maybe that can help you.
    – moewe
    Jan 10, 2022 at 20:26
  • Thanks for the link. It's useful and it mentions field ordering in tex.stackexchange.com/questions/12806/…, but not the kind I need and not in the right detail for a beginner like me to apply it here. Sorry.
    – Grey
    Jan 11, 2022 at 13:04

1 Answer 1

0

Generally speaking, it is not so easy to move around fields in biblatex output. See for example the discussion in How to swap bibliography fields in biblatex-philosophy?. It can be easy when the relevant fields are both called in the same bibmacro, but if that is not the case, a straightforward solution would often need a significant number of lines of code. Sometimes it is possible to cook something up by re- and slightly abusing other bibmacros.

The general idea that we can use here is the same as in Changing part of a style in biblatex: The editors are moved with biblatex-ext's innamebeforetitle option (see e.g. Biblatex: formatting editor in incollection and Move names of editors followed by (Ed./Eds.) and a comma before title in biblatex) and the pages field can be moved by modifying the edition bibmacro to also print pages (the \clearfield{pages} then deletes the field so that the macro that would normally print the pages does not do so again later on).

\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. “The Macroparameter in a Microparametric World”. In: T. Biberauer (ed.), The Limits of Syntactic Variation, 351–373. Amsterdam: John Benjamins.

1
  • That works beautifully. Thank you so much.
    – Grey
    Jan 11, 2022 at 18:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .