如何不渲染文档的一部分

如何不渲染文档的一部分

我想使用一个环境,让里面的所有内容都变得不可见!我希望在.tex编译期间读取所有内容,但不渲染我的 LaTeX 文档的某些部分。

问题是\begin{comment}……里面的代码没有被“读取”。我知道我的问题不寻常,但实际上我希望里面的代码被读取(它会生成一个文件),但我不希望它被渲染(它通常会写入一行又一行我不想要的代码)

问题\phantom是它仍然被“渲染”为一个空白矩形。如果我这样做,我会得到一个巨大的空白空间

(实际上,我想使用 SageTex,它“混合”了 SageMath 和 LaTeX。有一种方法可以直接在文件中写入 Sage 代码.tex。您必须使用 LaTeX 编译文档。它将生成一个.sage文档,这次我必须使用 Sage 进行编译。最后,我必须使用 LaTeX 进行编译,以便 Sage 计算能够被 LaTeX“理解”。例如,我可以编写一个 Sage 代码“ x = 2 + 2”,并使用$\sage{x}$,它将呈现4。但我的问题是,通过这样做,它总是先逐字呈现“ x = 2 + 2”。我不想看到那个。我希望我的计算被隐藏,而不是呈现,这样,在查看时.pdf我们无法确定是否使用了 Sage)

简单示例:

\usepackage{sagetex}
\begin{document}
%\begin{comment}
\begin{sageblock}
U = 12
\end{sageblock}
%\end{comment}
U = $\sage{U}$
\end{document}

我想要一个简单的U = 12“LaTeX 方式”渲染“”。这样我就可以渲染两次。一次是“sage code 方式”,一次是渲染良好的“LaTeX 方式”

StefanH 的解决方案:

\newcommand\donotshow[1]{\smash{\vphantom{#1}}}

看起来运行良好,但仍然出现错误。我认为这是因为我不想只\donotshow{something}使用\donotshow{ an environment, with multiple lines}

答案1

使用sagesilent环境而不是sageblock。根据sagetex手册,

此环境类似于sageblock,但它不会排版任何代码;它只是将其写入文件.sage。如果您必须在 Sage 中执行一些与您正在编写的文档不相关或不感兴趣的设置,这将非常有用。

答案2

comment包提供了一个comment从输出中删除部分代码的环境:

\documentclass{article}
\usepackage{comment}

\begin{document}
This text will be output.
\begin{comment}
And that won't.
\end{comment}
\end{document}

结果是

该文本将被输出。

答案3

也许不是最好的解决方案,但您可以用来\vphantom获取一个没有水平空间且与内容具有相同垂直距离的盒子,然后用 将其删除\smash

\documentclass{article}
\usepackage[nopar]{lipsum}
\newcommand\testA{\textbf{AAA}}
\newcommand\donotshow[1]{\smash{\vphantom{#1}}}
\begin{document}
\testA
\lipsum[1]
\textbf{[HERE]}
\donotshow{%
  Test of renewing commands
  \gdef\testA{\textbf{BBB}}
}%
\lipsum[2]
\testA
\end{document}

在 [此处] 处,一些文本与 的重新定义一起消失\testA。我使用\gdef,因为据我所知, 没有 的全局版本\renewcommand

在此处输入图片描述

答案4

您可以使用(标准 TeX)让小部分文本或数学消失。对于较大的部分,您可以使用包中的\phantom文本使文本透明。消失的部分只是不可见的,但仍会占用空间。\transparent{0}transparent

\documentclass{article}
\usepackage{transparent}
\newcommand\somestuff
  {Some sample text different from lipsum.
   \begin{equation}
     x = 1 + \phantom{2} + 3
   \end{equation}
   Some sample \phantom{text} different from lipsum.
  }
\begin{document}
\somestuff

{\transparent{0}%
\somestuff

}
\somestuff
\end{document}

在此处输入图片描述

相关内容