我正在为一本手册写一个委托章节,我想制作一份包含文档三个特定章节的 PDF 文件,发送给正在为同一本手册写不同章节的同事(这是因为有些问题跨越了两个章节,我们希望尽量减少重叠)。显然,我可以将相关章节复制粘贴到一个新的 tex 文件中,然后从那里生成 PDF 文件,但我很好奇是否有办法告诉 LaTeX“生成一个仅包含此 tex 文件中的 xxx、yyy 和 zzz 章节的 PDF 文件”。
我正在运行 TeX Live 2009、Emacs 23 和 Ubuntu 12.04。如果需要,我很乐意使用命令行。
编辑,因为有些人似乎有这样的想法:我知道\includeonly{}
,过去我曾将其用于一些大型文档的特定目的。我不想在这里使用它,因为本章不够长,不足以陷入为每个部分管理单独的 tex 文件的麻烦。我只是想知道是否有可能一tex 文件,然后生成仅包含其中选定部分的 pdf一tex 文件。
答案1
最常用的方法之一是将主文件分成几个文件,然后使用命令将它们包含进去include
。
\documentclass{article}
% Preamble
\begin{document}
\include{chap1}
\include{chap2}
\include{chap3}
\include{chap4}
\end{document}
chap1.tex
,……,chap4.tex
是仅包含这些章节内容的 tex 文件(没有任何序言)。
如果你想要制作仅包含第 2 章和第 3 章的 PDF,你只需添加
\includeonly{chap2, chap3}
在您的序言中。这将需要多次编译,以获得正确的参考、超链接、目录等。
编辑
实现此目的的一种奇怪方法可能是使用包创建每个文件,而无需拆分主文件filecontents
,即:
\documentclass{article}
% Preamble
\usepackage{filecontents}
\begin{filecontents*}{chap1.tex}
% The content of chapter 1
\end{filecontents*}
% The same goes for the other files.
\begin{document}
\include{chap1}
\include{chap2}
\include{chap3}
\include{chap4}
\end{document}
您将所有内容保存在一个tex
文件中,这就是优势。
答案2
这是一个快速而肮脏的解决方案,但我真的不推荐它(;-))
使用命令\printthis[false]{%
在您不希望在文件中结束的代码部分之前,并在该部分结束后.pdf
添加。它会隐藏内容,就像注释一样。}
\documentclass{book}
\usepackage{blindtext}
\usepackage{etoolbox}
\newcommand{\printthis}[2][true]{%
\ifbool{#1}{%
#2%
}{%
% Drop it!!!!!
}%
}% End of \printthis
%
\begin{document}
\chapter{First}
\blindtext
\printthis[false]{%
\chapter{Two}
\blindtext
\chapter{Three}
\blindtext
}% End of \printthis
\chapter{Four}
\blindtext
\end{document}