Latex-Variablen und if-Anweisung zum Anzeigen oder Ausblenden von Code

Latex-Variablen und if-Anweisung zum Anzeigen oder Ausblenden von Code

Ich möchte ein Dokument definieren, in dem ich am Anfang des Dokuments Variablen definiere und diese im Dokument verwende um festzulegen, aus welchen Codeteilen das PDF erstellt wird.

Dies ist der Code, und ich schreibe ihn in * *, wie ich es in Python machen würde.

\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}

Antwort1

Willkommen bei TeX.SE! Die folgende Variante vondiese Antwortsollte tun, was Sie wollen:

\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}

Bildschirmfoto

Hinweis: Verwenden Sie nicht $$ ... $$für die Anzeige von Formeln mit LaTeX, sondern verwenden Sie \[ ... \](sieheWarum ist \[ … \] $$ … $$ vorzuziehen?).

verwandte Informationen