How to change the line spacing in my list of figures?

In the book class there's an internal macro \@chapter that's adding the space by this line:

\addtocontents{lof}{\protect\addvspace{10\p@}}%

You could redefine this macro. Alternatively, you could disable \addvspace in the list of figures, for instance by

\newcommand*{\noaddvspace}{\renewcommand*{\addvspace}[1]{}}
\addtocontents{lof}{\protect\noaddvspace}

The effect should end with the list of figures, but of course you could group it to limit the scope.

If you disabled it you could use an environment or a declaration of the setspace package, to get more space between the lines of the list of figures. Or you just use \linespread locally:

\addtocontents{lof}{\linespread{2}\selectfont}

If you happen to use a KOMA-Script class, simply add the listof=nochaptergap class option. (By default, KOMA-Script uses listof=chaptergapsmall which will produce an additional vertical space of 10 pt, equal to the behaviour of the standard classes.)

\documentclass[listof=nochaptergap]{scrbook}

\begin{document}

\listoffigures

\chapter{foo}

\begin{figure}
\centering
\rule{1cm}{1cm}
\caption{A figure}
\end{figure}

\chapter{bar}

\begin{figure}
\centering
\rule{1cm}{1cm}
\caption{Another figure}
\end{figure}

\begin{figure}
\centering
\rule{1cm}{1cm}
\caption{And another one}
\end{figure}

\end{document}

enter image description here


Using the etoolbox package, you can patch this out of the code.

\makeatletter
\patchcmd{\@chapter}{%
        \addtocontents{lof}{\protect\addvspace{10\p@}}%
        \addtocontents{lot}{\protect\addvspace{10\p@}}%
}{}{}{\message{Failed to patch \string\@chapter}}
\makeatother

For adding space between figures and tables, you can use the tocloft package.

\setlength\cftbeforefigskip{\cftbeforechapskip}
\setlength\cftbeforetabskip{\cftbeforechapskip}

This puts the same space between entries in the list of figures/tables as goes between chapters in the table of contents.