Группировать рисунки в 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(или chapteratlistsили listof=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}

Обновлять

Я нашелпредложение Маркуса Комавставка главы в список рисунков (таблиц, ...) только в том случае, если в этой главе есть хотя бы один рисунок (таблица, ...).

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

Запустите три раза, чтобы получить

введите описание изображения здесь

Связанный контент