1

I would like to add abstracts of certain references (which may contain multiple paragraphs) to the main body of a document. However, when I add them using \citefield{KEY}{abstract}, double line breaks do not get converted to new paragraphs (using a \par is fine, though). Is there a way to make this work?

A working example is:

\documentclass{article}

\usepackage{biblatex}

\begin{filecontents*}{bibliography.bib}
@misc{Test1,
  abstract = {
    First paragraph.

    Second paragraph.
  }
}
@misc{Test2,
  abstract = {
    First paragraph.
    \par
    Second paragraph.
  }
}
\end{filecontents*}
\bibliography{bibliography.bib}

\begin{document}

\section*{Test 1}

\citefield{Test1}{abstract}

\section*{Test 2}

\citefield{Test2}{abstract}

\end{document}

with output: Screenshot of the working example.

0

Biber normalises all spaces and space-like characters to a single space in a very early stage of processing the .bib file. In particular all line breaks are converted to normal spaces and several spaces are compressed to one space.

That means that a blank line does not start a new paragraph in a .bib file. You need to use \par instead. Since the space normalisation happens so early there isn't even a way to use a Biber sourcemap to work around this issue.

If you are planning to write longer abstracts you may want to look into the biblatex option loadfiles and §3.13.8 External Abstracts and Annotations of the biblatex documentation. loadfiles allows you to store the abstract in an external .tex file where you can use normal LaTeX syntax as usual. A usage example is shown in the second part of my answer to How to embed a review in biblatex?.

  • I forgot: If you think that Biber absolutely should respect blank lines you can open an issue at github.com/plk/biber/issues, but I'm not sure how deeply the space normalisation is built into Biber or the underlying btparse library and if there is any way to get rid of it at all – moewe Jun 27 at 19:50
  • Thanks for the information -- I guess I'll have to replace multiple line breaks in the abstracts with \pars . Do you, by any chance, know of other workarounds using other backends like bibtex? – aclow Jun 28 at 9:05
  • Also, how is using biblatex's external abstracts/annotations functionality different from using an \input command in the bibliography file? – aclow Jun 28 at 9:06
  • @aclow loadfiles isn't much different from \input, it just does \inputs the right thing for you automatically. I don't think using BibTeX is a viable workaround since most fancy biblatex features are only available with Biber. As I mentioned, the usual panacea (Biber's sourcemapping) does not work here, since the space normalisation happens so early on, so I have no biblatex-world-based solution. Of course it should be possible to pre-process your .bib file with a script or another programming language and change blank lines to \par. ... – moewe Jun 28 at 10:27
  • ... One last option from the extended LaTeX universe, if you will, would be bibtool. It looks as though bibtool should be able to help here, but I can't test that right now and probably won't have time until tomorrow or the day after that (which means I may very well forget about this if I'm not prodded about it again later). – moewe Jun 28 at 10:29

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.