1

Please consider the following entry for a work of reference:

@reference{rlw,
 publisher = {{De Gruyter}},
 title = {Reallexikon der deutschen Literaturwissenschaft},
 subtitle = {Neubearbeitung des Reallexikons der deutschen Literaturgeschichte},
 shorttitle = {RLW},
 year = {2003},
 location = {Berlin/New York},
 edition = {3 Bde. 3., neubearb. Aufl. (1997-2003). Bd. I (1997) hrsg. v. Klaus Weimar u. a. Bd. II (2000) hrsg. v. Harald Fricke u. a. Bd. III (2003) hrsg. v. Jan-Dirk M{\"u}ller u. a.},
 keywords = {lex}
}

This is a very hacky way to present a three volume work, and I needed to fiddle with the bibdriver to display it "properly"

\DeclareBibliographyDriver{reference}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
    \iffieldundef{shorttitle}
        {}%
        {\printfield{shorttitle} =}%
    \iffieldundef{editor}
        {}{
        \usebibmacro{editor+others}%
        \setunit{\labelnamepunct}\newblock
        }
  \usebibmacro{maintitle+title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

The result looks like this: Example of bibliography entries

The MLLK entry is just ornamental to show a "properly" defined entry alongside the entry in question. And never mind the leading abbreviation and equals sign, that has to do with another question of mine. What I was wondering is the following: - To have everything watertight I would need to mak a bib-entry for every volume so I could specify each volumes editor(s) separately - That would bloat my Bibliography quite a bit, because in this case I would have 3 different entries - Although being different, these three entries still needed to be summed up under one abbreviation, because one would refer to the whole work as "RLW" and not one single volume - Which volume is cited speciffically is given in the child-entry (working with crossref)

Is there a way to specify a work as @reference (as I did with the custom display), but have three different entries (that ideally can be crossreffed, and themselves crossref the @ThisIsAnEntryForTheWholeShelfInTheLibraryTheseBooksRestOn) appear directly under (preferably indented) this master-entry? I don't so much worry about the crossref-part for the individual articles to individual volumes, that is working already. I'm rather looking for a nice way to list seperate volumes of one work under its "master entry". Quick mockup in Word: Mockup for desired result

1
  • 1
    You want the related and relatedtype fields. Have a look at the knuth:ct:related entry in biblatex-examples.bib, which lays things out similar to what you want. You'd need to customise the related:multivolume macro to get things looking exactly like what you want, as well as further tweaking your reference driver. The only caveat is that you would need to switch away from bibtex8 to biber. This is a good idea anyway. bibtex only supports a subset of features from biblatex. Sep 2 '18 at 5:49
1

This should get you started, but will likely need further customisation.

I've used the related field and relatedtype={multivolume} to set up the relationship between the master multivolume entry and each volume. I've redefine the related:multivolume macro to print each volume in the format you want.

I've also made a few other changes to your reference driver so that you don't have to put everything in the edition field.

And I modified the list delimiter for the location, so you can use the correct location = {Berlin and New York} rather than the incorrect location = {Berlin/New York}. The extra braces around De Gruyter are not necessary. And I've used the biblatex date field which allows for date ranges to be properly specified.

Note: You must you biber, not bibtex(8) for this example to work. Specifically related entries are not supported by bibtex.

MWE

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@mvreference{rlw,
 title = {Reallexikon der deutschen Literaturwissenschaft},
 subtitle = {Neubearbeitung des Reallexikons der deutschen Literaturgeschichte},
 shorttitle = {RLW},
 volumes = {3},
 edition = {3\addcomma\space\bibstring{revision}\space\bibstring{edition}},
 location = {Berlin and New York},
 publisher = {De Gruyter},
 date = {1997/2003},
 keywords = {lex},
 related = {rlw:1,rlw:2,rlw:3},
 relatedtype = {multivolume}
}
@reference{rlw:1,
  title = {A--G},
  editor = {Weiman, Klaus and others},
  volume = {I},
  date = {1997},
  crossref = {rlw}
}
@reference{rlw:2,
  title = {H--O},
  editor = {Fricke, Harald and others},
  volume = {II},
  date = {2000},
  crossref = {rlw}
}
@reference{rlw:3,
  title = {P--Z},
  editor = {M\"uller, Jan-Dirk and others},
  volume = {III},
  date = {2003},
  crossref = {rlw}
}
\end{filecontents}

\usepackage[ngerman]{babel}
\usepackage{csquotes}

\usepackage[style=authoryear,sorting=nyt,mincrossrefs=1]{biblatex}
\addbibresource{\jobname.bib}

\DeclareDelimFormat{multilistdelim}{\slash}
\DeclareDelimFormat{finallistdelim}{\slash}

\DeclareBibliographyDriver{reference}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \renewbibmacro*{date}{\printdate}% ← treat dates specially for references
  \iffieldundef{shorttitle}
    {}%
    {\printfield{shorttitle}\printtext{ = }}%
  \iffieldundef{editor}
    {}
    {\usebibmacro{editor+others}%
     \setunit{\labelnamepunct}\newblock}%
  \usebibmacro{maintitle+title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit
  \printfield{edition}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\newbibmacro*{publisher+location+date}{%
  \printtext[parens]{\usebibmacro{date}}%
  \setunit*{\addspace}%
  \printlist{location}%
  \iflistundef{publisher}
    {\setunit*{\addcomma\space}}
    {\setunit*{\addcolon\space}}%
  \printlist{publisher}%
  \newunit}

\renewbibmacro*{related:multivolume}[1]{%
  \entrydata*{#1}{%
    \printtext{%
      \printfield{volume}%
      \printfield{part}}%
    \setunit*{\space}%
    \printtext[parens]{\printdate}%
    \setunit*{\space}%
    \printtext[parens]{\usebibmacro{title}}%
    \setunit*{\addspace}%
    \ifboolexpr{
      test {\ifnamesequal{author}{savedauthor}}
      or
      test {\ifnameundef{author}}
    }
      {}
      {\usebibmacro{bytypestrg}{author}{author}%
       \setunit{\addspace}%
       \printnames[byauthor]{author}
       \newunit\newblock}%
    \ifboolexpr{
      test {\ifnamesequal{editor}{savededitor}}
      or
      test {\ifnameundef{editor}}
    }
      {}
      {\usebibmacro{byeditor+others}%
       \newunit\newblock}}}

\NewBibliographyString{revision}

\DefineBibliographyStrings{ngerman}{%
  byeditor = {hrsg\adddotspace v\adddot},
  revision = {neubearb\adddot},
}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

enter image description here

1
  • It works, thank you! (switching to biber was overdue anyway...) Sep 2 '18 at 12:56

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.