etoc:如何删除本地目录的标题并添加顶部/底部水平规则?

etoc:如何删除本地目录的标题并添加顶部/底部水平规则?

我想使用包etoc在每章开始时获取本地目录。但是,我很难做到:

  1. 隐藏标题“内容
  2. 在此本地目录条目上方和下方添加水平规则
  3. 将章节内容(带文本的迷你目录)排版在章节标题之后,而不是在章节第三页(第二页为空白)

\documentclass{scrbook}

\usepackage{lipsum}
\usepackage{etoc}

\begin{document}

\chapter{Chapter 1}
\localtableofcontents 

\section{Section 1}
\lipsum[1-20]
\section{Section 2}
\lipsum[1-20]

\end{document}

在此处输入图片描述

答案1

\etocsettocstyle命令提供了在目录之前和之后设置某些内容的方法,即水平规则。以非常原始的方式使用它,它还可以防止分页等。

\documentclass{scrbook}

\usepackage{lipsum}
\usepackage{etoc}


\newlength\tocrulewidth
\setlength{\tocrulewidth}{1.5pt}

\begin{document}

\tableofcontents
\chapter{Chapter 1}
\begingroup
\parindent=0em
\etocsettocstyle{\rule{\linewidth}{\tocrulewidth}\vskip0.5\baselineskip}{\rule{\linewidth}{\tocrulewidth}}
\localtableofcontents 
\endgroup


\section{Section 1}
\lipsum[1-20]
\section{Section 2}
\lipsum[1-20]

\end{document}

在此处输入图片描述

答案2

(从评论中移出)

这只是 Christian 的回答。缩进的解释是,这里etoc处于兼容模式,并将排版委托给 scrbook 类。因此,本地目录中的章节将像在主目录中一样显示。

手册etoc中有一个使用示例\KOMAoptions{toc=left},但这里不行,因为它需要一些命令\etocsettocstyle{..}{..}覆盖的 KOMA 代码。我查看了scrbook代码,发现这样做

\makeatletter
  \def\scr@tso@section@indent{0pt}
\makeatother
\localtableofcontents 

解决了缩进问题。但是,子节仍将像在主目录中一样缩进。由于没有更好的解决方案,我只能提出:

\makeatletter
  \edef\scr@tso@subsection@indent
    {\the\dimexpr\scr@tso@subsection@indent-\scr@tso@section@indent}
  \def\scr@tso@section@indent{0pt}
\makeatother
\localtableofcontents 

KOMA 中可能有这些缩进的接口,但我没有(立即)弄清楚如何使用。

完整代码(来自Christian的回答):

\documentclass{scrbook}

\usepackage{lipsum}
\usepackage{etoc}


\newlength\tocrulewidth
\setlength{\tocrulewidth}{1.5pt}

\begin{document}

\tableofcontents
\chapter{Chapter 1}

\begingroup
\parindent=0em
\etocsettocstyle{\rule{\linewidth}{\tocrulewidth}\vskip0.5\baselineskip}{\rule{\linewidth}{\tocrulewidth}}
\makeatletter
  \edef\scr@tso@subsection@indent
    {\the\dimexpr\scr@tso@subsection@indent-\scr@tso@section@indent}
  \def\scr@tso@section@indent{0pt}
\makeatother
\localtableofcontents 
\endgroup


\section{Section 1}
\lipsum[1-20]
\subsection{subsection 1.1}
\section{Section 2}
\lipsum[1-20]

\end{document}

在此处输入图片描述

相关内容