biblatex: relatedtype={bytranslator} não funciona como esperado com @article e @incollection

biblatex: relatedtype={bytranslator} não funciona como esperado com @article e @incollection

Ontem eu pergunteicomo incluir a tradução de uma obra na bibliografia na forma "traduzida por... como...". Disseram-me para usar os campos related={<key>}e relatedtype={bytranslator}. Isso funcionou muito bem para meus propósitos, no início. Mas então percebi que funciona corretamente apenas para @book, não para @articleou @incollection. Tomemos, por exemplo, o seguinte @incollectione sua tradução, que é @article:

Derrida, Jacques (2001). “Uma certa possibilidade impossível de dire l'événement”. Em:Dire l'événement, é possível?Paris: L'Harmattan, páginas 79–112.

Derrida, Jacques (2007). “Uma certa possibilidade impossível de dizer o acontecimento”. Traduzido por Gila Walker. Em:Consulta Crítica33.2, páginas 441–461.

A combinação dos dois relatedtype={bytranslator}produz a seguinte entrada incompleta:

Derrida, Jacques (2001). “Uma certa possibilidade impossível de dire l'événement”. Em:Dire l'événement, é possível?Paris: L'Harmattan, páginas 79–112. Traduzido por Gila Walker como “Uma certa possibilidade impossível de dizer o acontecimento” (2007).

Faltam as informações sobre a revista e o número em que apareceu a tradução. Ou seja, a entrada deve ser (eu acho):

Derrida, Jacques (2001). “Uma certa possibilidade impossível de dire l'événement”. Em:Dire l'événement, é possível?Paris: L'Harmattan, páginas 79–112. Traduzido por Gila Walker como “Uma certa possibilidade impossível de dizer o acontecimento”. Em:Consulta Crítica 33.2 (2007), páginas 441–461.

Aqui está um exemplo mínimo:

\documentclass[12pt]{article}

\usepackage{filecontents}

