1

This might be tricky and I am sure there is a better solution than the one I came up with (or actually didn’t come up with).

I have a book which consists of a text-volume and a picture-volume, so I have three entries (the fourth entry is only for testing to have a label with a letter). But with @MvBook I only have the main-entry in my bibliography and the child-entries related to it.

What I would like to do is citing e.g. the text-volume in respect to the label of the parent-entry: In this case MOR 1893a|1 or MOR 1893a|1, 123. But somehow the page-sequence is repeated.

Happy to take any solution getting the result [shortauthor of child-entry] [labelyear of the parent-entry]|[volume of child-entry], [page]

\documentclass[ngerman]{scrartcl}
\usepackage{filecontents,babel}
\begin{filecontents}{\jobname.bib}
@mvBook{MOR-0,
  author        = {Ohnefalsch-Richter, Max},
  shortauthor = {MOR},
  year          = {1893},
  title     = {Kypros, die Bibel und Homer},
  volumes        = {2},
  publisher     = {A. Asher und Co.},
  location      = {Berlin},
  related = {MOR-1,MOR-2},
  relatedtype = {multivolume},
}

@Book{MOR-1,
  author        = {Ohnefalsch-Richter, Max},
  title         = {Text},
  volume        = {1},
  shortauthor = {MOR},
  crossref = {MOR-0},
  shorthand = {\cite{MOR-0}|1},
  options = {skipbib,skiplab}
}

@Book{MOR-2,
  author        = {Ohnefalsch-Richter, Max},
  title         = {Tafeln},
  volume        = {2},
shortauthor = {MOR},
  shorthand = {\cite{MOR-0}|2},
  crossref = {MOR-0},
  options = {skipbib,skiplab}
}

@mvBook{MOR-X,
  author        = {Ohnefalsch-Richter, Max},
  shortauthor = {MOR},
  year          = {1893},
  title     = {Kypros, the Bibel and Homer},
}

\end{filecontents}

\usepackage[           
  backend=biber,
  style=archaeologie,
]{biblatex} 
\addbibresource{\jobname.bib}

\DeclareDataInheritance{mvbook}{book}{
  \noinherit{year}
  \inherit{label}{shorthand}
}

\begin{document}
\cite{MOR-0}\par
\cite[123]{MOR-1}\par
\cite[456]{MOR-2}\par
\cite{MOR-X}
\printbibliography

\end{document}

enter image description here

4
  • 1
    Are you looking for something like \citeauthor rather than \cite? Or \citeyear or \citefield{shortauthor} or whatever? \cite is going to try to give you a complete citation. Also, you say you have 3 entries, but you have 4. Are you sure it isn't 'Bible' rather than 'Bibel'? And I am not clear what you want in your bibliography: you say you 'only' have the parent entry and its children. But what else is there?
    – cfr
    Dec 2 '17 at 21:38
  • @cfr sorry, forgot to mention that the fourth entry is just to have label with a letter. With citeauthor or \citeyear I would not get the label with the lettered year (e.g. 1893a) I would only get e.g. 1893 [that’s why I included the fourth entry].
    – LukasCB
    Dec 2 '17 at 21:39
  • Yes, but you can cite just the label, which is what you want, in that case. \cite will do the lot - pre-note, post-note and all. You just want to pick out the particular bit you need. Thanks for the explanation re. the additional entry. That makes sense now.
    – cfr
    Dec 2 '17 at 21:59
  • \citelabel as with shorthand = {\citelabel{MOR-0}|2} will give me the bibtexkey of the parent-entry, not the appended year with letter?!
    – LukasCB
    Dec 2 '17 at 22:06
1

This is not very elegant, and perhaps not the best alternative, but the following builds somewhat literally your specified desired result:

shorthand = {\printnames{shortauthor}\nameyeardelim\entrydata{\thefield{crossref}}{\printlabeldateextra}|\printfield{volume}},

enter image description here

In full:

\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{filecontents,babel}
\begin{filecontents}{\jobname.bib}
@mvBook{MOR-0,
  author        = {Ohnefalsch-Richter, Max},
  shortauthor = {MOR},
  year          = {1893},
  title     = {Kypros, die Bibel und Homer},
  volumes        = {2},
  publisher     = {A. Asher und Co.},
  location      = {Berlin},
  related = {MOR-1,MOR-2},
  relatedtype = {multivolume},
}

@Book{MOR-1,
  author        = {Ohnefalsch-Richter, Max},
  title         = {Text},
  volume        = {1},
  shortauthor = {MOR},
  crossref = {MOR-0},
  shorthand = {\printnames{shortauthor}\nameyeardelim\entrydata{\thefield{crossref}}{\printlabeldateextra}|\printfield{volume}},
  options = {skipbib,skiplab}
}

@Book{MOR-2,
  author        = {Ohnefalsch-Richter, Max},
  title         = {Tafeln},
  volume        = {2},
shortauthor = {MOR},
  shorthand = {\printnames{shortauthor}\nameyeardelim\entrydata{\thefield{crossref}}{\printlabeldateextra}|\printfield{volume}},
  crossref = {MOR-0},
  options = {skipbib,skiplab}
}

@mvBook{MOR-X,
  author        = {Ohnefalsch-Richter, Max},
  shortauthor = {MOR},
  year          = {1893},
  title     = {Kypros, the Bibel and Homer},
}

\end{filecontents}

\usepackage[           
  backend=biber,
  style=archaeologie,
]{biblatex} 
\addbibresource{\jobname.bib}

\DeclareDataInheritance{mvbook}{book}{
  \noinherit{year}
  \inherit{label}{shorthand}
}

\begin{document}
\cite{MOR-0}\par
\cite[123]{MOR-1}\par
\cite[456]{MOR-2}\par
\cite{MOR-X}
\printbibliography

\end{document}
2
  • that works very fine the result is as expected and wanted. I am wondering if there is a smoother way?!
    – LukasCB
    Dec 3 '17 at 8:08
  • @LukasCB, well, the only thing that really needs to be supplied automatically is the dateextra part. I tried to avoid supplying info in duplicity, but you could well go with shorthand = {MOR \entrydata{MOR-0}{\printlabeldateextra}|1}. Still, as I said, someone might come up with something better/more elegant.
    – gusbrs
    Dec 3 '17 at 10:15

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.