我正在写一本两卷的书,想在第一卷中包含两卷的目录。
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}
有关 的更多信息,请参阅 KOMA-Script 手册\DeclareTOCStyleEntries
。