进一步阅读

进一步阅读

子文件包使编译 LaTex 文档的各个部分变得方便。该软件包的工作原理是每个子文件都继承主序言main.tex,并且用户可以单独编译各个文件。该软件包本身没有提及编译的各个部分的目录。

带有子文件的独立目录包一定有一些方便的解决方案。选项包括 minitoc、shortoc 和 titletoc,更多信息请参见评论

哪个 TOC 包与 Subfiles pkg 一起使用才能更方便地概述由多个文件组成的文档?

答案1

independent TOCs无需使用任何包,只需在主文件中添加即可

\tableofcontents
\let\tableofcontents\relax

带包裹

以下是如何使用包的示例

1- 表格。(已编辑)

使用上述两行方法,可以单独编译每个包含的子文件,并且它将拥有自己的目录。主文件将拥有一个全局目录。如果这就是想要的,则无需继续阅读。

但是,如果希望包含的文件在主文件中也有自己的目录,则可以使用以以下有点复杂的方式。约束是:

  1. tableof不会修改书籍类的默认值\tableofcontents,该默认值在使用一次时会显示目录,但也会删除文件.toc直至文档末尾,因此不能使用两次。

  2. tableof有自己的附加命令,例如\tableoftaggedcontents\tableof。这些命令本身显示目录,但不打开.toc文件进行写入。如果未使用任何命令,则必须使用\tableofcontents\tofOpenTocFileForWrite

  3. 如果使用\tofOpenTocFileForWrite,在\tableofcontents显示空的目录后,必须使用诸如\tableoftaggedcontents\tableof之类的包命令。

  4. 后面的命令不打印标题,用户可以使用\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 正确显示主目录,同时重复子目录,目标是仅概述每个章节的相关部分。

相关内容