使用开关进行条件编译的环境

使用开关进行条件编译的环境

我想通过一个切换开关禁止编译文档的某些部分。原因是我的书包含大量 PGF 图表和图形,整本书需要很长时间才能编译完成。章节数量也很多。当我编写特定章节时,我通常会注释掉其他\input\include文件对应的章节。

我想创建一个新的环境,其中有一个切换开关可以自动执行此操作。只需一个评论/取消评论即可立即在单章文档和完整文档之间来回切换。

这是我的 MWE

\documentclass{book}
\usepackage{etoolbox}

\edef\leftbracechar{\string{}
\edef\rightbracechar{\string}}

\newcommand{\dontcompile}{true} % 'true' is meaningless, any word should do
\newenvironment{condcompile}{ 
    \ifdef{\dontcompile} \leftbracechar } { \rightbracechar }    

\begin{document}

\begin{condcompile}
    \chapter{first} % a chapter is usually a seperate file but here this should do
    Text of first
\end{condcompile}

\chapter{second}
Text of second

\chapter{third}
Text of third

\end{document}

如果我注释掉该行,\newcommand{\dontcompile}{true}我希望文档的行为就像所有章节都将被编译一样,而且它似乎运行良好。

如果我取消注释该行\newcommand{\dontcompile}{true},我希望编译时省略第一章。结果确实如此,但也会产生垃圾页面。基本上,我希望该行\newcommand{\dontcompile}{true}像一个切换开关一样运行。

有办法纠正吗?

相关内容