答案1
independent TOCs
无需使用任何包,只需在主文件中添加即可
\tableofcontents
\let\tableofcontents\relax
带包裹
以下是如何使用包的示例
1- 表格。(已编辑):
使用上述两行方法,可以单独编译每个包含的子文件,并且它将拥有自己的目录。主文件将拥有一个全局目录。如果这就是想要的,则无需继续阅读。
但是,如果希望包含的文件在主文件中也有自己的目录,则可以使用表以以下有点复杂的方式。约束是:
tableof
不会修改书籍类的默认值\tableofcontents
,该默认值在使用一次时会显示目录,但也会删除文件.toc
直至文档末尾,因此不能使用两次。tableof
有自己的附加命令,例如\tableoftaggedcontents
或\tableof
。这些命令本身显示目录,但不打开.toc
文件进行写入。如果未使用任何命令,则必须使用\tableofcontents
包\tofOpenTocFileForWrite
。如果使用
\tofOpenTocFileForWrite
,在\tableofcontents
显示空的目录后,必须使用诸如\tableoftaggedcontents
或\tableof
之类的包命令。后面的命令不打印标题,用户可以使用
\section*
或\chapter*
等来完成...
如果有人不顾上述限制坚持使用tableof
软件包,可以按照以下方法操作。我已将其设置为包含的文件只有一个章节,其目录为该章节的内容。
要测试此示例和其他示例,请确保从没有辅助文件的干净状态开始。与目录一样,至少需要两次编译,无论是主文件还是子文件(如果单独编译)。当然,主文件中的章节编号与单独编译的子文件中的章节编号不同。
主文件 myfile.tex
\documentclass{book}
\usepackage{subfiles}
\usepackage{lipsum}
\usepackage{tableof}
\AtBeginDocument{\tofOpenTocFileForWrite}% see tableof's doc
\begin{document}
\tableof{}% replaces book class \tableofcontents, which one
% can not use after \tofOpenTocFileForWrite
\chapter{Foo}
\section{Bar}
\lipsum[1-2]
\section{Baz}
\lipsum[1-2]
\subfile{myfile1}
\subfile{myfile2}
\subfile{myfile3}
\end{document}
myfile1.tex
% main file is called myfile.tex
% this is myfile1.tex
\documentclass[myfile]{subfiles}
\begin{document}
\chapter{Foo1}
\tableof{myfile1}
\toftagstart{myfile1}
\section{Bar1}
\lipsum[1-2]
\section{Baz1}
\lipsum[3-4]
\toftagstop{myfile1}
\end{document}
myfile2.tex
% main file is called myfile.tex
% this is myfile2.tex
\documentclass[myfile]{subfiles}
\begin{document}
\chapter{Foo2}
\tableof{myfile2}
\toftagstart{myfile2}
\section{Bar2}
\lipsum[5-6]
\section{Baz2}
\lipsum[7-8]
\toftagstop{myfile2}
\end{document}
myfile3.tex
% main file is called myfile.tex
% this is myfile3.tex
\documentclass[myfile]{subfiles}
\begin{document}
\chapter{Foo3}
\tableof{myfile3}
\toftagstart{myfile3}
\section{Bar3}
\lipsum[9-10]
\section{Baz3}
\lipsum[10-11]
\toftagstop{myfile3}
\end{document}
2- 标题
主文件 myfile.tex
\documentclass{book}
\usepackage{subfiles}
\usepackage{lipsum}
%------
\usepackage{titletoc}
\startcontents
\begin{document}
%------
\printcontents{}{-1}{% parts are add to toc
\setcounter{tocdepth}{2}%
\chapter*{\contentsname}% or section ...
}
%\renewcommand{\printcontents}[4][default]{} %if you don't want partial tocs
%------
\part{one}
\chapter{Foo}
\section{Bar}
\lipsum[1-2]
\section{Baz}
\lipsum[1-2]
\subfile{myfile1}
\subfile{myfile2}
\subfile{myfile3}
\end{document}
myfile1.tex
\documentclass[myfile]{subfiles}
\begin{document}
%------
\printcontents{}{-1}{%
\setcounter{tocdepth}{2}%
\chapter*{\contentsname}% or section ...
}
%------
\chapter{Foo1}
\section{Bar1}
\lipsum[1-2]
\section{Baz1}
\lipsum[3-4]
\end{document}
myfile2.tex
\documentclass[myfile]{subfiles}
\begin{document}
%------
\printcontents{}{-1}{%
\setcounter{tocdepth}{2}%
\chapter*{\contentsname}% or section ...
}
%------
\chapter{Foo2}
\section{Bar2}
\lipsum[5-6]
\section{Baz2}
\lipsum[7-8]
\end{document}
myfile3.tex
\documentclass[myfile]{subfiles}
\begin{document}
%------
\printcontents{}{-1}{%
\setcounter{tocdepth}{2}%
\chapter*{\contentsname}% or section ...
}
%------
\chapter{Foo3}
\section{Bar3}
\lipsum[9-10]
\section{Baz3}
\lipsum[10-11]
\end{document}
3- 米尼托克我们在主文件中添加
\usepackage{minitoc}
\dominitoc
\begin{document}
\tableofcontents
\let\tableofcontents\relax
并在子文件中我们只添加\tableofcontents
。
进一步阅读
答案2
这概述了图哈米:首先介绍主要内容的基本功能\let\relax
,最后部分分别演示子文件 pkg 和 TOC pkgs。
主要的
将\tableofcontents
目录打印到整个文档。 其\let\tableofcontents\relax
工作原理类似于使用惰性求值指向 /dev/null,"at the point of definition"
以及更多\let 和 \def 之间有什么区别?和 \relax 起什么作用?。
示威游行
[第 0 次示威] "it seems that tableof and etoc works fine"
touhami 的评论,埃托克和表. 有待示范。
[第一次演示]tableof 的文档
Tableof 演示成功。左侧是主目录,右侧是子目录。
[第二次演示]titletoc 的文档
titletoc 演示在所有目录中具有相同的主目录,没有针对每个章节的子目录,在简洁的子目录概述每个章节的情况下(不是一直重复相同的目录),工作不太顺利。
[试验 1]不使用 Minitoc 打印子目录,更多这里。
minitoc 正确显示主目录,同时重复子目录,目标是仅概述每个章节的相关部分。