乳胶的简单预处理器:检测您是包含文件还是独立编译

时间:2011-05-01 00:09:37

标签: latex preprocessor typesetting mathematical-typesetting

我在\ latex中处理一个巨大的脚本。

我希望能够将每个章节编译为独立的,因为使用Latex进行黑客攻击会更容易。

另一方面,我想保留一份文件,其中包含迄今为止编写的整个脚本。

我不知道如何在没有永久烦人开销的情况下维护这两个文档,因为tex文件既可以单独编写,也可以包含在内。

使用具有类似C的#define和#ifdef-#else- #endif语句的Latex预处理器是很有帮助的。这将在很大程度上促进写作。你知道乳胶中是否存在这样的东西,或者你怎么能做同等的事情? Google没有向我提供令人满意的答案。

编辑: 一些评论是为了避免误解:我知道非常简单的内置TEX预处理器,但这些命令不能正常工作。因此,对这些的引用不会帮助我。

我脚本中的章节应该是这样的(伪代码)

IF being_just_included defined
   %No header here, and document has already begun
ELSE
\input{common_header.tex} %Header things all my documents use
\begin{document}
ENDIF

%%% Lots of stuff

IF being_just_included defined
   %Nothing to do here
ELSE
   \end{document}
END IF

相比之下,我的完整脚本源文件应如下所示

\input{common_header.tex}
DEFINE being_just_included
\begin{document}
\input{preamble.tex}
\input{first_chapter.tex}
\input{second_chapter.tex}
\input{third_chapter.tex}
\end{document}

您可以发布执行此类操作的代码吗?

2 个答案:

答案 0 :(得分:3)

非常感谢您提供此套餐以及论坛的提示。

经过一段时间后,我发现存在一个tex预处理器,它类似于CPP。也许没有精心设计,但它很适合我的目的。

魔术线是:

\def\justbeingincluded{justbeingincluded}

\ifx\justbeingincluded\undefined

\fi

在相应的源文件中适当使用。

答案 1 :(得分:2)

这样做的一种方法是使用standalone包,用于此特定目的。

您也可以通过TeX and Friends浏览,也许加入。