有没有办法告诉 Latex 输出包含单个章节的文件,同时仍然使用完整文档的格式?

有没有办法告诉 Latex 输出包含单个章节的文件,同时仍然使用完整文档的格式?

我想生成一个只包含我论文中一个章节的 pdf 文件。我的第一个想法是创建一个只包含该章节文本的 TeX 文件。

\documentclass[msc, twoside, final]{Thesis}
\begin{document}
   %single chapter text goes here
\end{document}

问题在于,我大学给我的文档类在文件开头添加了很多页样板,这非常令人分心。章节编号也会出错,因为它从 1 开始计数。

我在想,也许最好只生成完整论文的 PDF,然后使用一些工具提取我需要的页面。有没有办法做到这一点,同时确保参考文献和索引仍然有效?

答案1

回答这个问题分为两部分。

首先,要仅包含其中一个章节而不包含其他章节,最好的方法是使用命令\includeonly

将单独的章节放在单独的文件中,并使用命令将其包含在主文件中\include

\begin{document}
\include{chapter01}  %chapter01.tex
\include{chapter02}  %chapter02.tex
%...
\end{document}

然后,在文档序言中,使用 来\includeonly指定应呈现哪些包含文件。未提及的文件将计入章节编号,但不会出现在最终文档中。

\documentclass{Thesis}

% This way, chapter 1 is skipped but chapter 2 still appears as "chapter 2"
\includeonly{chapter02}

最后,为了摆脱前置内容样板,我能找到的最佳解决方案是编辑类文件以添加跳过前置内容的自定义选项。我通过模仿我的类文件定义其他选项的方式来做到这一点,所以我想它最终对其他人来说可能会看起来不同

% in Thesis.cls
% add an option to hide boilerplate
\newboolean{shouldShowFrontMatter}
\setboolean{shouldShowFrontMatter}{true}
\DeclareOption{NFM}{ \setboolean{shouldShowFrontMatter}{false} } 

% and put an if-then-else in the code that shows the front matter
\newcommand{\showfrontmatter}{%
   \ifthenelse{\boolean{shouldShowFrontMatter}}{
     % boilerplate goes here
    }{}
}

现在,我可以通过切换类选项来跳过样板

\documentclass[NFM]{Thesis}

相关内容