删除报告类图表列表中的章节空白

删除报告类图表列表中的章节空白

我有一个图表列表,其中的图表按章节分组(见下图)。

有空白的数字列表

我已经尝试了很多解决方案,但都不起作用。以下是 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 中。

相关内容