LaTeX中的条件导入?

时间:2010-09-07 02:58:58

标签: latex import conditional

我将接受大量的讲义,然后将它们编入LaTeX,这样我就可以获得优秀的文档,以便将来让我查看。我正在尝试组织一些事情,这样我就可以得到一些包含讲座笔记的小文档,然后在学期结束时将它们编译成一个包含所有文档的大文档。我过去成功使用了import / include等,但是在编译主文档之前我必须删除子文档的头部和脚部的内容。例如,我必须删除:

\begin{document}

\end{document}
在编译主文档之前,从每个子文档中

。这对于包含5个左右的部分的报告来说很好,但对于100多个部分的东西来说,这很麻烦。使用import命令时以编程方式忽略LaTeX文件内容的任何建议?

4 个答案:

答案 0 :(得分:5)

我在这里看到两种方法。要么仔细构建你的文档,要么使用一些hacky TeX魔法:

聪明的方式

将较小的文档分成标题部分,页脚部分和内容部分。

header.tex:

\documentclass{article}
...
\begin{document}

footer.tex:

\end{document}

FOO-content.tex:

In this paper, we discuss an new approach to metasyntactic variables...

foo.tex(小纸版):

\include{header}
\include{foo-content}
\include{footer}

在收集的文章文档的.tex中:

\include{foo-content}

hacky TeX方式

将它放在一些常用的包含文件中,由您的个人文件使用:

\ifx\ismaindoc\undefined
\newcommand{\inbpdocument}{\begin{document}}
\newcommand{\outbpdocument}{\end{document}}
\else
\newcommand{\inbpdocument}{}
\newcommand{\outbpdocument}{}
\fi

在您的个人文件中使用\inbpdocument\outbpdocument代替\begin{document}\end{document}。在您的主文件中,在包含或导入任何内容之前输入\def \ismaindoc {}

答案 1 :(得分:2)

这是另一种可能的方法:如果你在单个文件中放入魔术字符串(即“%% BEGIN LECTURE %%”...“%% END LECTURE %%”),你可能会弄清楚个人的胆量文件,使用make / sh组装它们,然后\包含它们。

答案 2 :(得分:1)

你可以使用另一个hack,它不需要修改单个文件......只是暂时重新定义{document}环境(对于良性的东西,即无操作),\包括单个文件,然后恢复{document}环境定义。

如果我没记错的话,执行此操作的命令是\ let和\ renewenvironment。

嗯。您可能还必须暂时重新定义\ documentclass和\ usepackage。这是一个黑客,是的,但我认为它应该有用。

答案 3 :(得分:0)

我没有使用它,但看起来“子文件”包完全符合您的要求: http://en.wikibooks.org/wiki/LaTeX/Modular_Documents#Subfiles_package