# Modifying bibliography driver biblatex oscola

After I have received great help here before when I wanted to modify the bibliography driver for @incollection (Force information (pages) to printbibliography; change citation style) it transpired that there are two last modifications which I would like to learn: they concern the way @article is presented in the bibliography in Oscola, namely unfortunately only with the first page instead of the page-range, and the way in which author names are cited in the bibliography, namely unfortunately with abbreviated first names.

I do not understand what I need to change in order for the whole page range being printed in the bibliography. The Oscola BBX code can be found here: https://github.com/PaulStanley/oscola-biblatex/blob/1.6/oscola.bbx

I suspect that the reason why only the first page is printed is in line 413 (?):

\DeclareFieldFormat[article]{pages}{%
\mkfirstpage*{#1}}


Can someone please tell me which changes I have to do, so that the entry in the bibliography reads Fauchald OK, ‘The Legal Reasoning of ICSID Tribunals - An Empirical Analysis’ (2008) 19(2) European Journal of International Law 301-364

Also, I would prefer if authors’ name do not appear in the bibliography as „Fauchald OK“, but as „Fauchald, Ole Kristian“. The same for authors of @book and of @incollection.

Any help is very much appreciated!

Here is my minimum example which includes the lines that ensure that @incollection items are printed in the bibliography with the whole page range (thanks to moewe, see the first link above):

\documentclass{article}

\usepackage[british]{babel}
\usepackage[style=british]{csquotes}\usepackage[T1]{fontenc}
\usepackage[style=oscola,
indexing=cite,
backend=biber,
citepages=suppress,
ecli=yes,
citereset=chapter,
babel=hyphen]{biblatex}

\makeatletter
\newbibmacro*{chapter+pages}{%
\printfield{chapter}%
\setunit{\bibpagespunct}%
\printfield{pages}%
\ifboolexpr{
not test {\iffieldundef{pages}}
or not test {\iffieldundef{chapter}}}
{\bbx@resetpostnotedelim}
{}%
\newunit}
\makeatother

\DeclareBibliographyDriver{inbook}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\usebibmacro{title}%
\usebibmacro{byauthor}%
\usebibmacro{in:}%
\newunit\newblock%
\usebibmacro{bybookauthor/editor/translator}%
\newblock%
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\newunit\newblock
\usebibmacro{publicationinfo}%
\newunit\newblock
\usebibmacro{revisedbookvolume}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}

\DeclareBibliographyDriver{inreference}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\clearlist{publisher}%
\newunit\newblock
\usebibmacro{title}%
\usebibmacro{byauthor}%
\usebibmacro{maintitle+booktitle}%
\newunit
\usebibmacro{publicationinfo:short}%
\usebibmacro{revisedbookvolume}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}

\begin{document}
Lorem \autocite[303]{fauchald_legal_2008}
Lorem \autocite[50]{koskenniemi_apology_2007}
Lorem \autocite[280]{rasulov_doctrine_2013}

\printbibliography
\end{document}


Fauchald.bib contains:

@article{fauchald_legal_2008,
title = {The {Legal} {Reasoning} of {ICSID} {Tribunals} - {An} {Empirical} {Analysis}},
volume = {19},
number = {2},
journal = {European Journal of International Law},
author = {Fauchald, Ole Kristian},
year = {2008},
pages = {301--364}
}

@incollection{rasulov_doctrine_2013,
title = {The {Doctrine} of {Sources} in the {Discourse} of the {Permanent} {Court} of {International} {Justice}},
booktitle = {Legacies of the {Permanent} {Court} of {International} {Justice}},
publisher = {Brill},
author = {Rasulov, Akbar},
editor = {Tams, Christian J. and Fitzmaurice, Malgosia},
year = {2013},
pages = {271--317}
}

@book{koskenniemi_apology_2007,
edition = {2},
title = {From {Apology} to {Utopia}: {The} {Structure} of {International} {Legal} {Argument} - {Reissue} {With} {New} {Epologue}},
publisher = {Cambridge University Press},
author = {Koskenniemi, Martti},
year = {2007}
}


You are right in your guess about why only the first page is printed for articles in the bibliography. You can fix it by adding this to your preamble:

\DeclareFieldFormat[article]{pages}{\mknormrange{#1}}


Normally the printing of given names as initials is controlled using the giveninits option for biblatex, but biblatex-oscola hard codes it. You can fix it by adding this to your preamble:

\AtBeginBibliography{%
\togglefalse{abx@bool@giveninits}}


We also need to add the comma in between the family name and the given names, which can be done by adding this to your preamble:

\renewcommand*{\revsdnamepunct}{\addcomma\space}


Your example (with some modifications to make it work with current versions of biblatex) then gives me: