Quero redefinir o Driver de Bibliografia para um tipo de entrada específico (bookinbook) de modo a conter o nome do tradutor, onde o tradutor pode diferir para vários trabalhos dentro do livro pai (não herdado da entrada pai). Então, quero que minha entrada seja parecida com a seguinte:
Platão:Menon. Übers. de Friedrich Schleiermacher. Em:TrabalhoBd. II, pp. 509--599.
--Protágoras. Übers. de Dietrich Kurz. Em:TrabalhoBd. II, S. 83--217.
Eu consigo tudo, exceto a parte "Übers. von" (ed. by), usando o seguinte 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}}
em combinação com este \newbibmacro:
\newbibmacro{crossref:labelbookinbook}{%
\entrydata{\strfield{crossref}}
{\printfield[title]{labeltitle}}
\setunit*{\addspace}
\printfield{volume}}
Mas simplesmente não consigo descobrir o que e onde inserir para obter o item "traduzido por" logo após o título. Portanto, qualquer ajuda seria muito apreciada!
Responder1
Adicione a macro \usebibmacro{bytranslator+others}
depois \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}}
Observe que tecnicamente for biblatex
, translator
for @in...
entradas (e também @bookinbook
) refere-se ao tradutor do trabalho geral (o pai @book
), então o que fazemos aqui é um pouco exagerado.