achim wrote:[…] Have a look at the pseudo code (it is not a minimal working example as I don't cite anything and I don't provide a *.bib file...) […]
In principal a
minimal working example (MWE) is
always possible. In this case a short bibliography database file would have done.
Regarding the problem you have to redefine the
thebibliography environment to make it use the
multicols environment. See sample below.
Code: Select all
\begin{filecontents*}{\jobname.bib}
@BOOK{knuth:84,
author={Donald Ervin Knuth},
title={The \TeX book},
year={1984},
publisher={Addison-Wesley}
}
@BOOK{lamport:94,
author={Leslie Lamport},
title={\LaTeX\ - A Document Preparation System},
note={User's Guide and Reference Manual},
year={1994},
publisher={Addison-Wesley},
edition={Second}
}
@BOOK{mitgoo:04,
author={Frank Mittelbach and Michel Goossens},
title={The \LaTeX\ Companion},
year={2004},
publisher={Addison-Wesley},
edition={Second}
}
@BOOK{goomit:07,
author={Michel Goossens and Frank Mittelbach and Sebastian Rahtz and Denis Roegel and Herbert Voss},
title={The \LaTeX\ Graphics Companion},
year={2007},
publisher={Addison-Wesley},
edition={Second}
}
\end{filecontents*}
\documentclass[11pt,a4paper,english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[includeheadfoot,margin=2cm]{geometry}
\usepackage{multicol}
% bibliography environment over multiple columns (multicol)
\makeatletter
\renewenvironment{thebibliography}[1]{%
\section*{\refname \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}}%
\begin{multicols}{2}
\list{\@biblabel{\@arabic\c@enumiv}}{%
\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{
\def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
\endlist\end{multicols}
}
\makeatother
\begin{document}
\nocite{*}
\bibliographystyle{plain}
\small
\bibliography{\jobname.bib}
\end{document}
Note that this redefinition only works with the »article« class because the environment code was taken from there. For other classes it requires other modifications.
Thorsten