请参阅下文的 MWE。
我怎样才能删除部分条目前面的缩进partial ToC
(仅在那里,而不是在正常的目录中)?
\documentclass{book}
\usepackage{titletoc}
\usepackage{lipsum}
\begin{document}
\setcounter{tocdepth}{2}
\tableofcontents
\chapter{A chapter}
\startcontents[chapters]
\printcontents[chapters]{}{1}{}
\section{Section}
\subsection{Subsection}
\lipsum[4]
\subsection{Another Subsection}
\lipsum[1]
\section{Section 2}
\lipsum
\chapter{Second chapter}
\startcontents[chapters]
\printcontents[chapters]{}{1}{}
\section{Section}
\lipsum[2]
\section{Another section}
\lipsum
\end{document}
这个问题与这个答案。
答案1
为了做到这一点,您需要使用titletoc
的前缀系统为部分目录创建单独的格式。
为部分目录创建单独的格式
首先,我们使用常规命令创建psection
而不是 的格式。您可以按照自己的喜好设置格式。为了使其与左边距齐平,我们设置了左边距(与为节号设置的空间宽度相同)。然后,当我们使用该命令生成部分内容时,我们使用前缀参数来指示使用而不是定义的格式。如果您有子节,则需要以相同的方式确定子节的格式。我删除了之前添加的一些额外空间。section
\titlecontents
2.3em
\printcontents
{p}
titletoc
psection
section
以下是一个例子:
\documentclass[oneside]{book}
\usepackage{titletoc}
\usepackage{lipsum}
\setcounter{tocdepth}{2}
\begin{document}
\titlecontents{psection}[2.3em]
{} {\contentslabel{2.3em}} {} {\titlerule*[1pc]{.}\contentspage}
\titlecontents{psubsection}[5.5em]
{} {\contentslabel{3.2em}} {} {\titlerule*[1pc]{.}\contentspage}
\tableofcontents
\chapter{A chapter}
\startcontents[chapters]
\printcontents[chapters]{p}{1}{}
\section{Section}
\lipsum[1]
\subsection{A subsection}
\lipsum[3]
\subsection{A second subsection}
\lipsum[4]
\section{Section 2}
\lipsum
\chapter{Second chapter}
\startcontents[chapters]
\printcontents[chapters]{p}{1}{}
\section{Section}
\lipsum[2]
\section{Another section}
\lipsum
\end{document}
选择正确的间距值
您可以手动设置用于格式化各个级别的边距的值。该类使用的默认值book
如下。这些值是\@dottedtocline
在内部分段命令定义中传递给命令的值。它们是从源代码中获得的book.cls
。
Level Indent Label width
section 1.5em 2.3em
subsection 3.8em 3.2em
subsubsection 7.0em 4.1em
paragraph 10.0em 5.0em
subparagraph 12.0em 6.0em
您可以使用这些值来确定各个部分的参数值\titlecontents
。由于我们的部分目录没有章节级别,因此我们将左边距设置为章节标签的宽度 (2.3em),然后对标签宽度使用相同的值。为了使子章节相对于章节的缩进量与主目录中的缩进量完全相同,我们将左边距设置为 = 上一个左边距 + 当前标签宽度,即 5.5em。较低级别也类似。