4

So, question completely changed because the comments got me on the right track, and updated again (the example is a bit harder now, I think).
But maybe I'm not using MVBook correctly ?

Here we go: In the case of a multi-volume book with volumes that have the same titles to which just a volume number is added, I'm looking for an elegant solution. The standard cite commands do not seem to print the volume number, leading to ambiguous citations if the titles of the volumes are the same.

\documentclass{memoir}
\usepackage[T1]{fontenc}

\makeatletter
%% Biblatex %%
\usepackage[style=verbose-trad2,%
related=true,%
backend=biber]%
{biblatex}% 


\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}

@MVBook{Feynman_Lectures,
  author =   {Richard P. Feynman AND Robert B. Leighton AND Matthew Sands},
  title =    {The Feynman lectures on physics},
  publisher =    {Addison-Wesley Publishing Company},
  volumes = {3},
  year =     1977,
  address =      {Reading, MA.}
}

@Book{Feynman_LecturesI,
  title =    {The Feynman lectures on physics},
  subtitle = {mainly mechanics, radiation and heat},
  volume = {1},
  crossref = {Feynman_Lectures}
}

@Book{Feynman_LecturesII,
  title =    {The Feynman lectures on physics},
  subtitle = {mainly electromagnetism and matter},
  volume = {2},
  crossref = {Feynman_Lectures}
}

\end{filecontents}
\addbibresource{\jobname.bib}

\makeatother


\begin{document}

\title{Titre}


\author{A. Teur}

\maketitle

First volume\footcite{Feynman_LecturesI}

Second volume\footcite{Feynman_LecturesII}

And the first again\footcite{Feynman_LecturesI}


\end{document}

The third citation reads :

Idem, The Feynman lectures on physics, op. cit.

Which is clearly not what it should be. I think one should force citations of books that are part of a MVBook to have the volume number printed each time the title gets printed, but only if the overall title and the volume title are the same.

I could add a "I", "II", etc to the title field of each of the volumes, but this looks redundant in the first citation of a volume :

Richard P. Feynman, Robert B. Leighton, and Matthew Sands. The Feynman lectures on physics. Vol. 1: The Feynman lectures on physics I. mainly mechanics, radiation and heat. 3 vols. Reading, MA.: Addison-Wesley Publishing Company, 1977.

9
  • 1
    @book is for single-volume books specifically. In particular, it expects a title field. However, yours does not have such a field so there is nothing to be printed for the title and that is what you get. Note that your example is much more complex than it needs to be. For one thing, \citetitle is enough to show that it has nothing to do with using footnotes. Or babel or perpage or memoir etc.
    – cfr
    Commented Apr 16, 2015 at 1:33
  • Though you might feel that there is some redundancy there, I would urge you to add title = {Nietzsche I} to MH_NietzscheI, @books need a title field to function properly.
    – moewe
    Commented Apr 16, 2015 at 7:05
  • There is an ad-hoc solution to your problem (by redefining some internal macros), but I doubt that would be a good idea. Note that because you use crossref in MH_NietzscheI, you can make the entry more compact by avoiding redundancies: @Book{MH_NietzscheI, crossref = {MH_Nietzsche}, volume = {1}, title = {Nietzsche I}, } should be enough (modulo line breaks).
    – moewe
    Commented Apr 16, 2015 at 7:13
  • Yes, indeed, it seems I didn't get it quite right, and I shouldn't have called the working example minimal. But you've got me on the right track; it has nothing to do with footcites; I was probably trying to avoid redundancies when I made this bib entry a long time ago. Now, if I just add title = {Nietzsche}, it doesn't create a redundancy in the first cite command, the reason I would like to avoid title = {Nietzsche I} . However, maybe I could force biblatex to print the volume as well when it prints the title... let's see if I can change this macro...
    – Jos
    Commented Apr 16, 2015 at 7:36
  • 1
    One can certainly change the macros (the relevant macro is cite:title, ll. 144-148 in verbose-trad2.cbx) to include the volume, but I really feel that this solution has an ad-hoc character.
    – moewe
    Commented Apr 16, 2015 at 8:24

1 Answer 1

3

The relevant macro for short subsequent citations in verbose-trad2 is cite:title. We just modify it to include the volume if maintitle and title coincide.

\renewbibmacro*{cite:title}{%
  \printtext[bibhyperlink]{%
    \printfield[citetitle]{labeltitle}%
    \iffieldsequal{maintitle}{title}
      {\setunit{\addcomma\space}%
       \printfield{volume}}
      {}
    \setunit{\nametitledelim}%
    \bibstring[\mkibid]{opcit}}}

MWE

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[style=verbose-trad2,
backend=biber]
{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}

@MVBook{Feynman_Lectures,
  author =   {Richard P. Feynman AND Robert B. Leighton AND Matthew Sands},
  title =    {The Feynman lectures on physics},
  publisher =    {Addison-Wesley Publishing Company},
  volumes = {3},
  year =     1977,
  address =      {Reading, MA.}
}

@Book{Feynman_LecturesI,
  title =    {The Feynman lectures on physics},
  subtitle = {mainly mechanics, radiation and heat},
  volume = {1},
  crossref = {Feynman_Lectures}
}

@Book{Feynman_LecturesII,
  title =    {The Feynman lectures on physics},
  subtitle = {mainly electromagnetism and matter},
  volume = {2},
  crossref = {Feynman_Lectures}
}

\end{filecontents*}
\addbibresource{\jobname.bib}

\renewbibmacro*{cite:title}{%
  \printtext[bibhyperlink]{%
    \printfield[citetitle]{labeltitle}%
    \iffieldsequal{maintitle}{title}
      {\setunit{\addcomma\space}%
       \printfield{volume}}
      {}
    \setunit{\nametitledelim}%
    \bibstring[\mkibid]{opcit}}}

\begin{document}
First volume\footcite{Feynman_LecturesI}.

Second volume\footcite{Feynman_LecturesII}.

And the first again\footcite{Feynman_LecturesI}.
\end{document}

enter image description here

You must log in to answer this question.

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