# Backref for sets - unwanted different formatting

I'm trying to polish my thesis with a nice bibliography (with biblatex, backend=bibtex) but I have a problem with the way the backreferences are treated with respect to sets of references.

Indeed, I use @set to group two papers within the same entry (say a paper and an erratum, or two papers by the same set of people on the same thing). The issue then is that the backref does not look the same for a single paper or for a set of papers: the former is between brackets (as I would like) and the latter is not. Also, I would like all of those to be on the next line.

See:

\documentclass[a4paper,12pt]{report}

\usepackage[utf8]{inputenc}
\usepackage[pdftex]{graphicx}
\usepackage{color}
\usepackage{changepage}

\usepackage[backend=bibtex, style=numeric-comp, sorting=none, backref=true, backrefsetstyle=setonly, maxcitenames=3, maxbibnames=10]{biblatex}
\renewbibmacro*{in:}{}
\renewcommand*{\finentrypunct}{}
\renewbibmacro*{volume+number+eid}{
\printfield{volume}
\printfield{number}
}
\DeclareFieldFormat*{author}{#1}
\DeclareFieldFormat*{title}{\mkbibemph{#1}}
\DeclareFieldFormat*{journaltitle}{#1}
\DeclareFieldFormat*{volume}{{\bf #1}}
\DefineBibliographyStrings{english}{
}

\begin{document}

One may have a MOND at such scales~\cite{Milgrom1983set}. MOND theories have been embedded in relativistic modified gravitational field theories, the so-called \emph{Te}nsor-\emph{Ve}ctor-\emph{S}calar (TeVeS) theories of gravity~\cite{Bekenstein2004}.

\printbibliography

\end{document}


with the .bib file:

@string{AJ="The Astrophysical Journal"}
@string{PRD="Physical Review D"}

@set{Milgrom1983set,
entryset =  { Milgrom1983-1, Milgrom1983-2 }
}

@article{Milgrom1983-1,
entryset =  { Milgrom1983set },
author =    { M. Milgrom },
title =     { A Modification of the Newtonian dynamics as a possible alternative to the hidden mass hypothesis },
journaltitle =  AJ,
year =      { 1983 },
volume =    { 270 },
pages =     { 365 }
}

@article{Milgrom1983-2,
entryset =  { Milgrom1983set },
author =    { \\ },
title =     { A Modification of the Newtonian dynamics: Implications for galaxies },
journaltitle =  AJ,
year =      { 1983 },
volume =    { 270 },
pages =     { 371 }
}

@article{Bekenstein2004,
author =    { J. D. Bekenstein },
title =     { Relativistic gravitation theory for the MOND paradigm },
journaltitle =  PRD,
year =      { 2004 },
volume =    { 70 },
number =    { 08 },
pages =     { 083509 }
}


There are two macros, setpageref for backrefs in @sets and pageref for all other types. They look very different save for one line where they differ by a [parens] in the optional argument to \printtext. The simple line

\renewbibmacro*{setpageref}{\usebibmacro{pageref}}


should be enough to make the two macros behave the same. (I have no idea why the two formats are different...)

You can get a new line before the backreferences with

\renewcommand*{\bibpagerefpunct}{\newline}


@sets don't use \bibpagerefpunct by default, so we have to modify the driver to also use \bibpagerefpunct.

\DeclareBibliographyDriver{set}{%
\entryset{}{}%
\setunit{\bibpagerefpunct}%
\usebibmacro{setpageref}%
\finentry}

• That is great, thanks a lot! As usual, so simple yet not found after so much time spent on it. Anyway, do you have an idea to put it on the next line as well? Thanks again, – Thomas Jul 4 '16 at 16:38
• @Thomas Check the edit, please. – moewe Jul 4 '16 at 16:42
• Awesome! Would you mind explaining it quickly? I understand the first line but not the \Declare... Also, what if I'm picky and ultimately I'd like to have the backrefs on a new line for sets only, but not for single entries? – Thomas Jul 4 '16 at 16:52
• Actually managed to do it: replace \renewcommand*{\bibpagerefpunct}{\newline} \DeclareBibliographyDriver{set}{% \entryset{}{}% \setunit{\bibpagerefpunct}% \usebibmacro{setpageref}% \finentry} with \DeclareBibliographyDriver{set}{% \entryset{}{}% \setunit{\newline}% \usebibmacro{setpageref}% \finentry} Thanks again :) – Thomas Jul 4 '16 at 17:48