我有一个图表列表,其中的图表按章节分组(见下图)。
我已经尝试了很多解决方案,但都不起作用。以下是 MWE:
\documentclass{report}
\usepackage[german]{babel}
\usepackage{graphicx} % Required for inserting images
\begin{document}
\renewcommand{\listfigurename}{Abbildungsverzeichnis}
\listoffigures
\chapter{chapter1}
\begin{figure}
\centering
\includegraphics[width=3cm]{Figures/fig1.png}
\caption{Caption 1}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=3cm]{Figures/fig1.png}
\caption{Caption 2}
\end{figure}
\chapter{chapter1}
\begin{figure}
\centering
\includegraphics[width=3cm]{Figures/fig1.png}
\caption{Caption 1}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=3cm]{Figures/fig1.png}
\caption{Caption 2}
\end{figure}
\chapter{chapter1}
\begin{figure}
\centering
\includegraphics[width=3cm]{Figures/fig1.png}
\caption{Caption 1}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=3cm]{Figures/fig1.png}
\caption{Caption 2}
\end{figure}
\end{document}
感谢您的帮助
答案1
\chapter
这是由报告类中的定义引起的。它调用另一个命令\@chapter
,该命令调用\addtocontents{lof {\protect\addvspace{10\p@}}%
将垂直空间添加到图形辅助文件列表中。您不希望发生这种情况。“修复”此问题的一种方法是:将命令复制\@chapter
到您的文档中并注释掉有问题的行。
\documentclass{report}
%\usepackage[german]{babel}
\usepackage{graphicx} % Required for inserting images
\makeatletter
%\show\@chapter
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
\refstepcounter{chapter}%
\typeout{\@chapapp\space\thechapter.}%
\addcontentsline{toc}{chapter}%
{\protect\numberline{\thechapter}#1}%
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\chaptermark{#1}%
% \addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\if@twocolumn
\@topnewpage[\@makechapterhead{#2}]%
\else
\@makechapterhead{#2}%
\@afterheading
\fi}
\makeatother
\begin{document}
\renewcommand{\listfigurename}{Abbildungsverzeichnis}
\listoffigures
\chapter{chapter1}
\begin{figure}
\centering
\includegraphics[width=3cm]{fig1.png}
\caption{Caption 1}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=3cm]{fig1.png}
\caption{Caption 2}
\end{figure}
\chapter{chapter1}
\begin{figure}
\centering
\includegraphics[width=3cm]{fig1.png}
\caption{Caption 1}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=3cm]{fig1.png}
\caption{Caption 2}
\end{figure}
\chapter{chapter1}
\begin{figure}
\centering
\includegraphics[width=3cm]{fig1.png}
\caption{Caption 1}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=3cm]{fig1.png}
\caption{Caption 2}
\end{figure}
\end{document}
答案2
您可以通过修补来消除这些间隙\@chapter
;它会在图片列表 ( lot
) 和表格列表 ( lot
) 中插入间隙。修补是使用由提供的搜索和替换技术完成的etoolbox
的\patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
。
\documentclass{report}
\usepackage[german]{babel}
\usepackage{graphicx}
\usepackage{etoolbox}
\renewcommand{\listfigurename}{Abbildungsverzeichnis}
\makeatletter
\patchcmd{\@chapter}% <cmd>
{\addtocontents{lof}{\protect\addvspace{10\p@}}}% <search>
{}% <replace>
{}{}% <success><failure>
\patchcmd{\@chapter}% <cmd>
{\addtocontents{lot}{\protect\addvspace{10\p@}}}% <search>
{}% <replace>
{}{}% <success><failure>
\makeatother
\begin{document}
\listoffigures
\chapter{First chapter}
\begin{figure}
\caption{Caption 1}
\caption{Caption 2}
\end{figure}
\chapter{Second chapter}
\begin{figure}
\caption{Caption 1}
\caption{Caption 2}
\end{figure}
\chapter{Third chapter}
\begin{figure}
\caption{Caption 1}
\caption{Caption 2}
\end{figure}
\end{document}
您需要对第一个更改进行至少两次编译,以便补丁能够反映在 LoF/LoT 中。