文档管理系统

文档管理系统

我正在编写包含数学/图表/图解/代码等的技术文档。我想将它们编译成一个文档,并且必须能够独立运行每个文档。这些属于每个主题的技术文档都在各自的文件夹中。有人可以指导我如何更好地管理它并使其可移植吗?就像我在 Mac OSX/MS Windows 上处理相同的文档一样。

答案1

如果我理解问题正确,那么解决方案可能是使用包subfiles

假设这main.tex是您的主文件,并且file1.texfile2.texfile3.tex是您想要包含的文件。那么您的主文档将如下所示:

主文本

\documentclass[a4paper]{article}
<your preamble>
\usepackage{subfiles}

\begin{document}

\subfile{file1}

\subfile{file2}

\subfile{file3}

\end{document}

你可以把文本放在任意位置,就像使用\include\input代替 一样\subfile。 的内容file1.tex看起来会像这样

文件1.tex

\documentclass[main.tex]{subfiles}
\begin{document}

<your document goes here>

\end{document}

相同的结构应该适用于文件file2.texfile3.tex

现在,当你编译main.tex文件的内容时,也就是我所指出的<您的文档放在这里> 将包含在您的文档中,并且如果您编译,比如说file1.tex,那么的内容file2.tex将被编译,就好像它具有的文档类规范和序言一样main.tex

因此,现在项目中的所有文件都可以单独编译,但要编译其中一个子文件,则需要将其放在main.tex同一个目录中。

软件包的文档和安装

我不确定它是否subfiles作为标准软件包提供。对我来说它不是,所以这取决于你安装软件包的经验,我想说的是,这些软件包可以在以下位置找到:

http://www.ctan.org/tex-archive/macros/latex/contrib/subfiles/

其中还包含软件包的文档,即 pdf 文档subfiles.pdf。如果您不知道如何处理.ins.dtx文件,那么这里有一个小指南

http://en.wikibooks.org/wiki/LaTeX/Packages/Installing_Extra_Packages

如果您愿意,您可以将构建包时生成的文件subfiles.cls和放在与 相同的目录中,这样您就不需要依赖于下一个需要编译文件的系统是否安装了该包。subfiles.stymain.texsubfiels

编辑

回答

我有三级目录,1 - 顶层目录包含 rootfile.tex,2- 章节目录包含每章的主文件,3- 节目录包含该章的实际内容。我使用 \include{./Sections/part1} 在 2 中实例化 3。如何使用子文件管理这样的系统? – avlsi

假设你有文件

./rootfile.tex
./chapter/chap1.tex
./chapter/chap1/section1.1.tex
./chapter/chap1/section1.2.tex
./chapter/chap2.tex
./chapter/chap2/section2.1.tex
./chapter/chap2/section2.2.tex
./chapter/chap3.tex
./chapter/chap3/section3.1.tex
./chapter/chap3/section3.2.tex

并且您想要将文件sectionX.1.tex和包含sectionX.2.tex在 X=1,2 的文件中chapX.tex,并且仍然能够编译您的部分文件、章节文件和根文件。这可以通过让您的文件看起来像这样来实现:

根文件.tex:

\documentclass[a4paper]{article}
<your preamble>
\usepackage{subfiles}

\def\dirlevel{../}

\begin{document}
\def\dirlevel{}

\subfile{./chapter/chap1}
\subfile{./chapter/chap2}
\subfile{./chapter/chap3}

\end{document}

chapX.tex:

\documentclass[./../rootfile.tex]{subfiles}
\begin{document}

\subfile{./\dirlevel chap/chapX/sectionX.1}
\subfile{./\dirlevel chap/chapX/sectionX.2}

\end{document}

部分X.Y.tex:

\documentclass[./../../rootfile.tex]{subfiles}
\begin{document}

<your section goes here>

\end{document}

诀窍是,\def\dirlevel{}仅当您编译时才会读取rootfile.tex,而\def\dirlevel{../}无论您编译哪个文件,都会读取,因此无论您编译哪个文件,LaTeX 仍然能够找到您的文件。

相关内容