用于latex的简单预处理器:检测您是包含的文件还是正在独立编译



我在latex中编写一个巨大的脚本。

我希望能够将每一章单独编译,因为使用Latex更容易进行黑客会话。

另一方面,我希望维护一个包含到目前为止编写的整个脚本的文档。

我不知道如何既维护这两个文档,又不产生永久性的烦人开销,因为一个文本文件既可以单独编写,也可以包含在其中。

如果有一个latex预处理器可以使用类似c语言的#define和#ifdef-#else-#endif语句,那将是非常有帮助的。这将在很大程度上方便写作。你知道乳胶中是否存在这样的东西吗,或者你如何做类似的事情?对于这个问题,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}

你能贴一个代码来执行这样的事情吗?

非常感谢这个包和给论坛的提示。

经过一段时间后,我发现存在一个类似于CPP的tex预处理器。也许设计得不是很好,但它很好地达到了我的目的。

魔法行是:

defjustbeingincluded{justbeingincluded}
ifxjustbeingincludedundefined
fi

必须在各自的源文件中适当使用。

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

您也可以浏览,或者加入,TeX和Friends。

最新更新