根据 KOMA 脚本格式化“某物列表”

根据 KOMA 脚本格式化“某物列表”

我正在使用scrbook文档类。我创建了自己的环境example,并想创建“示例列表”。我在该名称中加载了包tocloft

然而,尽管我尽力了,“示例列表”的格式与其他列表(如“表格列表”或“图表列表”)不同:“示例列表”的水平间距明显较小。

我已经尝试了所有方法,包括选项titles,但这只会让事情变得更糟,改变垂直间距。

请帮助我将“示例列表”格式化为与其他列表一样的格式。

以下是 MWE:

\documentclass[11pt,parskip=half,numbers=noenddot,bibliography=totoc,index=totoc]{scrbook}
\usepackage{tcolorbox,etoolbox}

% Adding option `titles' makes it worse
\usepackage{tocloft}
\newcommand{\listexamplename}{List of examples}
\newlistof[chapter]{example}{loe}{\listexamplename}
\renewcommand{\theexample}{\thechapter.\arabic{example}}
\newenvironment{example}[1]{\refstepcounter{example}\addcontentsline{loe}{example}{\protect\numberline{\theexample}{\ignorespaces #1}}\par\begin{tcolorbox}[title=Example\ \theexample:\ #1]}{\end{tcolorbox}}
% For list of examples, make space between chapters
\makeatletter
\preto\chapter{\addtocontents{loe}{\protect\addvspace{10\p@}}}%
\makeatother

\begin{document}

\chapter{First}

\begin{example}{First example.}
\end{example}
\begin{table}
\caption{First graph.}
\end{table}

\chapter{Second}

\begin{example}{Second example.}
\end{example}
\begin{table}
\caption{Second graph.}
\end{table}
\begin{example}{Third example.}
\end{example}
\begin{table}
\caption{Third graph.}
\end{table}

\chapter{Lists}
\listoftables
\listofexample

\end{document}

在此处输入图片描述

答案1

这里建议使用tocbasicKOMA-Script 包中的包的可能性。它会scrbook自动加载。

\documentclass[11pt,parskip=half,numbers=noenddot,bibliography=totoc,index=totoc,
  listof=leveldown
]{scrbook}

\addtotoclist{loe}
\newcounter{example}[chapter]
\renewcommand{\theexample}{\thechapter.\arabic{example}}
\newcommand{\listofloename}{List of Examples}
\newcommand\listofexamples{\listoftoc{loe}}
\setuptoc{loe}{chapteratlist,leveldown}
\makeatletter
\newcommand\l@example{\l@figure}
\makeatother

\usepackage{tcolorbox}
\newenvironment{example}[1]{%
  \setlength\parfillskip{0pt plus 1fil}%
  \begin{tcolorbox}[
    before title={%
      \refstepcounter{example}%
      \addxcontentsline{loe}{section}[\theexample]{\ignorespaces #1}},
    title=Example\ \theexample:\ \ignorespaces #1]%
}{\end{tcolorbox}}

\begin{document}
\chapter{First}

\begin{example}{First example.}
\end{example}
\begin{table}
\caption{First graph.}
\end{table}

\chapter{Second}
\begin{example}{Second example.}
\end{example}
\begin{table}
\caption{Second graph.}
\end{table}
\begin{example}{Third example.}
\end{example}
\begin{table}
\caption{Third graph.}
\end{table}

\chapter{Lists}
\listoftables
\listofexamples
\end{document}

结果:

在此处输入图片描述

注意:我使用了选项listof=leveldown\setuptoc{loe}{leveldown}在一页上显示两个列表。使用此选项,它们是部分。如果它们应该是章节,只需删除此设置即可。

相关内容