我想格式化目录以忽略节和小节,因为章节都非常小,并且只列出章节而它们之间没有空格。
我看到了这个问题:使用 LaTex 格式化目录
但我完全不明白如何使用这些样式。
如何使用 etocsetstyle 设置章节显示,但关闭所有子层级的显示?如何停止打印章节之间的空行?
答案1
最简单的方法是使用tocloft
:
\documentclass[a4paper]{book}
\usepackage[titles]{tocloft}
\setcounter{tocdepth}{0}
\setlength{\cftbeforechapskip}{0pt}
\begin{document}
\tableofcontents
\chapter{One}
\section{Aaaaa}
\section{Bbbbb}
\chapter{Two}
\section{Ccccc}
\section{Ddddd}
\section{Eeeee}
\chapter{Three}
\section{Fffff}
\section{Ggggg}
\section{Hhhhh}
\end{document}
在这种情况下,您可能希望避免将页码对齐到右边距;将上面的代码更改为
\documentclass[a4paper]{book}
\usepackage[titles]{tocloft}
\setcounter{tocdepth}{0}
\setlength{\cftbeforechapskip}{0pt}
\renewcommand\cftchapfillnum[1]{%
\nolinebreak\hspace{.5em}%
\textbullet
\nolinebreak\hspace{.5em}%
\textbf{#1}\cftparfillskip\par
}
要得到
答案2
在你的序言中,尝试命令\setcounter{tocdepth}{0}
请注意 这个问题解释如果您以后想更改目录中显示的深度,在命令参数中使用什么数字。
答案3
以下是一个“快速而粗糙”的解决方案:看看它是否让您满意。
\documentclass[a4paper]{book}
\usepackage[T1]{fontenc}
\usepackage{lipsum}
\makeatletter
\renewcommand*\l@chapter{\@dottedtocline{0}{0em}{1.5em}}
\makeatother
\setcounter{tocdepth}{0} % Also try **without** this line.
\begin{document}
\tableofcontents
\chapter{One}
\lipsum[1]
\section{Aaaaa}
\lipsum[2]
\section{Bbbbb}
\lipsum[3]
\chapter{Two}
\lipsum[4]
\section{Ccccc}
\lipsum[5]
\section{Ddddd}
\lipsum[6]
\section{Eeeee}
\lipsum[7]
\chapter{Three}
\lipsum[8]
\section{Fffff}
\lipsum[9]
\section{Ggggg}
\lipsum[10]
\section{Hhhhh}
\lipsum[11]
\end{document}
输出: