1

I'm using Mendeley for reference management and ShareLaTeX for online editing. For each entry in Mendeley, I can add text into a Notes box. Those notes appear in the exported bib file in the annote field:

@book{knuth,
    author = "Donald E. Knuth",
    title = "Fundamental Algorithms",
    publisher = "Addison-Wesley",
    year = "1973",
    keywords  = "knuth,programming",
    annote = "My notes on Knuth's book.",
}

I would like the annote field contents to appear in the printed bibliography on a new line after the reference to which it applies, with some italic formatting. Biblatex will add contents of the addendum field to the end of a printed reference. Therefore, I could post-process the bib file for something like this:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{biblatex}
\begin{filecontents}{bib.bib}
@book{knuth,
    author = "Donald E. Knuth",
    title = "Fundamental Algorithms",
    publisher = "Addison-Wesley",
    year = "1973",
    keywords  = "knuth,programming",
    addendum = "\par \textit{\\ My notes on Knuth's book.}",
}
\end{filecontents}
\addbibresource{bib.bib}
\begin{document}
Knuth's book \cite{knuth}.
\printbibliography
\end{document}

enter image description here

From what I've seen scattered amongst other answers it should be possible to do this automatically within the ShareLaTeX environment (copying the contents of the annote field to an addendum field with the relevant formatting to match my requirements). However, I've not found any straightforward explanations on how this can be done as most answers jump straight into strings of LaTeX commands beyond my noob understanding. Help for the required commands to achieve this would be appreciated.

1

You can use the annotation field. The standard styles do not print it by default, but it is not too complicated to get them to do that (in the solution below I used finentry as a convenient hook, because that macro is executed at the end of every bibliography driver). Even better annote is a backwards compatibility alias for annotation, so you don't even need to change your .bib file.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{biblatex}

\DeclareFieldFormat{annotation}{\par\textit{#1}}
\renewbibmacro*{finentry}{%
  \setunit{\finentrypunct}%
  \printfield{annotation}%
  \finentry
}

%\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{knuth,
  author    = {Donald E. Knuth},
  title     = {Fundamental Algorithms},
  publisher = {Addison-Wesley},
  year      = {1973},
  keywords  = {knuth,programming},
  annote    = {My notes on Knuth's book.},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Knuth's book \cite{knuth}.
\printbibliography
\end{document}

enter image description here

  • Superb, perfect for my requirements, kudos. – Daniel S. Fowler Jul 17 '18 at 16:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.