59

How can you control (in my case reduce) the spacing of the bibliography in biblatex? I used to use

\begin{spacing}{0.9}
\bibliographystyle{plain}
\bibliography{refs}
\end{spacing}

and

\setlength{\bibsep}{0.0pt}. But how do you do the equivalent in biblatex?

EDIT: I should maybe have mentioned I am using

\begin{refsection}

\printbibliography[heading=subbibliography]

\end{refsection}

[..]


\begin{refsection}

to get multiple bibliographies and I would like to be able to control the spacing per bib.

\printbibliography[heading=subbibliography]

\end{refsection}
Seamus
  • 73,242
Simd
  • 6,785

4 Answers4

66

\bibitemsep length between two different entries, preset to \itemsep

\bibnamesep length between two entries of different authors

\bibinitsep length between two entries of authors with different first letter

\documentclass{article}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}% Part of the TeX distribution
\usepackage{setspace}
\onehalfspacing
\begin{document}
\blindtext

\singlespacing\blindtext

\nocite{*}

\begingroup
\setstretch{0.8}
\setlength\bibitemsep{0pt}
\printbibliography
\endgroup

\end{document} 

enter image description here

By the way: I prefer to typeset a bibliography with \RaggedRight (from package ragged2e)

  • 1
    Thanks. How do I set that for just one of the bibs and how can I change the line spacing within a reference as \begin{spacing}{0.9} does. – Simd May 04 '11 at 12:09
  • 1
    for example: \begingroup \setstretch{0.9} \setlength\<length>{0pt} \printbibliography \endgroup –  May 04 '11 at 12:17
  • 1
    Thanks that seems to work. The only oddity is that \setstretch doesn't seem to do anything with very small values. For example \setstretch{0.1} looks much the same as \setstretch{0.9}. – Simd May 04 '11 at 12:31
  • what spacing do you have? single/onehalf/doublespacing? And are you using package setspace? –  May 04 '11 at 13:10
  • I am using the package setspace. I am trying to really squeeze the bibliography. I haven't set any spacing except for this \setstretch for the bibliography. – Simd May 04 '11 at 14:58
  • then use \singlelinespacing or do you want the bibliography set with less than one line spacing? –  May 04 '11 at 15:08
  • Yes I was hoping to be able to set the line spacing to be smaller than that. – Simd May 04 '11 at 15:20
  • @Raphael: see my edited answer with the image and an extremely small line space ... –  May 04 '11 at 16:50
  • That is lovely. However, if you reduce the 0.8 to 0.1 in setstretch for example. it doesn't make any difference for me. I should say as an aside that the biblatex-examples.bib file I could find online has "@PREAMBLE{ "\RequireBiber[2]" } as the first line. – Simd May 04 '11 at 19:54
  • 1
    Sorry I didn't put your name in the comment above. My question was, why doesn't reducing setstretch from 0.8 to 0.1, say, make any difference? – Simd Oct 18 '11 at 14:09
  • @Raphael Because LaTeX will never make the lines collide. So once they are as close to each other as they can be, nothing's more gonna haappen. – yo' Feb 14 '14 at 12:34
  • @tohecz Thanks for this. The thing is that it looks like there is still space to save but maybe that is an illusion. – Simd Feb 14 '14 at 12:41
  • @Raphael That strongly depends on the font used and on its properties and how it's metric files are formed. – yo' Feb 14 '14 at 12:42
14
\let\oldbibliography\thebibliography
\renewcommand{\thebibliography}[1]{\oldbibliography{#1}
\setlength{\itemsep}{0pt}} %Reducing spacing in the bibliography.
Torbjørn T.
  • 206,688
serxyz
  • 141
6

Using BibTeX with article document class

In the code below, the bibliography is typeset in the smaller font \footnotesize. Article class sets by default the bibliography name as a \section*; it is replaced with \subsubsection to appear smaller. The last trick is to rely on \@openbib@code as a hook to modify the list parameters that are used to display the references; in this case, the length between two references is reduced by setting \itemsep to 0pt.

\begingroup\footnotesize
\let\section\subsubsection
\makeatletter
\renewcommand\@openbib@code{\itemsep\z@}
\makeatother
\bibliographystyle{plain}
\bibliography{<biblio file>}
\endgroup
user94293
  • 4,254
5

I had trouble using \singlespace. However I found the .cls file that my tex file referring to had defined an environment singlespace. So my way looks like this

\begin{singlespace}
\setlength\bibitemsep{10pt}   % length between two different entries
\printbibliography
\end{singlespace}
\addcontentsline{toc}{head}{REFERENCES}  % must be after \printbibliography or the page# is wrong