按章节对 LOF 中的图表进行分组(包含章节号,但不包含页码)

按章节对 LOF 中的图表进行分组(包含章节号,但不包含页码)

我有一个似乎无法解决的问题:

我的图表列表按章节分组,每个章节的图表之间都有空格。但我想要的不仅仅是空间,还有一个章节标题,说明章节的编号和标题,但不是该章节的页面。

有什么办法吗?最好不要使用这个tocloft包,因为不知为何,它在 TOC 和 LOF 的顶部添加了巨大的空白,我似乎无法摆脱它。此外,当我包含它时,LOF 不会显示在 TOC 中。

有任何想法吗?

编辑:我不知道这是否算是一个最小的例子,但这将是我展示问题的例子。

\documentclass[12pt,headsepline,toc=bibliography,toc=listof]{scrreprt}

\begin{document}
\chapter{Chapter 1}
\begin{figure}
\caption{Figure 1}
\end{figure}
\begin{figure}
\caption{Figure 2}
\end{figure}

\chapter{Chapter 2}
\begin{figure}
\caption{Figure 3}
\end{figure}

\listoffigures

\end{document}

由此产生以下结果。 在此处输入图片描述 您可以看到,这些图按章节分组列出,中间有一个空格。我希望它在每个组上方显示“(章节编号)(空格)(章节标题)”,但旁边没有页码(但图旁边的页码仍然可见)。我说的(空格)是指刚好有足够的空间,这样章节标题的第一个字母的起始位置与列出的图的数字的起始位置完全相同。

答案1

有一个 KOMA 选项可以插入所有列表中的所有章节: chapteratlists=entry(或chapteratlistslistof=chapterentry

如果章节页码不应显示在图表列表 (lof) 中,则可以使用\AfterTOCHead[lof]{\addtokomafont{chapterentrypagenumber}{\nullfont}}

在此处输入图片描述

代码:

\documentclass[12pt,headsepline,toc=bibliography,toc=listof,chapteratlists=entry]{scrreprt}

\AfterTOCHead[lof]{\addtokomafont{chapterentrypagenumber}{\nullfont}}

\begin{document}
\chapter{Chapter 1}
\begin{figure}
\caption{Figure 1}
\end{figure}
\begin{figure}
\caption{Figure 2}
\end{figure}

\chapter{Chapter 2}
\begin{figure}
\caption{Figure 3}
\end{figure}

\listoffigures
\tableofcontents

\end{document}

更新

我发现了一个Markus Kohm 的建议如果本章中至少有一个图形(表格等),则仅将章节插入图形(表格等)列表中。

\documentclass[12pt,headsepline,toc=bibliography,toc=listof,chapteratlists=entry]{scrreprt}

\AfterTOCHead[lof]{\addtokomafont{chapterentrypagenumber}{\nullfont}}
\AfterTOCHead[lot]{\addtokomafont{chapterentrypagenumber}{\nullfont}}

%%%%% from http://www.komascript.de/comment/5070#comment-5070 (Markus Kohm)
\makeatletter
\let\chapterhas@original@addcontentsline\addcontentsline
\renewcommand*{\addcontentsline}[1]{%
  \immediate\write\@auxout{\string\chapterhas{\thechapter}{#1}}%
  \chapterhas@original@addcontentsline{#1}%
}
\newcommand*{\chapterhas}[2]{%
  \global\@namedef{chapterhas@#1@#2}{true}%
}
\renewcommand*{\addchaptertocentry}[2]{%
  \addtocentrydefault{chapter}{#1}{#2}%
  \if@chaptertolists
    \doforeachtocfile{%
      \iftocfeature{\@currext}{chapteratlist}{%
        \ifundefinedorrelax{chapterhas@\thechapter @\@currext}{%
        }{%
          \addxcontentsline{\@currext}{chapteratlist}[{#1}]{#2}%
        }%
      }{}%
    }%
    \@ifundefined{float@addtolists}{}{\scr@float@addtolists@warning}%
  \fi
}
\makeatother
%%%%

\begin{document}
\chapter{Chapter 1}
\begin{figure}
\caption{Figure 1}
\end{figure}
\begin{figure}
\caption{Figure 2}
\end{figure}

\chapter{Chapter 2}

\chapter{Chapter 3}
\begin{figure}
\caption{Figure 3}
\end{figure}
\begin{table}
\caption{Table 1}
\end{table}

\listoffigures
\listoftables
\tableofcontents

\end{document}

运行三次即可获得

在此处输入图片描述

相关内容