我可以直接从 .toc 文件生成目录吗?

我可以直接从 .toc 文件生成目录吗?

我的情况是,我有一个 .toc 文件,我只想将其编译为实际的目录,而无需访问生成 .toc 文件的 .tex 文件。这可能吗?

答案1

我有一个方法,虽然不专业也不省时,但却是一种可能性。

给定一个包含以下内容的 .toc 文件:

\select@language {american}
\contentsline {chapter}{\numberline {1}{Introduction}}{1}{chapter.1}
\contentsline {chapter}{\numberline {2}{Main Part}}{2}{chapter.2}
\contentsline {section}{\numberline {2.1}{Some Section}}{2}{section.2.1}

复制 LaTeX 文件中的内容(包含编译所需的行,如\documentclass[10pt,a4paper]{book})。然后,删除所有不必要的行,如\select@language {american}。LaTeX 文件现在应如下所示(不可编译):

\documentclass[10pt,a4paper]{book}
\usepackage[american]{babel}

\begin{document}
\pagestyle{empty}

\contentsline {chapter}{\numberline {1}{Introduction}}{1}{chapter.1}
\contentsline {chapter}{\numberline {2}{Main Part}}{2}{chapter.2}
\contentsline {section}{\numberline {2.1}{Some Section}}{2}{section.2.1}

\end{document}

最后一步,删除{chapter.1}和等文本{section.2.1}。文件将如下所示:

\documentclass[10pt,a4paper]{book}
\usepackage[american]{babel}

\begin{document}
\pagestyle{empty}

\contentsline {chapter}{\numberline {1}{Introduction}}{1}
\contentsline {chapter}{\numberline {2}{Main Part}}{2}
\contentsline {section}{\numberline {2.1}{Some Section}}{2}

\end{document}

输出如下所示: 目录[1]

编辑:您无需删除类似的文本{chapter.1},而是可以在序言中添加以下内容:

\let\oldcontentsline\contentsline
\renewcommand{\contentsline}[4]{\oldcontentsline{#1}{#2}{#3}}

重新定义\contentsline命令。

答案2

这个答案类似于我的另一个最基本的,你可以简单地做

\documentclass{book}
\begin{document}
\input{file.toc}
\end{document}

问题最终在于修改目录工作方式的软件包(以及原始 tex 源的不可访问性)。如果hyperref最初已加载,则需要
\usepackage[draft]{hyperref}
在序言中。如果语言选项(babelpolyglosia)将 utf 字符放入目录中,则需要进行相应调整。

相关内容