編譯時忽略一些自訂指令?

編譯時忽略一些自訂指令?

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

相關內容