
Estoy intentando utilizar el date
campo de una entrada en un bib
archivo para otra entrada. La idea es que estoy usando otra fuente para fechar la entrada (que en sí misma no tiene fecha) y quiero evitar duplicar datos.
Biblatex proporciona una forma sencilla de utilizar un campo de otra entrada en un bib
archivo con el \entrydata{entry_key}{\thefield{field}}
comando.
Aunque funciona bien para campos como title
y aunque usar el \printdate
comando también funciona si se usa, por ejemplo, en un title
campo ( \entrydata{entry_key}{\prindate}
), usarlo \entrydata{entry_key}{\thefield{date}}
en un date
campo no funciona.
Supongo que tiene que ver con la naturaleza del date
campo, que no es una simple cadena, pero después de haber probado empíricamente todos los comandos que se me ocurren en el manual de biblatex, nada funciona.
Además, el date
campo que deseo usar tendrá el YYYY-MM-DD
formato: Me gustaría que se conserve la fecha completa para fines de clasificación, pero solo se imprimirá el año.
Cualquier ayuda sería muy apreciada.
MWE:
\documentclass{article}
\usepackage{biblatex}
\usepackage{filecontents}
\begin{filecontents}{sources.bib}
@article{testart1,
title = {First Article Title},
journaltitle = {Something Times},
date = {1964-02-01},
}
@article{testart2,
title = {\entrydata{testart1}{\thefield{title}}},% using the title of testart1 entry, working
journaltitle = {Another Times},
date = {1975-05-10},
}
@video{testvid,
title = {A Film Title},
editor = {Doe, John},
date = {},% should use date field from testart1 entry, not working with \thefield{date}
}
\end{filecontents}
\addbibresource{sources.bib}
\begin{document}
Lorem.
\nocite{*}
\printbibliography
\end{document}
Respuesta1
Encontré una solución simple:
Para utilizar el date
campo de otra entrada dorsal, solo es necesario agregar un crossref
campo a la entrada de destino que contenga la clave de otra entrada (entrada de origen).
El uso crossref
tiene un efecto secundario: completa la entrada de destino con campos innecesarios de la entrada de origen si esos campos aún no están definidos (una ocurrencia común si las entradas de origen y de destino son de diferentes tipos). Esto se puede prevenir fácilmente usando \DeclareDataInheritance
. Por ejemplo:
\DeclareDataInheritance{article}{music}{% source entry type / destination entry type
\inherit{date}{date}% field we want to use
\noinherit{entrysubtype}% fields we don't want to use
\noinherit{author}
\noinherit{title}
\noinherit{subtitle}
\noinherit{journaltitle}
\noinherit{pages}
}