如何将两个文档(Vol.I 和 Vol.II)的目录合并到 Vol.I?

如何将两个文档(Vol.I 和 Vol.II)的目录合并到 Vol.I?

我正在写一本两卷的书,想在第一卷中包含两卷的目录。

Vol-One.tex:

\documentclass[12pt,a4paper,ngerman]{scrbook}
\usepackage[german]{babel}
\usepackage{xr}
\externaldocument{Vol-Two}

\pagestyle{headings}\markright{Begriffs--Sammlung}

\begin{document}
\title{Begriffs-- und Problemsammlung\\
       zur Theoretischen Physik\\
       \vspace*{24pt}I. Begriffe}
\author{Ralph v. Baltz}
\maketitle

% how to show TOC of both Vol.I and II?
\tableofcontents

\chapter[Grundbegriffe]{Grundbegriffe}
\label{GBegr}
Wenn wir von der Physik als Wissenschaft sprechen, so meinen wir einen Wissens-- und Erfahrungsschatz der
\emph{reproduzierbaren Ph\"anomene} der Natur,
den der Mensch im Lauf der Geschichte angesammelt und mit gro\ss em Erfolg systematisiert hat.

\newpage
\section{Physik, Mathematik und mehr}
Theorie als mathematisches Modell der Naturvorg\"ange.

Einstein ber\"uhmte Gleichung (\ref{eq1}). 

\chapter{Mechanik}
Die Klassische Mechanik beschreibt ----

\section{Newton'sche Formulierung}

\end{document}

Vol-Two.tex:

\documentclass[12pt,a4paper,ngerman]{scrbook}
\usepackage[german]{babel}
\usepackage{xr}
\externaldocument{Vol-One}

\pagestyle{headings}\markright{Begriffs--Sammlung}

\renewcommand{\thechapter}{\Alph{chapter}}

\begin{document}

\title{Begriffs-- und Problemsammlung\\
       \vspace*{12pt}zur Theoretischen Physik\\
       \vspace*{24pt}II. Probleme}
\author{Ralph v. Baltz}

\maketitle
 
% here TOC of Volume II only.
\tableofcontents

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5

\chapter{Grundbegriffe}

\section{Zwillingsparadoxon}
Zwillingsparadoxon, spektakul\"ar.

Eine Gleichung
\begin{equation}
  E = m c^2
\label{eq1}
\end{equation}

\section{Wellengleichung}
Text ababababababa

\end{document}

答案1

您可以尝试以下方法:

\begingroup
  \makeatletter
  \InputIfFileExists{Vol-Two.toc}{% USE THE SAME BASENAME AS FOR \externaldocument!
   }{}%
\endgroup

之后\tableofcontents。但是由于您使用的是 KOMA-Script,我建议使用 在文档序言中自动执行此操作\AfterStartingTOC。您还可以在页码中添加前缀,以明确表明它来自第 II 卷:

% Following environment is to fake file Vol-Two.toc of external document
% Vol-Two.tex. Don't use this for a real document!
\begin{filecontents}{Vol-Two.toc}
\babel@toc {german}{}\relax 
\contentsline {chapter}{\numberline {A}Grundbegriffe}{5}{}%
\contentsline {section}{\numberline {A.1}Zwillingsparadoxon}{5}{}%
\contentsline {section}{\numberline {A.2}Wellengleichung}{5}{}%
\providecommand \tocbasic@end@toc@file {}\tocbasic@end@toc@file 
\end{filecontents}

\documentclass[12pt,a4paper,ngerman]{scrbook}
\usepackage[german]{babel}
\usepackage{xr}
\externaldocument{Vol-Two}

\pagestyle{headings}\markright{Begriffs--Sammlung}

\newcommand\voliiprefixnumber[1]{II-#1}%
\newcommand\voliiprefixnumberbf[1]{\textbf{II-#1}}%
\makeatletter
\AfterStartingTOC[toc]{%
  \minisec{Volume-II}% print an additional small heading to group the ToC
  \DeclareTOCStyleEntries[pagenumberformat=\voliiprefixnumberbf,pagenumberwidth=2.5em]{tocline}{part,chapter}%
  \DeclareTOCStyleEntries[pagenumberformat=\voliiprefixnumber,pagenumberwidth=2.5em]{tocline}{section,subsection,subsubsection}%
  \begingroup
    \makeatletter
   \InputIfFileExists{Vol-Two.toc}{% USE THE SAME BASENAME AS FOR \externaldocument!
     \typeout{ToC of external document read}%
   }{%
     \typeout{Cannot find ToC of external document}%
   }%
 \endgroup
}
\makeatother

\begin{document}
\title{Begriffs-- und Problemsammlung\\
       zur Theoretischen Physik\\
       \vspace*{24pt}I. Begriffe}
\author{Ralph v. Baltz}
\maketitle

% how to show TOC of both Vol.I and II?
\tableofcontents

\chapter[Grundbegriffe]{Grundbegriffe}
\label{GBegr}
Wenn wir von der Physik als Wissenschaft sprechen, so meinen wir einen Wissens-- und Erfahrungsschatz der
\emph{reproduzierbaren Ph\"anomene} der Natur,
den der Mensch im Lauf der Geschichte angesammelt und mit gro\ss em Erfolg systematisiert hat.

\newpage
\section{Physik, Mathematik und mehr}
Theorie als mathematisches Modell der Naturvorg\"ange.

Einstein ber\"uhmte Gleichung (\ref{eq1}). 

\chapter{Mechanik}
Die Klassische Mechanik beschreibt ----

\section{Newton'sche Formulierung}

\end{document}

第 1 卷和第 2 卷的目录

有关 的更多信息,请参阅 KOMA-Script 手册\DeclareTOCStyleEntries

相关内容