titlesec
我在合并和时遇到问题etoc
,它们兼容吗?我想使用格式,titlesec
然后在部分标题之后,在同一页面上,我想添加本地目录。但是我目前的结果是一个空的Content
。我有以下格式titlesec
:
\titleformat{\part}[frame]
{\normalfont\color{gray}}
{\filright
\enspace \large PART \thepart\enspace}
{20pt}
{\Huge\bfseries\filcenter\color{black}}
[{\localtableofcontents*
}]
当我在命令\localtableofcontents*
后添加 manualy 时,它起作用了\part{...}
。但是它 \localtableofcontents*
在下一页,我希望它在同一页上,就在部分标题之后。提前致谢!
答案1
用这个 mwe 进行测试:
\documentclass{article}
\usepackage{color}
\definecolor{gray}{gray}{0.75}
\usepackage{titlesec}
\usepackage{etoc}\etocsettocstyle{}{}
\titleformat{\part}[frame]
{\normalfont\color{gray}}
{\filright
\enspace \large PART \thepart\enspace}
{20pt}
{\Huge\bfseries\filcenter\color{black}}
[\localtableofcontents]
\begin{document}
%\errorcontextlines5
%\tracingmacros1
\part{first part}
\section{A}
\section{B}
\section{C}
\part{second part}
\section{U}
\section{V}
\section{W}
\end{document}
显示两个问题:
titlesec
抱怨“嵌套标题”,因为\localtableofcontents
会使用一些\section*
。我添加了\etocsettocstyle{}{}
以抑制它。更严重的
titlesec
问题\part
是\addcontentsline{toc}{part}...
后执行“after-code”部分,即 after\localtableofcontents
被执行。这意味着etoc
界定本地目录的机制被破坏,因为etoc
无法知道它是在 之后\part
。
因此,2. 看起来是确定的。您不能这样做。只需在用您认为最方便的任何方式\localtableofcontents
强行说服您不要执行 a 后,手动插入到适当的位置即可(根据您的问题,该问题未说明您正在使用哪个文档类)。类没有问题,如本例所示:titlesec
\clearpage
article
\documentclass{article}
\usepackage{color}
\definecolor{gray}{gray}{0.75}
\usepackage{titlesec}
\usepackage{etoc}\etocsettocstyle{\color{gray}}{}
\titleformat{\part}[frame]
{\normalfont\color{gray}}
{\filright
\enspace \large PART \thepart\enspace}
{20pt}
{\Huge\bfseries\filcenter\color{black}}
\begin{document}
\part{first part}
\localtableofcontents
\section{A}
\section{B}
\section{C}
\part{second part}
\localtableofcontents
\section{U}
\section{V}
\section{W}
\end{document}