Ayer preguntécómo incluir la traducción de una obra en la bibliografía en la forma "traducida por... como...". Me dijeron que usara los campos related={<key>}
y relatedtype={bytranslator}
. Al principio, esto funcionó muy bien para mis propósitos. Pero luego me di cuenta de que funciona correctamente sólo para @book
, no para @article
o @incollection
. Tomemos, por ejemplo, lo siguiente @incollection
y su traducción, que es @article
:
Derrida, Jacques (2001). “Una cierta posibilidad imposible de terrible acontecimiento”. En:Dire l'événement, est-ce posible?París: L'Harmattan, páginas 79-112.
Derrida, Jacques (2007). “Una cierta posibilidad imposible de decir el acontecimiento”. Traducido por Gila Walker. En:Investigación crítica33.2, páginas 441–461.
Combinando los dos con relatedtype={bytranslator}
se produce la siguiente entrada incompleta:
Derrida, Jacques (2001). “Una cierta posibilidad imposible de terrible acontecimiento”. En:Dire l'événement, est-ce posible?París: L'Harmattan, páginas 79-112. Traducido por Gila Walker como “Una cierta posibilidad imposible de decir el acontecimiento” (2007).
Falta la información sobre la revista y el número en el que apareció la traducción. Es decir, la entrada debería decir (creo):
Derrida, Jacques (2001). “Una cierta posibilidad imposible de terrible acontecimiento”. En:Dire l'événement, est-ce posible?París: L'Harmattan, páginas 79-112. Traducido por Gila Walker como “Cierta posibilidad imposible de decir el acontecimiento”. En:Investigación crítica 33.2 (2007), páginas 441–461.
Aquí hay un ejemplo 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}
Cuando cambio los campos translator
, related
y relatedtype
, (incorrectamente) haciendo la @incollection
traducción de @article
, ocurre un truncamiento similar. En lugar de
Derrida, Jacques (2007). “Una cierta posibilidad imposible de decir el acontecimiento”. En:Investigación crítica33.2, páginas 441–461. Traducido por Gila Walker como “Una cierta posibilidad imposible de dire l'événement”. En:Dire l'événement, est-ce posible?(París: L'Harmattan, 2001).
yo obtengo
Derrida, Jacques (2007). “Una cierta posibilidad imposible de decir el acontecimiento”. En:Investigación crítica33.2, páginas 441–461. Traducido por Gila Walker como “Une suree possibilité imposible de dire l'événement” (París: L'Harmattan, 2001).
@incollection
Es decir, falta el título del libro en el que apareció.
¿Es esto un error? Si es así, ¿hay alguna forma de evitarlo?
¡Gracias de antemano por tu ayuda!
Respuesta1
La related:bytranslator
macro predeterminada funciona bien sólo para @book
s y tipos de entrada similares (creo). Para que funcione con @in...
tipos, necesitamos modificar un poco la macro.
Para cada uno de estos tipos de entrada que necesitan más resultados, verificamos ese tipo e imprimimos la información deseada (el código para eso se toma 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}
Es posible que esto no funcione en todos los casos, por lo que es posible que sea necesario realizar algunas modificaciones en los casos extremos.