【问题标题】:Conditional Import in LaTeX?LaTeX 中的条件导入?
【发布时间】:2010-09-07 02:58:58
【问题描述】:

我将做大量的讲义,然后将它们编译到 LaTeX 中,这样我就可以拥有出色的文档以供将来查阅。我正在尝试整理一些东西,以便我可以拥有一堆包含讲座笔记的小文档,然后在学期结束时将它们编译成一个包含所有这些笔记的大文档。我过去曾成功使用过 import/include 等,但在编译主文档之前,我必须删除子文档头部和底部的内容。例如,我必须删除:

\begin{document}

\end{document}

在编译主文档之前从每个子文档中提取。这对于包含 5 个左右部分的报告来说很好,但对于包含 100+ 部分的报告来说,这是一件很痛苦的事情。使用导入命令时以编程方式忽略 LaTeX 文件内容的任何建议?

【问题讨论】:

  • 我希望我能给你一个好的答案,但在过去遇到这个问题时,我发现破解 .aux 文件以获得连续的页码、单独生成每个文档以及然后将 DVI 文件粘合在一起(这是八年前发生的事情,现在我想它会是相同的,但使用 PDF)。
  • 另见:tex.stackexchange.com

标签: latex import conditional


【解决方案1】:

我在这里看到了两种方法。要么仔细构建你的文档,要么使用一些 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 {}

【讨论】:

  • 有趣。我认为使用页眉、页脚和内容文档来构建文档可能会更好。这也将允许我为所有讲义维护一组通用的包等。谢谢杰克!
【解决方案2】:

这是另一种可能的方法:如果您将魔术字符串(即,“% % BEGIN LECTURE % %” ...“% % END LECTURE % %”)放在各个文件中,您可以找出个人的胆量文件,使用 make/sh 组装它们,然后 \include 它们。

【讨论】:

  • 为什么不让那些神奇的字符串成为\begin{document}\end{document}
【解决方案3】:

您可以使用另一种技巧,它不需要修改单个文件...只需暂时重新定义 {document} 环境(为良性,即无操作),\包括单个文件,然后恢复 {document} 环境定义。

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

嗯。您可能还必须临时重新定义 \documentclass 和 \usepackage。这是一个 hack,是的,但我认为它应该可以工作。

【讨论】:

    【解决方案4】:

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

    【讨论】:

    • 仅链接的答案在这里不受欢迎。也许您可以使用该软件包添加代码示例?
    猜你喜欢
    • 2021-12-20
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 2020-10-18
    • 2018-10-24
    相关资源
    最近更新 更多