我正在尝试将文件date
中某个条目的字段bib
用于另一个条目。我的想法是使用另一个来源来标注该条目的日期(该条目本身没有日期),并且我想避免重复数据。
bib
Biblatex 提供了一种简单的方法,即通过命令使用文件中另一个条目的字段\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
另一个 bib 条目的字段,只需向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}
}