1

xref with biblatex-dw works fine when more than two works, but it is annoying if I use it to refer only one article from a collection/book, because the bibliography shows two entries: one (incomplete) for the article and another for the collection/book.

Pages 13–14 of the biblatex-dw manual states that the mincrossrefs is set to 1 to avoid incomplete information. In other words, using xref implies printing the parent entry, even when there is only one child entry.

So, my question: how can I produce a stand-alone bibliographic entry for a single @incollection?

In the following MWE, the expected result is: one entry for the Hobsbawm article and the rest as is.

\documentclass[12pt]{article}
\begin{filecontents}{\jobname.bib}
@inbook{Hobsbawm2011a1,
    author = {Hobsbawm, Eric},
    title = {On the \emph{Communist Manifesto}},
    pages = {101--120},
    xref = {Hobsbawm2011a},
}
@book{Hobsbawm2011a,
    author = {Hobsbawm, Eric},
    title = {How to Change the World. Reflections on Marx and Marxism},
    shorttitle = {How to Change the World},
    publisher = {Yale},
    address = {New Haven/London},
    year = {2011},
}
@collection{Cowling2002,
    booktitle = {Marx's \emph{Eighteenth Brumaire}. (Post)modern Interpretations},
    title = {Marx's \emph{Eighteenth Brumaire}. (Post){\-}modern Interpretations},
    shorttitle = {Marx's \emph{Eighteenth Brumaire}},
    editor = {Cowling, Mark and Martin, James},
    address = {London, Sterling/\textsc{va}},
    publisher = {Pluto},
    year = {2002}
}
@incollection{Jessop2002,
    author = {Bob Jessop},
    title = {The Political Scene and the Politics of Representation: Periodising Class Struggle and the State in the \emph{Eighteenth Brumaire}},
    shorttitle = {The Political Scene and the Politics of Representation},
    pages = {179--194},
    xref = {Cowling2002}
}
@incollection{Martin2002,
    author = {Martin, James},
    title = {Performing Politics: Class, Ideology and Discourse in Marx's  \emph{Eighteenth Brumaire}},
    shorttitle = {Performing Politics},
    pages = {129--142},
    xref = {Cowling2002}
}
\end{filecontents}
\usepackage[backend=biber,
style=authortitle-dw,
%firstfull=true,
xref=true,
]{biblatex}
\addbibresource{\jobname}

\begin{document}
\cite{Hobsbawm2011a1}

\cite{Martin2002}

\cite{Jessop2002}

\printbibliography

\end{document}

MWE. biblatex-dw with @incollection xref

0

1 Answer 1

3

The xref field is, by design, such that the child entry will never inherit data from the parent. The alternative is crossref on which xref is based. (The primary difference being precisely the inheritance one.)

So you could do this:

\documentclass[12pt]{article}
\begin{filecontents}{\jobname.bib}
@inbook{Hobsbawm2011a1,
    author = {Hobsbawm, Eric},
    title = {On the {\mkbibemph{Communist Manifesto}}},
    pages = {101--120},
    crossref = {Hobsbawm2011a},
}
@book{Hobsbawm2011a,
    author = {Hobsbawm, Eric},
    title = {How to Change the World. Reflections on Marx and Marxism},
    shorttitle = {How to Change the World},
    publisher = {Yale},
    address = {New Haven/London},
    year = {2011},
}
@collection{Cowling2002,
    booktitle = {Marx's \emph{Eighteenth Brumaire}. (Post)modern Interpretations},
    title = {Marx's \emph{Eighteenth Brumaire}. (Post){\-}modern Interpretations},
    shorttitle = {Marx's \emph{Eighteenth Brumaire}},
    editor = {Cowling, Mark and Martin, James},
    address = {London, Sterling/\textsc{va}},
    publisher = {Pluto},
    year = {2002}
}
@incollection{Jessop2002,
    author = {Bob Jessop},
    title = {The Political Scene and the Politics of Representation: Periodising Class Struggle and the State in the \emph{Eighteenth Brumaire}},
    shorttitle = {The Political Scene and the Politics of Representation},
    pages = {179--194},
    xref = {Cowling2002}
}
@incollection{Martin2002,
    author = {Martin, James},
    title = {Performing Politics: Class, Ideology and Discourse in Marx's  \emph{Eighteenth Brumaire}},
    shorttitle = {Performing Politics},
    pages = {129--142},
    xref = {Cowling2002}
}
\end{filecontents}
\usepackage[backend=biber,
style=authortitle-dw,
mincrossrefs=2,
xref=true,
]{biblatex}
\addbibresource{\jobname}

\begin{document}
\cite{Hobsbawm2011a1}

\cite{Martin2002}

\cite{Jessop2002}

\printbibliography

\end{document}

one or many

The disadvantage of this is that if you change all of your xref to crossref, the information about a collection will be repeated for every entry.

This is the one big disadvantage I'm aware of of using biblatex rather than traditional BibTeX. Not only could BibTeX do this. It 'just works' with BibTeX in the way you'd intuitively expect.

In contrast, if there is a good biblatex solution, I've not yet found it. For some reason, it just seems to have been designed to do what is almost always going to be the Wrong Thing. I have no idea whatsoever why. Worse still, the Wrong Thing is not just the default. It appears the be the only possible setting. (No doubt I am merely blind to the advantages of its approach. But there we go. Blind I am.)

4
  • Should not this be a feature request then? (The fact that it should behave the right way)
    – pluton
    Feb 23, 2015 at 3:12
  • @pluton But it seems to be by design. This is a break with the BibTeX approach. See the comments following this answer. [Note that the answer is mine and I do not recommend it!]. None of the hacks for this are in any way satisfactory.... The most authoritative answer (in that it sources GitHub) is maybe this one but it requires modifying all affected drivers (and that will be style-specific, too).
    – cfr
    Feb 23, 2015 at 3:24
  • It is a pity that biblatex doesn't provide an automatic solution to this issue. The strange thing: using 'firstfull=true' (only xref, no crossref) renders —as expected— all data in the first citation while it prints only the basic data on the second.
    – Ludenticus
    Feb 23, 2015 at 14:14
  • @Ludenticus You could file a feature request asking for an option enabling this behaviour, based on the \inentryinbib switch. At least for the standard styles. (I don't know if it would be possible to implement a general solution, but if the standard styles supported it, other styles might follow suit.)
    – cfr
    Feb 23, 2015 at 17:10

You must log in to answer this question.

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