12

I'm using biblatex to created a list of publications in an academic CV. I'd like to list my publications and outline my contribution to each publication after each listed publication.

My current idea is to modify the note field, for articles and books, so it moves out of the main reference and appears one line bellow the reference as shown below.

 (1) Smith, J. Journal of Silly Stuff, 20XX, XX, XXXX-XXXX

      My contribution to this paper was ...

 (2) Jones, W. Journal of .......

      My contribution to this paper was ...

My question is how do you think it is best I generate a list like that and is it possible to do it using biblatex using a modified field?

3
  • There are many different ways to do it. Partially it depends on the biblatex style used. Do you use note or annote for annoting the entries in your bib files. Which biblatex style of you use?
    – Guido
    Commented Jan 11, 2013 at 16:26
  • The style I'm using is chem-rsc. My entries are not annotated so the fields note and annote are free to be used for this.
    – Darling
    Commented Jan 11, 2013 at 16:34
  • I was playing with the note field as it was the first one I saw in jabref.
    – Darling
    Commented Jan 11, 2013 at 16:52

2 Answers 2

11

Since you're ultimately wanting an annotated bibliography, I'd use the annotation field (or its alias annote). It typically isn't printed unless the bibliography style is already annotated. So you can just modify the finentry bibliography macro.

\documentclass{article}
\usepackage[style=chem-rsc]{biblatex}

\renewbibmacro*{finentry}{%
  \iffieldundef{annotation}
    {\finentry}
    {\setunit{\finentrypunct\par\vspace{\bibitemsep}\nobreak}
     \printfield{annotation}%
     \finentry}}

\addbibresource{biblatex-examples.bib}
\begin{document}
\nocite{knuth:ct,markey,glashow}
\printbibliography
\end{document}

enter image description here

The note field is often printed in bibliography styles. So if you insist on using this field, you need to avoid printing it twice. This can be done by clearing note in the begentry bibliography macro and then restoring it in finentry.

\renewbibmacro*{begentry}{%
  \iffieldundef{note}
    {\undef\bbxnote}
    {\savefield{note}{\bbxnote}%
     \clearfield{note}}}

\renewbibmacro*{finentry}{%
  \restorefield{note}{\bbxnote}%
  \iffieldundef{note}
    {\finentry}
    {\setunit{\finentrypunct\par\vspace{\bibitemsep}\nobreak}
     \printfield{note}%
     \finentry}}
6

The use and position of notes depends, partially, on the biblatex style. Here is a solution independent of each style, except that it requires biber as the backend. The solution involves the use of the standard field note (or the custom field mynote) to store the text to be used for each entry's note.

\documentclass{article}
\usepackage{filecontents}

\begin{filecontents}{test.bib} 
@article{article01,
Author = {John Doe},
Journal = {Journal name},
Pages = {280--291},
Title = {Title},
Volume = {21},
Number = {1},
Year = {2013},
note = {My contribution to this paper was \dots}}
@article{article02,
Author = {John Doe},
Journal = {Journal name},
Pages = {280--291},
Title = {Title},
Volume = {21},
Number = {1},
Year = {2014},
note = {My contribution to this paper was \dots\dots}}
\end{filecontents}


\begin{filecontents}{biblatex-dm.cfg}
\DeclareDatamodelFields[type=field,datatype=literal,skipout=false]{mynote}
\end{filecontents}  


\usepackage[style=chem-rsc]{biblatex}

\addbibresource{test.bib}

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=note]
      \step[fieldset=mynote, origfieldval]
      \step[fieldset=note, null]
    }
  }
}


\AtEveryBibitem{
\clearfield{note}
\csappto{blx@bbx@\thefield{entrytype}}{\iffieldundef{mynote}{}{\par\printfield{mynote}}}
}
\begin{document}

\nocite{*}

\printbibliography
\end{document}

The block

\begin{filecontents}{biblatex-dm.cfg}
\DeclareDatamodelFields[type=field,datatype=literal,skipout=false]{mynote}
\end{filecontents} 

generates the biblatex configuration file bib latex-dm.cfg where we specify that we create a new custom field mynote.

Then we use the ability of biber to manipulate the bib files to copy the value of the note field to the entry mynote. This is achieved by the block

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=note]
      \step[fieldset=mynote, origfieldval]
      \step[fieldset=note, null]
    }
  }
}

which also empties note.

Then we have to give the instruction of how and where to print the notes.

\AtEveryBibitem{
\clearfield{note}
\csappto{blx@bbx@\thefield{entrytype}}{\iffieldundef{mynote}{}{\par\printfield{mynote}}}
}

For every bibitem, we clear the value of note; thus, one has the option to operate using biber or directly in biblatex. Then we patch the driver for the current entry by appending to it the text of a note (mynote).

enter image description here

1
  • Now it works. I'll delete my comments.
    – egreg
    Commented Jan 12, 2013 at 11:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .