¿Ignorar algún comando autodefinido durante la compilación?

¿Ignorar algún comando autodefinido durante la compilación?

En un archivo .tex, hay algún comando autodefinido

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

Espero poder omitir el comando durante la compilación en mi versión final, pero aún así compilarlo en versiones anteriores a mi versión final. ¿Hay alguna manera de hacer eso?

Respuesta1

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

Y tienes valores booleanos \finaltruey \finalfalse. Para versiones de desarrollo establecidas \finalfalseen algún lugar del preámbulodespués \newif\iffinal, para el conjunto de compilación final \finaltrue, o configure ambos y comente el booleano inactivo:

\finalfalse
% \finaltrue

Respuesta2

Otro método bastante intuitivo, especialmente si tiene varios bloques grandes de código que desea incluir en algunas compilaciones pero no en otras, es el paquete de comentarios (también ahorra mucho tiempo si está escribiendo un manuscrito muy grande, pero solo trabaja en una poco a poco). Sin embargo, también es ideal para cambios pequeños.

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

información relacionada