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}
5
  • 5
    \renewcommand{\bibfont}{\small} will also make your bibliography take up less space.
    – Seamus
    Commented May 4, 2011 at 12:20
  • Thanks. Do you know exactly what font size that uses?
    – Simd
    Commented May 7, 2011 at 10:12
  • @Raphael that depends on what the font size of the main document is.
    – Seamus
    Commented May 7, 2011 at 15:03
  • It is 11pt and Helvetica. What is the rule?
    – Simd
    Commented May 8, 2011 at 16:36
  • @Raphael for 11pt text, \small is equivalent to about 10pt. See this wikibook page for details
    – Seamus
    Commented May 8, 2011 at 22:36

4 Answers 4

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)

13
  • 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
    Commented May 4, 2011 at 12:09
  • 1
    for example: \begingroup \setstretch{0.9} \setlength\<length>{0pt} \printbibliography \endgroup
    – user2478
    Commented May 4, 2011 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
    Commented May 4, 2011 at 12:31
  • what spacing do you have? single/onehalf/doublespacing? And are you using package setspace?
    – user2478
    Commented May 4, 2011 at 13:10
  • 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
    Commented Oct 18, 2011 at 14:09
14
\let\oldbibliography\thebibliography
\renewcommand{\thebibliography}[1]{\oldbibliography{#1}
\setlength{\itemsep}{0pt}} %Reducing spacing in the bibliography.
1
  • Worked perfectly! Thanks!!
    – Son Gohan
    Commented Dec 13, 2022 at 7:23
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
3
  • Can you please elaborate a bit more on this solution so it becomes more helpful to others, not only the OP?
    – TobiBS
    Commented Aug 25, 2020 at 21:39
  • @TobiBS Done :)
    – user94293
    Commented Aug 26, 2020 at 10:48
  • Great, I upvoted for you!
    – TobiBS
    Commented Aug 26, 2020 at 11:12
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

You must log in to answer this question.

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