我有一个文档源,其中包含编号部分和附加计数器。现在我想只打印一个部分和附录的一部分,保留原始部分编号和计数器值。实际上,我希望 latex 解析整个源但不输出部分内容。这可能吗?
\documentclass{article}
\begin{document}
\section{do not print}
For now, this section is not intended for printing
\section{do print}
But only this one
\appendix
\section{related to section 1}
suppress this one
\section{related to section 2}
Print this
\end{document}
我的文档看起来应该是这样的:
2 打印
但只打印这一个
B 与第 2 节相关
打印
是否有可能暂时隐藏保留编号的部分?
答案1
解决方案 1:\setcounter{section}{1}
您可以在之前使用来调整数字,并在其中一个包或或section{do print}
的适当环境中隐藏其他不需要的部分的内容。(如果第 1 部分足够短,则将其注释掉即可)。comment
version
versions
解决方案 2:更好的方法是将任一部分的内容放在\include{}
主文件中的单独文件中。使用 \includeonly{sect2, appb}
序言中的附加命令,您将自动获得所需的内容。开销似乎比解决方案 1 更大,但一旦内容增长,效率就会提高得多。
顺便说一句,在文件内容前\include
添加一个,这对于课堂上的一个来说是可以的,但对于课堂上的一个来说可能不必要。解决方法如下。在序言中放入:\clearpage
\chapter
book
\section
article
\usepackage{etoolbox}
\makeatletter
\let\includenobreak=\include
\let\@includenobreak=\@include
\patchcmd{\@includenobreak}{\clearpage}{}{}{}
\patchcmd{\includenobreak}{\@include}
{\@includenobreak}{}{}
\makeatother
并使用\includenobreak
代替\include
。
编辑:解决方案 2 的明确实现(基于\include
并且\includeonly
我通过包含虚拟的第 1 章和第 2 章作为来提供一个自包含的文件filecontents
。
%--------------chapters--------
\begin{filecontents*}{chap1}
\chapter{A first chapter}
At the beginning of chapter \thechapter, testcounter = \thetestcounter\par
The first chapter content...\par
\addtocounter{testcounter}{1}
At the end of chapter \thechapter, testcounter = \thetestcounter
\end{filecontents*}
\begin{filecontents*}{chap2}
\chapter{A second chapter}
At the beginning of chapter \thechapter, testcounter = \thetestcounter\par
The second chapter content...\par
\addtocounter{testcounter}{2}
At the end of chapter \thechapter, testcounter = \thetestcounter
\end{filecontents*}
%--------------main.tex--------
\documentclass[a4paper,openany]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\includeonly{chap2}
\newcounter{testcounter}
\begin{document}
\include{chap1}
\include{chap2}
\end{document}
采用这种策略,编译不包含\includeonly{chap2}
创建chapter1.aux
和chapter2.aux
(均包含在内main.aux
)分别包含(除其他外)
\setcounter{chapter}{1}
\setcounter{testcounter}{1}
和
\setcounter{chapter}{2}
\setcounter{testcounter}{3}
没有的结果\includeonly{chap2}
是:
并且当使用此命令时,人们会得到完全相同的第二页,表明计数器(标准和自定义)的值实际上都被自动保存了。
注意:添加的选项\documentclass
仅用于可视化目的。