由十几个人编辑的大型文档

由十几个人编辑的大型文档

我们是一个由 12 人组成的团队,计划撰写一篇 50 页的论文。论文将分为几章。通常,每章最多由 2 到 3 个人撰写。

当每个人都在我们的 VCS 中编辑和提交一个大文件时,会产生问题。我想把它分成几个文件并输入。它工作得很好,但仍然被迫编译整个文档。我可以教育人们使用,\includeonly但我们真的想使用输入并不是包括

为了缓解这个问题,我想到了一个主意,即为每一章添加一个额外的“引导”文件,它的作用与“主”文件相同,但只针对特定章节。它确实有效,但似乎有点麻烦……

你对此有何感受?你会如何处理这样的用例?

答案1

正如一些人指出的那样,将所有预工厂材料放入单独的序言中很有用。我通常会制作一个自定义类包含所有必需的包、格式信息等。

将每个章节写成一个完全独立的文档,然后——正如 Martin Scharrer 指出的那样——您可以使用以下软件包之一来直接\input在主文档中使用这些章节:

  • docmute:一个最小软件包,提供的内容足以让您在主文档中包含独立的章节。
  • combine:一组更全面的类和包,用于合并会议论文集。提供更多处理标题和参考书目的功能。
  • standalone:当用作包时,其工作原理非常相似,docmute但提供更多功能,例如standalone裁剪输出的类。
  • subfiles:功能类似,docmute但需要稍微修改使用格式(\subfile{}而不是\input{}等)

这个类myclass.cls看起来应该是这样的:

\ProvidesClass{myclass}[2012/06/01 v1 Custom class for ... project]
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrbook}}% or whatever
\ProcessOptions\relax

\LoadClass{scrbook}

% Include whatever packages you need here...

% Use either one of these:
\RequirePackage{standalone}
%\RequirePackage{docmute}

现在您的章节看起来和表现起来就像是独立的文档:

\documentclass{myclass}

\begin{document}
\chapter{First Chapter}
Here is the first chapter
\end{document}

并且你的主文件可以输入这些

\documentclass{myclass}

\begin{document}
\input{chapter1.tex}
\input{chapter2.tex}
\end{document}

这些包修改了外部,document使得内部\documentclassdocument\input章中的环境均不受任何影响。

答案2

在 ConTeXt 中您可以创建一个环境文件(布局)和几个成分(各个章节)。组件与环境相链接。这样,您可以编译一个章节、其中的部分内容或整个文档。

详细信息请参阅ConTeXt wiki - 项目结构项目结构手册

以下是该结构的示例:

% file: introduction.tex
\startcomponent introduction
\project paper
  \startchapter [title=Introduction]
  \stopchapter
\stopcomponent

% file: theory.tex
\startcomponent theory
\project paper
  \startchapter [title=Theory]
  \stopchapter
\stopcomponent

% file: main.tex
\startproduct main
\project paper
  \component introduction
  \component theory
\stopproduct

% file: environ.tex
\startenvironment environ
  \setupbodyfont [palatino]
\stopenvironment

% file: project.tex
\startproject project
  \environment environ
\stopproject

项目文件是一种收集常见包含内容的方法:它使用 链接到环境文件\environment,以便\startproduct\startcomponent块可以\project同时包含项目的所有环境文件。如果需要,您也可以始终直接在文件中包含环境文件。

使用此设置,您可以用 编译各个章节,context introduction…用 编译整个文档context main

相关内容