Einige selbstdefinierte Befehle während der Kompilierung ignorieren?

Einige selbstdefinierte Befehle während der Kompilierung ignorieren?

In einer .tex-Datei gibt es einige selbstdefinierte Befehle

\newcommand{\mycomment}[1]{\textcolor{red}{#1}}
...
\mycomment{blah blah}
...

Ich hoffe, dass ich den Befehl während der Kompilierung in meiner endgültigen Version überspringen kann, ihn aber trotzdem in Versionen vor meiner endgültigen Version kompilieren kann. Gibt es Möglichkeiten, das zu tun?

Antwort1

\newif\iffinal
\newcommand{\mycomment}[1]{\iffinal\else\textcolor{red}{#1}\fi}
...
\mycomment{blah blah}

Und Sie haben Boolesche Werte \finaltrueund \finalfalse. Für Entwicklungsversionen, die \finalfalseirgendwo in der Präambel festgelegt sindnach \newif\iffinal, für die endgültige Kompilierung setzen Sie \finaltrue, oder setzen Sie beides und kommentieren Sie den inaktiven Booleschen Wert aus:

\finalfalse
% \finaltrue

Antwort2

Eine weitere recht intuitive Methode, insbesondere wenn Sie mehrere große Codeblöcke haben, die Sie in einige Kompilierungen einbinden möchten, in andere jedoch nicht, ist das Kommentarpaket (spart auch viel Zeit, wenn Sie ein sehr großes Manuskript schreiben, aber immer nur an einem kleinen Teil arbeiten). Es eignet sich jedoch auch hervorragend für kleine Umschalter.

\usepackage{comment}
 %switches    
\excludecomment{versiona}
\excludecomment{versionb}
\includecomment{versionx}

..

\begin{versiona}
\newcommand{\mycomment}[1]{\textcolor{red}{#1}
etc
\end{versiona}

\begin{versionb}
\newcommand{\mycomment}[1]{\textcolor{red}{#1}
etc
\end{versionb}

verwandte Informationen