如何在回忆录中正确创建多个文档(书籍)?(\book{} 的问题)

如何在回忆录中正确创建多个文档(书籍)?(\book{} 的问题)

使用 memoir,我试图在一个 LaTeX 项目中设置单个文档的集合(因为有很多交叉引用),并按book部门分隔。例如

\documentclass{memoir}
\begin{document}

\book{maindoc}
\tableofcontents* % ISSUE #1: includes all items of seconddoc as well

\chapter{maindoc first chapter}
\chapter{maindoc second chapter}

\book{seconddoc}
\tableofcontents* % ISSUE #1: includes all items of maindoc as well

\setcounter{chapter}{0} % ISSUE #2: ugly reset chapter counter with each book?
\chapter{seconddoc first chapter}
\chapter{seconddoc second chapter}

\end{document}

我原本以为图书部门会真正地将各个文档分开,并能够创建单独的目录。然而,正如上面的 MWE 评论中指出的那样,它给我带来了两个不愉快的意外:

  • 目录包括所有书籍的所有内容。
  • 必须手动重置书本水平以下的计数器。

感觉我的整个方法都是错的。我做错了什么吗?如果回忆录中的书籍的这种行为是设计出来的,那么你将如何创建一个由多个文档组成的单个 LaTeX 项目?

我尝试过 minitoc 方法,但是它存在(已知的)回忆录问题。

另外,我已经看过这个titletoc包,但如果我理解正确,我必须再次手动构建所有部分 ToC,对吗?

背景信息:我的项目将提供几份单独的文档,这些文档可以单独阅读,但它们共享一个参考书目、词汇表,并且相互引用很多。要求是制作一份 PDF。

答案1

可以通过扩展这个想法来实现:Memoir 有钩子可以将代码添加到文件中.toc。我们利用它在战略点添加回调。然后修改这些回调以控制目录本身中某些点的目录深度。

\documentclass{memoir}

\counterwithin{chapter}{book}
\renewcommand\thechapter{\arabic{chapter}}


\cftinsertcode{PRE-1}{  \setcounter{tocdepth}{-10} }
\cftinsertcode{PRE-2}{  \setcounter{tocdepth}{-10} }
\cftinsertcode{BIB}{  \setcounter{tocdepth}{10} }



\newcommand\ShowFirstBook{
  \cftinsertcode{PRE-1}{  \setcounter{tocdepth}{2} }
  \cftinsertcode{PRE-2}{  \setcounter{tocdepth}{-10} }
}

\newcommand\ShowSecondBook{
  \cftinsertcode{PRE-1}{  \setcounter{tocdepth}{-10} }
  \cftinsertcode{PRE-2}{  \setcounter{tocdepth}{2} }
}


\begin{document}

\cftinserthook{toc}{PRE-1}
\book{maindoc}
\ShowFirstBook
\tableofcontents* 




\chapter{maindoc first chapter}
\chapter{maindoc second chapter}


\cftinserthook{toc}{PRE-2}
\ShowSecondBook
\book{seconddoc}
\tableofcontents* 

\chapter{seconddoc first chapter}
\chapter{seconddoc second chapter}


\cftinserthook{toc}{BIB}

\begin{thebibliography}{99}
\bibitem{s} Test
\end{thebibliography}


\end{document}

相关内容