我正在使用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
这里建议使用tocbasic
KOMA-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}
在一页上显示两个列表。使用此选项,它们是部分。如果它们应该是章节,只需删除此设置即可。