
Añadiendo
\DeclareDatamodelFields[type=field,datatype=literal]{cstatement}
\AtEveryBibitem{[\printfield{cstatement}]}
a biblatex.cfg
escasilo que quiero. Para cada entrada de bibtex con una palabra clave cstatement="This is a foo"
, este código hace que biblatex se imprima en la entrada de bibliografía con "Esto es un foo" justo antes.
Pero lo que yode hechoEs necesario que esta nueva entrada aparezca justo después de la entrada, como en una bibliografía comentada. La entrada ``anexo'' también escasilo que quiero, pero no del todo porque 1) quiero usar esta palabra clave personalizada y 2) me gustaría tener más control sobre el formato. Es decir, me gustaría que el texto literal en cstatement se vea así
\item [bibentry here]\\\ \\[cstatement literal text here]
donde la \\\ \\
causa es que haya una línea en blanco entre el texto de la declaración y el bibentry. (La nueva línea no debería estar allí a menos que exista una declaración). Esto debería funcionar en cualquier tipo de entrada bibtex (artículo, procedimientos, etc.)
Cualquier consejo sería apreciado.
Respuesta1
Yo emitiría un \par
antes del campo. Luego puedes controlar la distancia entre la entrada real y la anotación con \bibparsep
. Una forma muy sencilla de agregar algo al final de la entrada de bibliografía es redefinir la bibmacro finentry
que todos los buenos estilos de bibliografía deberían usar.
En el ejemplo aquí utilicé el campo annotation
en lugar de cstatement
, pero si declaras el campo en un archivo de modelo de datos, puedes simplemente intercambiar todas las menciones de annotation
for 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}