3

I want to redefine the Bibliography Driver for a specific entry type (bookinbook) so as to contain the name of the translator, where the translator may differ for various works within the parent book (not inherited from the parent entry). So, I want my entry to look something like the following:

Platon: Menon. Übers. von Friedrich Schleiermacher. In: Werke Bd. II, S. 509--599.

-- Protagoras. Übers. von Dietrich Kurz. In: Werke Bd. II, S. 83--217.

I achieve everything apart from the "Übers. von" (ed. by) part by using the following Driver:

\DeclareBibliographyDriver{bookinbook}{%
    \usebibmacro{bibindex}%
    \usebibmacro{begentry}%
    \usebibmacro{author/translator+others}%
    \setunit{\labelnamepunct}\newblock
    \usebibmacro{title}%
    \newunit
    \printlist{language}%
    \newunit\newblock
    \usebibmacro{byauthor}%
    \newunit\newblock
    \usebibmacro{in:}%
    \iffieldundef{crossref}
    {\usebibmacro{crossref:full}}
    {\usebibmacro{crossref:labelbookinbook}}
    \newunit\newblock
    \usebibmacro{chapter+pages}%
    \iffieldundef{crossref}
    {\usebibmacro{crossref:extrainfo}}
    {}
    \setunit{\bibpagerefpunct}\newblock
    \usebibmacro{pageref}%
    \usebibmacro{finentry}}

in combination with this \newbibmacro:

\newbibmacro{crossref:labelbookinbook}{%
    \entrydata{\strfield{crossref}}
    {\printfield[title]{labeltitle}}
    \setunit*{\addspace}
    \printfield{volume}}

But I just can't figure out what and where to insert to get the "translated by" thing right after the title. So any help would be much appreciated!

3
  • 1
    Please provide a complete minimal working example we can compile. There is not always a generic answer, as you seem to be assuming. That is, this may well not be enough information.
    – cfr
    Jul 8, 2017 at 23:36
  • 1
    Looking through the biblatex sources, there are separate \bibmacro definitions for author and translator. So, it would seem that you can replace your author/translator+others with your customized versions of the separate macros. Jul 8, 2017 at 23:43
  • With questions like this it is almost always a good idea to also provide an MWE. Since you have customised the style that will allow us to test solutions with your set-up and make sure that things really work for you.
    – moewe
    Jul 9, 2017 at 5:48

1 Answer 1

3

Add the macro \usebibmacro{bytranslator+others} after \usebibmacro{byauthor}.

\DeclareBibliographyDriver{bookinbook}{%
    \usebibmacro{bibindex}%
    \usebibmacro{begentry}%
    \usebibmacro{author/translator+others}%
    \setunit{\labelnamepunct}\newblock
    \usebibmacro{title}%
    \newunit
    \printlist{language}%
    \newunit\newblock
    \usebibmacro{byauthor}%
    \newunit\newblock
    \usebibmacro{bytranslator+others}%
    \newunit\newblock
    \usebibmacro{in:}%
    \iffieldundef{crossref}
      {\usebibmacro{crossref:full}}
      {\usebibmacro{crossref:labelbookinbook}}%
    \newunit\newblock
    \usebibmacro{chapter+pages}%
    \iffieldundef{crossref}
      {\usebibmacro{crossref:extrainfo}}
      {}%
    \setunit{\bibpagerefpunct}\newblock
    \usebibmacro{pageref}%
    \usebibmacro{finentry}}

Note that technically for biblatex, translator for @in... entries (and also @bookinbook) refers to the translator of the overall work (the parent @book), so what we do here is a bit of a stretch.

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.