添加
\DeclareDatamodelFields[type=field,datatype=literal]{cstatement}
\AtEveryBibitem{[\printfield{cstatement}]}
是biblatex.cfg
几乎我想要的。对于每个带有关键字的 bibtex 条目cstatement="This is a foo"
,此代码会导致 biblatex 在参考书目条目中预先打印“This is a foo”。
但我实际上需要的是,这个新条目出现在条目之后,就像在带注释的参考书目中一样。“附录”条目也是几乎我想要的,但不完全是因为 1) 我想使用这个自定义关键字,2) 我想要对格式有更多的控制。也就是说,我希望 cstatement 中的文字文本看起来像
\item [bibentry here]\\\ \\[cstatement literal text here]
导致\\\ \\
cstatement 文本和 bibentry 之间出现一个空行。(除非 cstatement 存在,否则不应出现换行符。)这适用于任何 bibtex 条目类型(文章、论文集等)。
任何意见,将不胜感激。
答案1
我会\par
在字段前发出一个。然后,您可以使用来控制实际条目和注释之间的距离\bibparsep
。在参考书目条目末尾添加内容的一个非常简单的方法是重新定义finentry
所有好的参考书目样式都应使用的 bibmacro。
在这里的例子中,我使用了字段annotation
而不是cstatement
,但是如果您在数据模型文件中声明字段,则可以简单地将所有提及的替换 annotation
为cstatement
。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber]{biblatex}
\setlength{\bibparsep}{.5\baselineskip}
\renewbibmacro*{finentry}{%
\setunit{\finentrypunct\par}%
\printfield{annotation}%
\finentry}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
date = {1980},
annotation = {This is a foo},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{appleby}
\printbibliography
\end{document}