编译时忽略一些自定义的命令?

编译时忽略一些自定义的命令?

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

相关内容