コンパイル中に自己定義コマンドを無視しますか?

コンパイル中に自己定義コマンドを無視しますか?

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

関連情報