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}
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.