Игнорировать какую-то самоопределенную команду во время компиляции?

Игнорировать какую-то самоопределенную команду во время компиляции?

В файле .tex есть некоторая самоопределенная команда

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

Я надеюсь, что смогу пропустить команду во время компиляции в моей финальной версии, но все равно компилировать ее в версиях до моей финальной версии. Есть ли какие-то способы сделать это?

решение1

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

И у вас есть булевы значения \finaltrueи \finalfalse. Для версий разработки, установленных \finalfalseгде-то в преамбулепосле \newif\iffinal, для окончательной компиляции установите \finaltrue, или установите оба и закомментируйте неактивное логическое значение:

\finalfalse
% \finaltrue

решение2

Другой довольно интуитивный метод, особенно если у вас есть несколько больших блоков кода, которые вы хотите включить в некоторые компиляции, но не в другие, — это пакет комментариев (также экономит много времени, если вы пишете очень большую рукопись, но работаете только над небольшим фрагментом за раз). Однако он отлично подходит и для небольших переключателей.

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

Связанный контент