定位 etoc 的 \localtableofcontents

定位 etoc 的 \localtableofcontents

我正在写一篇很长的文档,想在每一章后面添加本地竞赛表。使用这个包可以轻松实现埃托克并且命令\localtableofcontents在章节定义之后立即引入\chapter{Chapter One}。但是,我在一页中获得了章节标题,而在下一页中获得了本地目录。有没有办法将 LToC 锚定到与章节标题相同的页面上?

这是一个最小工作示例:

\documentclass[a4paper, 11pt, oneside]{report}
\usepackage{etoc}
\usepackage{titlesec}
\titleformat{\chapter}{\Huge}{\thechapter}{1.5em}{\MakeUppercase}{}
\begin{document}
\chapter{Chapter One}
\localtableofcontents
\section{Section One}
\subsection{Subsection One Point One}
\section{Section Two}
\end{document}

答案1

您想使用etoc的功能,例如\etocsettocstyle

\documentclass[a4paper, 11pt, oneside]{report}

\usepackage{etoc}
\usepackage{titlesec}

\titleformat{\chapter}
  {\Huge}
  {\thechapter}
  {1.5em}
  {\MakeUppercase}

\begin{document}

\tableofcontents
\etocsettocstyle{}{} % from now on only local tocs

\chapter{Chapter One}

\localtableofcontents

\section{Section One}
\subsection{Subsection One Point One}
\section{Section Two}

\end{document}

第一个参数和第二个参数\etocsettocstyle分别包含我们想要的本地目录之前和之后的内容。随意定制。

在此处输入图片描述

答案2

正如埃格尔\clearpage不属于由 添加的此类\chapter,而是由 添加的\localtableofcontents。这可以\let\clearpage\relax在组内本地禁用,方法是在它前面添加。

另外,他的答案可能更适合这个包。但这个解决方案可以作为一种更通用的方法。

\documentclass[a4paper, 11pt, oneside]{report}
\usepackage{etoc}
\usepackage{titlesec}
\titleformat{\chapter}{\Huge}{\thechapter}{1.5em}{\MakeUppercase}{}
\begin{document}
\begingroup
\chapter{Chapter One}
\let\clearpage\relax
\localtableofcontents
\endgroup
\clearpage
\section{Section One}
\subsection{Subsection One Point One}
\section{Section Two}
\end{document}

在此处输入图片描述

相关内容