Использование поля даты другой записи с biblatex

Использование поля даты другой записи с biblatex

Я пытаюсь использовать dateполе записи в bibфайле для другой записи. Идея в том, что я использую другой источник для датировки записи (которая сама по себе недатирована) и хочу избежать дублирования данных.

Biblatex предоставляет простой способ использования поля из другой записи в bibфайле с помощью \entrydata{entry_key}{\thefield{field}}команды.

Хотя это хорошо работает для таких полей, как titleи хотя использование \printdateкоманды также работает, если используется, например, в titleполе ( \entrydata{entry_key}{\prindate}), использование \entrydata{entry_key}{\thefield{date}}в dateполе не работает.

Я предполагаю, что это связано с природой поля date, которое не является простой строкой, но после того, как я эмпирически перепробовал все команды, которые только мог придумать в руководстве по biblatex, ничего не работает.

Кроме того, dateполе, которое я хочу использовать, будет иметь следующий YYYY-MM-DDвид: Я хочу, чтобы полная дата сохранялась для сортировки, но печатался только год.

Любая помощь приветствуется.

МВЭ:

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

решение1

Нашел простое решение:

Чтобы использовать dateполе другой записи нагрудного номера, нужно просто добавить crossrefполе к целевой записи, содержащее ключ другой записи (исходной записи).

Использование crossrefимеет побочный эффект: оно заполняет запись назначения ненужными полями из исходной записи, если эти поля еще не определены (обычная ситуация, если исходная и целевая записи имеют разные типы). Это легко предотвратить, используя \DeclareDataInheritance. Например:

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

Связанный контент