Ignorar algum comando autodefinido durante a compilação?

Ignorar algum comando autodefinido durante a compilação?

Em um arquivo .tex, existe algum comando autodefinido

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

Espero poder pular o comando durante a compilação na minha versão final, mas ainda compilá-lo em versões anteriores à minha versão final. Existe alguma maneira de fazer isso?

Responder1

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

E você tem valores booleanos \finaltruee \finalfalse. Para versões de desenvolvimento definidas \finalfalseem algum lugar no preâmbulodepois \newif\iffinal, para o conjunto de compilação final \finaltrueou defina ambos e comente o booleano inativo:

\finalfalse
% \finaltrue

Responder2

Outro método bastante intuitivo, especialmente se você tiver vários blocos grandes de código que deseja incluir em algumas compilações, mas não em outras, é o pacote de comentários (também economiza muito tempo se você estiver escrevendo um manuscrito muito grande, mas trabalhando apenas em um um pouquinho de cada vez). No entanto, também é ótimo para pequenas alternâncias.

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

informação relacionada