
Ich versuche, das date
Feld eines Eintrags in einer bib
Datei für einen anderen Eintrag zu verwenden. Die Idee ist, dass ich eine andere Quelle verwende, um den Eintrag zu datieren (der selbst undatiert ist) und ich eine Datenduplizierung vermeiden möchte.
bib
Biblatex bietet mit dem Befehl eine einfache Möglichkeit, ein Feld aus einem anderen Eintrag in einer Datei zu verwenden \entrydata{entry_key}{\thefield{field}}
.
Obwohl es für Felder wie gut funktioniert title
und obwohl die Verwendung des \printdate
Befehls auch funktioniert, wenn er beispielsweise in einem title
Feld ( \entrydata{entry_key}{\prindate}
) verwendet wird, funktioniert die Verwendung \entrydata{entry_key}{\thefield{date}}
in einem Feld nicht.date
Ich vermute, dass es mit der Art des date
Felds zu tun hat, bei dem es sich nicht um eine einfache Zeichenfolge handelt, aber nachdem ich empirisch jeden Befehl ausprobiert habe, der mir im Biblatex-Handbuch eingefallen ist, funktioniert nichts.
Zusätzlich date
kommt das Feld das ich verwenden möchte in der YYYY-MM-DD
Form: Ich möchte das vollständige Datum für die Sortierung beibehalten, aber nur das Jahr ausgedruckt sehen.
Ich wäre für jede Hilfe sehr dankbar.
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}
Antwort1
Habe eine einfache Lösung gefunden:
Um das date
Feld eines anderen Bib-Eintrags zu verwenden, muss lediglich crossref
dem Zieleintrag ein Feld hinzugefügt werden, das den Schlüssel eines anderen Eintrags (Quell-Eintrag) enthält.
Die Verwendung crossref
hat einen Nebeneffekt: Der Zieleintrag wird mit unnötigen Feldern aus dem Quelleintrag gefüllt, wenn diese Felder nicht bereits definiert sind (ein häufiges Vorkommnis, wenn Quell- und Zieleintrag unterschiedliche Typen aufweisen). Dies lässt sich leicht verhindern, indem Sie verwenden \DeclareDataInheritance
. Beispiel:
\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}
}