[Tex/LaTex] Reducing space between items of reference

bibtexspacing

I want to reduce the space between items of my references. After reading many related posts and trying various methods, I was still unable to do that 🙁

I use BibTeX and here is my code (the references are contained in a separated file called "myref.bib"):

\documentclass[a4paper,12pt]{article}
\usepackage{CJKutf8}
\usepackage{amsfonts}
\usepackage{setspace,lipsum}

\begin{document}

This is the main content.

\begin{spacing}{0.7}
\bibliographystyle{alpha}
\bibliography{myref}
\end{spacing}

\end{document}

With this method, I can reduce the space in each item, however, the space between different entries is still huge. How to reduce them?

Best Answer

Rather than reducing the leading (the space between lines of text), it would be preferable to reduce the font size. In the example I use \small, but you could try \footnotesize.

In order to reduce the spacing between items, you can reduce the \itemsep.

\documentclass[a4paper,12pt]{article}

\usepackage{etoolbox}
\patchcmd{\thebibliography}
  {\settowidth}
  {\setlength{\itemsep}{0pt plus 0.1pt}\settowidth}
  {}{}
\apptocmd{\thebibliography}
  {\small}
  {}{}

\begin{document}

This is the main content.

\cite{Abrahams:TI90}

\cite{Barwise:NAMS-36-3-241}

\cite{Knuth:ct-a}

\bibliographystyle{alpha}
\bibliography{texbook1}

\end{document}

The example uses one of the common bibliographic databases available in TeX Live.

enter image description here

If you want to remove all vertical space between items, but I advise not doing it, change the \patchcmd into

\patchcmd{\thebibliography}
  {\settowidth}
  {\setlength{\parsep}{0pt}\setlength{\itemsep}{0pt plus 0.1pt}\settowidth}
  {}{}
Related Question