\begin{filecontents}{biblio.bib}
@incollection{Derrida2001,
author = {Derrida, Jacques},
title = {Une certaine possibilit\'{e} impossible de dire l'\'{e}v\'{e}nement},
location = {Paris},
publisher = {L'Harmattan},
year = {2001},
pages = {79-112},
booktitle = {Dire l'\'{e}v\'{e}nement, est-ce possible?},
related = {Derrida2007},
relatedtype = {bytranslator},
}
@article{Derrida2007,
author = {Derrida, Jacques},
translator = {Walker, Gila},
title = {A certain impossible possibility of saying the event},
journaltitle = {Critical Inquiry},
volume = {33},
number = {2},
year = {2007},
pages = {441-461},
}

\end{filecontents}

\usepackage[style=authoryear,abbreviate=false]{biblatex}
\addbibresource{biblio.bib}

\begin{document}

Citing a text by \textcite{Derrida2001}.

\printbibliography

\end{document}

Quando troco os campos translator, relatede relatedtype, (incorretamente) fazendo a @incollectiontradução do @article, ocorre um truncamento semelhante. Em vez de

Derrida, Jacques (2007). “Uma certa possibilidade impossível de dizer o acontecimento”. Em:Consulta Crítica33.2, páginas 441–461. Traduzido por Gila Walker como “Une suree possibilité impossível de dire l'événement”. Em:Dire l'événement, é possível?(Paris: L’Harmattan, 2001).

eu recebo

Derrida, Jacques (2007). “Uma certa possibilidade impossível de dizer o acontecimento”. Em:Consulta Crítica33.2, páginas 441–461. Traduzido por Gila Walker como “Une suree possibilité impossível de dire l'événement” (Paris: L'Harmattan, 2001).

@incollectionOu seja, falta o título do livro em que apareceu.

Isso é um inseto? Se sim, existe uma maneira de contornar isso?

Agradeço antecipadamente por sua ajuda!

Responder1

A macro padrão related:bytranslatorfunciona bem apenas para @bookse tipos de entrada semelhantes (eu acho). Para que funcione para @in...os tipos, precisamos modificar um pouco a macro.

Para cada um desses tipos de entrada que precisam de mais saída, verificamos esse tipo e imprimimos as informações desejadas (o código para isso é retirado de standard.bbx).

\makeatletter
\newbibmacro*{related:bytranslator}[1]{%
  \entrydata{#1}{%
    \renewbibmacro*{name:hook}[1]{%
      \ifnumequal{\value{listcount}}{1}
        {\begingroup
         \mkrelatedstring%
         \lbx@initnamehook{#1}%
         \endgroup}
        {}}%
    \printnames[bytranslator]{translator}%
    \clearname{translator}%
    \setunit*{\addspace\bibstring[\mkrelatedstring]{astitle}\space}%
    \usebibmacro{title}%
    \ifentrytype{article}
      {\usebibmacro{in:}%
       \usebibmacro{journal+issuetitle}}
      {}
    \ifentrytype{inbook}
      {\usebibmacro{in:}%
       \usebibmacro{bybookauthor}%
       \newunit\newblock
       \usebibmacro{maintitle+booktitle}%
       \newunit\newblock
       \usebibmacro{byeditor+others}%
       \newunit\newblock
       \printfield{edition}}
      {}
    \ifentrytype{incollection}
      {\usebibmacro{in:}%
       \usebibmacro{maintitle+booktitle}%
       \newunit\newblock
       \usebibmacro{byeditor+others}%
       \newunit\newblock
       \printfield{edition}%
       \newunit
       \iffieldundef{maintitle}
         {\printfield{volume}%
          \printfield{part}}
         {}}
      {}
    \ifentrytype{inproceedings}
      {\usebibmacro{in:}%
       \usebibmacro{maintitle+booktitle}%
       \newunit\newblock
       \usebibmacro{event+venue+date}%
       \newunit\newblock
       \usebibmacro{byeditor+others}%
       \newunit\newblock
       \iffieldundef{maintitle}
         {\printfield{volume}%
          \printfield{part}}
         {}}
      {}
    \setunit{\addspace}%
    \printtext[parens]{%
      \printlist{location}%
      \iflistundef{publisher}
        {\setunit*{\addcomma\space}}
        {\setunit*{\addcolon\space}}%
      \printlist{publisher}%
      \setunit*{\addcomma\space}%
      \printdate}
      \newunit\newblock
      \printfield{note}%
      \newunit\newblock
      \printfield{chapter}%
      \setunit{\bibpagespunct}%
      \printfield{pages}}}
\makeatother

MWE

\documentclass[12pt]{article}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@incollection{Derrida2001,
author = {Derrida, Jacques},
title = {Une certaine possibilit\'{e} impossible de dire l'\'{e}v\'{e}nement},
location = {Paris},
publisher = {L'Harmattan},
year = {2001},
pages = {79-112},
booktitle = {Dire l'\'{e}v\'{e}nement, est-ce possible?},
related = {Derrida2007},
relatedtype = {bytranslator},
}
@article{Derrida2007,
author = {Derrida, Jacques},
title = {A certain impossible possibility of saying the event},
journaltitle = {Critical Inquiry},
translator = {Walker, Gila},
volume = {33},
number = {2},
year = {2007},
pages = {441-461},
}

\end{filecontents}

\usepackage[style=authoryear,abbreviate=false]{biblatex}
\addbibresource{\jobname.bib}
\makeatletter
\newbibmacro*{related:bytranslator}[1]{%
  \entrydata{#1}{%
    \renewbibmacro*{name:hook}[1]{%
      \ifnumequal{\value{listcount}}{1}
        {\begingroup
         \mkrelatedstring%
         \lbx@initnamehook{#1}%
         \endgroup}
        {}}%
    \printnames[bytranslator]{translator}%
    \clearname{translator}%
    \setunit*{\addspace\bibstring[\mkrelatedstring]{astitle}\space}%
    \usebibmacro{title}%
    \ifentrytype{article}
      {\usebibmacro{in:}%
       \usebibmacro{journal+issuetitle}}
      {}
    \ifentrytype{inbook}
      {\usebibmacro{in:}%
       \usebibmacro{bybookauthor}%
       \newunit\newblock
       \usebibmacro{maintitle+booktitle}%
       \newunit\newblock
       \usebibmacro{byeditor+others}%
       \newunit\newblock
       \printfield{edition}}
      {}
    \ifentrytype{incollection}
      {\usebibmacro{in:}%
       \usebibmacro{maintitle+booktitle}%
       \newunit\newblock
       \usebibmacro{byeditor+others}%
       \newunit\newblock
       \printfield{edition}%
       \newunit
       \iffieldundef{maintitle}
         {\printfield{volume}%
          \printfield{part}}
         {}}
      {}
    \ifentrytype{inproceedings}
      {\usebibmacro{in:}%
       \usebibmacro{maintitle+booktitle}%
       \newunit\newblock
       \usebibmacro{event+venue+date}%
       \newunit\newblock
       \usebibmacro{byeditor+others}%
       \newunit\newblock
       \iffieldundef{maintitle}
         {\printfield{volume}%
          \printfield{part}}
         {}}
      {}
    \setunit{\addspace}%
    \printtext[parens]{%
      \printlist{location}%
      \iflistundef{publisher}
        {\setunit*{\addcomma\space}}
        {\setunit*{\addcolon\space}}%
      \printlist{publisher}%
      \setunit*{\addcomma\space}%
      \printdate}
      \newunit\newblock
      \printfield{note}%
      \newunit\newblock
      \printfield{chapter}%
      \setunit{\bibpagespunct}%
      \printfield{pages}}}
\makeatother
\begin{document}

Citing a text by \textcite{Derrida2001}.

\printbibliography

\end{document}

insira a descrição da imagem aqui

Isso pode não funcionar para todos os casos, portanto, pode haver algumas modificações a serem feitas em casos extremos.

informação relacionada