Latex 变量和 if 语句显示或隐藏代码

Latex 变量和 if 语句显示或隐藏代码

我想定义一个文档,在文档的开头定义变量,并在文档中使用它们来定义从代码的哪些部分创建 pdf。

这是代码,我在**中写入,我将如何在python中执行此操作。

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\title{A test file}

\begin{document}
\maketitle

*Show_first_line = True*
*Show_second_line = False*

\section{Density functional theory}

*if Show_first_line == True: #Now the following formula should be compiled* 
     $$
     i \hbar \frac{\partial \Phi(\mathbf{r}, \mathbf{R} ; t)}{\partial t}=\left(-\frac{\hbar^{2}}{2 M} \frac{\partial^{2}}{\partial \mathbf{R}^{2}}-\frac{\hbar^{2}}{2 m} \frac{\partial^{2}}{\partial \mathbf{r}^{2}}+V(\mathbf{r}, \mathbf{R})\right) \Phi(\mathbf{r}, \mathbf{R} ; t)
     $$
*else:*
     $$
     i \hbar \frac{\partial \Phi(\mathbf{r}, \mathbf{R} ; t)}{\partial t}=\left( -\frac{\hbar^{2}}{2 m} \frac{\partial^{2}}{\partial \mathbf{r}^{2}}+V(\mathbf{r}, \mathbf{R})\right) \Phi(\mathbf{r}, \mathbf{R} ; t)
     $$

*if Show_second_line == True # In case it is false, nothing should be compiled*
     $$
     \mathrm{M} \gg \mathrm{m} \text { the Born-Oppenheimer approximation }
     $$

$$
i \hbar \frac{\partial \Phi(\mathbf{r}, \mathbf{R} ; t)}{\partial t}=
\left( -\frac{\hbar^{2}}{2 m} \frac{\partial^{2}}{\partial \mathbf{r}^{2}}+V(\mathbf{r}, \mathbf{R})\right) \Phi(\mathbf{r}, \mathbf{R} ; t)
$$

$$
M \ddot{\mathbf{R}}=-\frac{\partial E(\mathbf{R})}{\partial \mathbf{R}} \\
\left(-\frac{\hbar^{2}}{2 m} \frac{\partial^{2}}{\partial \mathbf{r}^{2}}+V(\mathbf{r}, \mathbf{R})\right) \Psi(\mathbf{r} | \mathbf{R})=E(\mathbf{R}) \Psi(\mathbf{r} | \mathbf{R})
$$

\end{document}

答案1

欢迎来到 TeX.SE!以下变体这个答案应该做你想做的事:

\documentclass{article}
\usepackage{environ}
\usepackage{etoolbox}

% The toggles are initially false
\newtoggle{showfirstline}
\newtoggle{showsecondline}

\toggletrue{showfirstline}
\togglefalse{showsecondline}    % useless here

% Uncomment this if you don't want spaces after \end{maybePrint} to be
% discarded (the default is \environfinalcode{\ignorespacesafterend}, which
% causes such spaces to be ignored):
%
%\environfinalcode{}

\NewEnviron{maybePrint}[1]{%
  \iftoggle{#1}{\BODY}{}%
}

\begin{document}

\begin{maybePrint}{showfirstline}
  \[ \frac{\pi^2}{6} = \sum_{n=1}^{+\infty} \frac{1}{n^2}  \]
\end{maybePrint}

\begin{maybePrint}{showsecondline}
  \[ a^2 = b^2 + c^2 \]
\end{maybePrint}

Other text.

\end{document}

截屏

注意:不要使用$$ ... $$LaTeX 显示公式,最好使用\[ ... \](参见为什么 \[ … \] 比 $$ … $$ 更可取?)。

相关内容