我正在使用 Subfiles 包以较小的步骤编译一个相对较大的文档。每个子文件实际上是文档的一个章节。我希望每个章节都有一个目录(除了一般的目录之外)。我使用了以下几行
% !TEX encoding = IsoLatin9
\documentclass[./main.tex]{subfiles}
\begin{document}
\tableofcontents
\let\tableofcontents\relax
\chapter{My first chapter}
...
在一章中,我确实获得了该章的目录,但它位于标题“目录”之后和章节标题之前。此外,(“目录”+目录)相对于章节标题位于不同的页面中。我想获得:
- 章节标题(上例中为“我的第一章”)
- 章节目录(如果可能,不包含“目录”标题)
- 按此顺序开始章节正文,并使其位于同一页上。这样可以吗?
答案1
可以根据需要使用该包自定义子文件的本地目录etoc
假设目录中有主书文件BOOK
,子目录中有章节chapters
你会得到
本书的完整目录
第1章
第2章
这是 full_book-2021.tex
%% full_book-2021.tex in its own directory BOOK
\documentclass[11pt,a4paper,twoside]{book}
\usepackage{etoc} % for local TOC
\usepackage{kantlipsum} % dummy text
\usepackage{subfiles}
\begin{document}
\tableofcontents
\etocsettocstyle{}{} % now only local tocs
\subfile{./chapters/chapter1} % chapter 1 file in BOOK/chapters/ subdirectory
\subfile{./chapters/chapter2} % chapter 2 file in BOOK/chapters/ subdirectory
\end{document}
这些是章节子文件
%% chapter1.tex in /chapters subdirectory
\documentclass[../full-book-2021.tex]{subfiles}
\begin{document}
\chapter{My First Chapter}
\etocsettocstyle{% before code
\noindent\rule{\linewidth}{.4pt}
\vspace*{-4\baselineskip}
\section*{}
}
{% after code
\noindent\rule{\linewidth}{.4pt}
\vspace*{2\baselineskip}
}
\localtableofcontents
3. \kant[3-5]
\section{Sec1Ch1 Blue}
4. \kant[4-9]
\section{Sec2Ch1 Green}
5. \kant[5-11]
\end{document}
和
%% chapter2.tex in /chapters subdirectory
\documentclass[../full-book-2021.tex]{subfiles}
\begin{document}
\etocsettocstyle{% before code
\noindent\rule{\linewidth}{.4pt}
\vspace*{-4\baselineskip}
\section*{}
}
{% after code
\noindent\rule{\linewidth}{.4pt}
\vspace*{2\baselineskip}
}
\chapter{My Second Chapter}
\localtableofcontents
6. \kant[6-12]
\section{Sec1Ch2 Red}
7. \kant[7-14]
\section{Sec2Ch2 Yellow}
8. \kant[8-16]
\end{document}