
Hinzufügen
\DeclareDatamodelFields[type=field,datatype=literal]{cstatement}
\AtEveryBibitem{[\printfield{cstatement}]}
Zubiblatex.cfg
istfastwas ich will. Für jeden Bibtex-Eintrag mit einem Schlüsselwort cstatement="This is a foo"
bewirkt dieser Code, dass Bibtex im Bibliographieeintrag direkt davor „Dies ist ein Foo“ druckt.
Aber was ichGenau genommenEs ist notwendig, dass dieser neue Eintrag direkt nach dem Eintrag erscheint, wie in einer kommentierten Bibliographie. Der Eintrag „Nachtrag“ ist auchfastwas ich will, aber nicht ganz, weil 1) ich dieses benutzerdefinierte Schlüsselwort verwenden möchte und 2) ich mehr Kontrolle über die Formatierung haben möchte. Ich möchte nämlich, dass der wörtliche Text in cstatement wie folgt aussieht
\item [bibentry here]\\\ \\[cstatement literal text here]
wobei dies \\\ \\
dazu führt, dass zwischen dem Text der C-Anweisung und dem Bibtex-Eintrag eine Leerzeile steht. (Die neue Zeile sollte nicht vorhanden sein, es sei denn, die C-Anweisung existiert.) Dies sollte bei jedem Bibtex-Eintragstyp (Artikel, Inproceedings usw.) funktionieren.
Ich bin für jeden Rat dankbar.
Antwort1
Ich würde \par
vor dem Feld ein setzen. Dann können Sie den Abstand zwischen dem eigentlichen Eintrag und der Annotation mit steuern \bibparsep
. Eine sehr einfache Möglichkeit, etwas am Ende des Bibliographieeintrags hinzuzufügen, besteht darin, das Bibmacro neu zu definieren, finentry
das alle guten Bibliographiestile verwenden sollten.
In diesem Beispiel habe ich das Feld annotation
anstelle von verwendet cstatement
, aber wenn Sie das Feld in einer Datenmodelldatei deklarieren, können Sie einfach alle Erwähnungen von annotation
durch ersetzen 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}