
Я пытаюсь установить основное \tableofcontents
и несколько \localtableofcontents
в большом документе. Документ состоит из введения, нескольких частей, заключения и библиографии.
Что касается токов:
- Введение, заключение и библиография должны быть оформлены как главы на основном
\tableofcontents
. Последние две не должны быть пронумерованы. - На первой странице каждой части должна быть показана
\localtableofcontents
часть рассматриваемой части.
Я попытался добиться этого, используя пакет {etoc}
. Следующий MWE производит основной toc, как и хотелось:
\documentclass{report}
\usepackage{titlesec}
\usepackage{etoc}
% to be able to show localtoc on part-page
\titleclass{\part}{top}
\titleformat{\part}[display]{\normalfont\huge\filcenter\bfseries}{\partname\ \thepart}{0pt}{}
\begin{document}
\tableofcontents
\chapter{Introduction}
\part{A Part}
\etocsettocstyle{}{}
\etocsetnexttocdepth{section}
\localtableofcontents
\chapter{A Chapter}
\section{A section}
\part{Another Part}
\etocsetnexttocdepth{section}
\localtableofcontents
\chapter{Another Chapter}
\section{Another Section}
% (1) change local toc's depth
%\etocsettocdepth{part}
%\etocignoretoctocdepth
% (2) limit scope of last local toc
%\etocsetnexttocdepth{part}
%\invisiblelocaltableofcontents
\chapter*{Conclusion}
% to add unnumbered conclusion to toc:
\addcontentsline{toc}{chapter}{Conclusion}
\bibliographystyle{plainnat}
% to add unnumbered bibliography to toc:
\addcontentsline{toc}{chapter}{\bibname}
\bibliography{\jobname}
\end{document}
Однако из последнего не исключены Заключение и Библиография \localtableofcontents
:
Я думал о том, чтобы:
\etocsettocdepth
последний\localtableofcontents
, который больше не включает главы непосредственно перед заключением- ограничить сферу действия последнего,
\localtableofcontents
чтобы больше не приходить к заключению
Мои попытки прокомментированы в MWE выше. Но их можно было бы просто выполнить, так как они, похоже, все равно не имеют никакого эффекта...
Как исключить заключение и библиографию из последнего \localtableofcontents
?
решение1
Для таких случаев etoc
есть команда \etocsetlocaltop
. У нее немного странный синтаксис, чтобы вставить part
разделитель в toc
файл, вы пишете
\etocsetlocaltop.toc{part}
Это добавляет маркер, toc
который ведет себя так, как будто новый part
начался. Подробнее см. в главе 48документация etoc.
Таким образом, полный документ становится
\documentclass{report}
\usepackage{titlesec}
\usepackage{etoc}
% to be able to show localtoc on part-page
\titleclass{\part}{top}
\titleformat{\part}[display]{\normalfont\huge\filcenter\bfseries}{\partname\ \thepart}{0pt}{}
\begin{document}
\tableofcontents
\chapter{Introduction}
\part{A Part}
\etocsettocstyle{}{}
\etocsetnexttocdepth{section}
\localtableofcontents
\chapter{A Chapter}
\section{A section}
\part{Another Part}
\etocsetnexttocdepth{section}
\localtableofcontents
\chapter{Another Chapter}
\section{Another Section}
% limit scope of last local toc
\etocsetlocaltop.toc{part}
\chapter*{Conclusion}
% to add unnumbered conclusion to toc:
\addcontentsline{toc}{chapter}{Conclusion}
\bibliographystyle{plainnat}
% to add unnumbered bibliography to toc:
\addcontentsline{toc}{chapter}{\bibname}
\bibliography{\jobname}
\end{document}