Usando o campo de data de outra entrada com biblatex

Usando o campo de data de outra entrada com biblatex

Estou tentando usar o datecampo de uma entrada em um bibarquivo para outra entrada. A ideia é que eu esteja usando outra fonte para datar a entrada (que não tem data) e quero evitar a duplicação de dados.

Biblatex fornece uma maneira simples de usar um campo de outra entrada em um bibarquivo com o \entrydata{entry_key}{\thefield{field}}comando.

Embora funcione bem para campos como titlee embora usar o \printdatecomando também funcione se for usado, por exemplo, em um titlecampo ( \entrydata{entry_key}{\prindate}), usar \entrydata{entry_key}{\thefield{date}}em um datecampo não funciona.

Suponho que tenha a ver com a natureza do datecampo que não é uma simples string, mas depois de ter tentado empiricamente todos os comandos que consegui pensar no manual do biblatex, nada funciona.

Além disso, o datecampo que desejo utilizar virá no YYYY-MM-DDformato: Gostaria que a data completa fosse mantida para fins de classificação, mas apenas o ano fosse impresso.

Qualquer ajuda seria muito 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}

Responder1

Encontrei uma solução simples:

Para utilizar o datecampo de outra entrada de peito, basta adicionar um crossrefcampo à entrada de destino contendo a chave de outra entrada (entrada de origem).

O uso crossreftem um efeito colateral: preenche a entrada de destino com campos desnecessários da entrada de origem se esses campos ainda não estiverem definidos (uma ocorrência comum se as entradas de origem e de destino forem de tipos diferentes). Isso é facilmente evitado usando \DeclareDataInheritance. Por exemplo:

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

informação relacionada