
Adicionando
\DeclareDatamodelFields[type=field,datatype=literal]{cstatement}
\AtEveryBibitem{[\printfield{cstatement}]}
para biblatex.cfg
équaseo que eu quero. Para cada entrada do bibtex com uma palavra-chave cstatement="This is a foo"
, este código faz com que o biblatex seja impresso na entrada da bibliografia com "This is a foo" logo antes.
Mas o que euna verdadea necessidade é que esta nova entrada apareça logo após a entrada, como em uma bibliografia comentada. A entrada ``addendum'' também équaseo que eu quero, mas não exatamente porque 1) quero usar essa palavra-chave personalizada e 2) gostaria de ter mais controle sobre a formatação. Ou seja, gostaria que o texto literal em cstatement aparecesse como
\item [bibentry here]\\\ \\[cstatement literal text here]
onde \\\ \\
faz com que haja uma linha em branco entre o texto da declaração e a bibentria. (A nova linha não deve estar lá, a menos que exista cstatement.) Isso deve funcionar em qualquer tipo de entrada do bibtex (artigo, procedimentos internos, etc.)
Qualquer conselho seria apreciado.
Responder1
Eu emitiria um \par
antes do campo. Então você pode controlar a distância entre a entrada real e a anotação com \bibparsep
. Uma maneira muito simples de adicionar algo ao final da entrada bibliográfica é redefinindo a bibmacro finentry
que todos os bons estilos bibliográficos devem usar.
No exemplo aqui usei o campo annotation
em vez de cstatement
, mas se você declarar o campo em um arquivo de modelo de dados, poderá simplesmente trocar todas as menções 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}