![定位 etoc 的 \localtableofcontents](https://linux22.com/image/336097/%E5%AE%9A%E4%BD%8D%20etoc%20%E7%9A%84%20%5Clocaltableofcontents.png)
我正在写一篇很长的文档,想在每一章后面添加本地竞赛表。使用这个包可以轻松实现埃托克并且命令\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}