Latex - 抑制一段 Tex 输出,但保留书籍的编号等

Latex - 抑制一段 Tex 输出,但保留书籍的编号等

我正在使用在这里找到的一个技巧来在需要时抑制文本输出。见下文。唯一的问题是 1. 我的方程式仍然显示(未抑制)和 2. 我的表格显示 \hlines。我该如何修改它以摆脱那些。

注意:我的目的是运行一个章节,但从输出中删除一些材料,但仍保留我输出部分的表格、图形和方程式的数量。

谢谢,卢卡斯

\documentclass{article}
\long\def\suppress#1\endsuppress{%
  \begingroup%
    \tracinglostchars=0%
    \let\selectfont=\nullfont
    \nullfont #1\endgroup}
\pagestyle{empty}
\begin{document}
  \suppress
  This text will not be seen in the generated document.
  \endsuppress
  But this text will.
  \suppress
  And this text won't again.
  \endsuppress
\end{document}

答案1

您提到的常见用例是书籍的章节。在这种情况下,您应该研究\include\includeonly\include工作原理类似于\input,但还会处理辅助文件,以便计数器正确更新。这意味着一旦您有\include一个文件,只要它没有改变,您就可以从中省略它\includeonly。要注意的主要一点是\include会导致分页。因此,它最常用于书籍的章节。

\documentclass{book}
\includeonly{chapter2file} % comma separated list (or comment out to have everything)
\pagestyle{empty}
\begin{document}
  \include{chapter1file} % not seen in the generated document
  \include{chapter2file} % But this text will
  \include{chapter3file} % And this text won't again
\end{document}

每个章节chapter#file都有从该章节到\chapter{Chapter Title}该章节结尾的所有内容。

这也适用于各个部分,但听起来您的用例涉及的文件太多而不值得。

答案2

这是基于来自的 udbox 环境这里. 和lrbox一样,它有点脆弱。

与任何组一样,全局更改(如\stepcounter)将生效,而局部更改将丢失。此外,辅助文件条目(如\label)将被延迟,直到打印框为止(永不)。

后来:我想到了一种添加\labels 的方法,但我不得不使用 TikZ(这似乎有点过头了)。

\documentclass{article}
\usepackage{tikz}

\newsavebox{\bitbucket}
\newenvironment{supress}{\begin{udbox}{\bitbucket}}%
{\end{udbox}}

\newenvironment{supress*}{\begin{udbox}{\bitbucket}}% add aux file entries
{\end{udbox}\tikz[overlay]{\node[opacity=0]{\box\bitbucket};}}

\makeatletter
\def\udbox#1{% fragile
  \edef\reserved@a{%
  \endgroup
  \setbox#1\vbox{%
  \begingroup\aftergroup}%
  \def\noexpand\@currenvir{\@currenvir}%
  \def\noexpand\@currenvline{\on@line}}%
  \reserved@a
  \@endpefalse
  \color@setgroup
  \ignorespaces}
\def\endudbox{\unskip\color@endgroup}
\makeatother

\pagestyle{empty}
\begin{document}
  \begin{supress}
  This text will not be seen in the generated document.
  \end{supress}
  But this text will.
  \begin{supress}
  And this text won't again.
  \end{supress}
\end{document}

相关内容