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 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 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 at 18:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.