Personalización del controlador de bibliografía con Biblatex

Personalización del controlador de bibliografía con Biblatex

Quiero redefinir el controlador de bibliografía para un tipo de entrada específico (bookinbook) para que contenga el nombre del traductor, donde el traductor puede diferir para varias obras dentro del libro principal (no heredado de la entrada principal). Entonces, quiero que mi entrada se vea así:

Platón:menón. Supers. von Friedrich Schleiermacher. En:trabajoBd. II, S. 509--599.

--Protágoras. Supers. Von Dietrich Kurz. En:trabajoBd. II, S. 83--217.

Logro todo excepto la parte "Übers. von" (ed. by) usando el siguiente controlador:

\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}}

en combinación con este \newbibmacro:

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

Pero simplemente no puedo entender qué y dónde insertar para obtener el elemento "traducido por" justo después del título. ¡Así que cualquier ayuda sería muy apreciada!

Respuesta1

Agregue la macro \usebibmacro{bytranslator+others}después \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}}

Tenga en cuenta que técnicamente para biblatex, translatorpara @in...entradas (y también @bookinbook) se refiere al traductor del trabajo general (el padre @book), por lo que lo que hacemos aquí es un poco exagerado.

información relacionada