biblatex で別のエントリの日付フィールドを使用する

biblatex で別のエントリの日付フィールドを使用する

dateファイル内のエントリのフィールドを別のエントリに使用しようとしていますbib。別のソースを使用してエントリの日付を記入し (エントリ自体には日付がありません)、データの重複を避けたいと考えています。

bibBiblatex では、コマンドを使用してファイル内の別のエントリのフィールドを使用する簡単な方法が提供されています\entrydata{entry_key}{\thefield{field}}

これは や などのフィールドでは適切に機能しますtitleが、\printdateコマンドをたとえばtitleフィールド ( \entrydata{entry_key}{\prindate}) で使用する場合も機能しますが、フィールド\entrydata{entry_key}{\thefield{date}}で を使用してもdate機能しません。

これは単純な文字列ではないフィールドの性質に関係していると思われますdateが、biblatex マニュアルで考えられるすべてのコマンドを実験的に試してみましたが、何も機能しません。

さらに、date使用したいフィールドは次のYYYY-MM-DD形式になります: 並べ替えの目的で日付全体を保持し、年だけを印刷したいと思います。

どのような助けでも大歓迎です。

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}

答え1

簡単な解決策を見つけました:

別の bib エントリのフィールドを使用するには、別のエントリ (ソース エントリ) のキーを含むフィールドを宛先エントリに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}
}

関連情報