为什么建议将大型文档拆分成几个部分并将它们包含在内\include
?这是否只是过去计算机和 LaTeX 编译器速度较慢的时代的遗留,还是仍然是最新的?这种做法的优缺点是什么,在与其他外部工具(版本控制、查找/替换等)交互方面也是如此?
动机:我发现最近的讨论提到了这种做法(使用 LaTeX 撰写和管理论文,每天使用 LaTeX 和工作流程?),以及对以下问题的回答中对其提出批评的评论:每天使用 LaTeX 和工作流程?几个月前,我在评论中问了同样的问题遵循良好实践的技术和软件包但最好还是在这里将其作为“真正的问题”再次提出。
答案1
将大型文档拆分成几部分一件好事;使用当今的前端或编辑器,可以很容易地从一个部分跳转到另一个部分。
\include
和之间的选择\input
非常主观。\include
诞生于计算机速度很慢的时候,排版一本完整的书可能是喝一杯咖啡的好时机,也许两杯。它现在也有用处,因为即使章节不是\include
d,它也可以解决交叉引用。(另请参阅 CountZero 的答案以了解另一种用途。)
就我个人而言,我并不介意在试排版过程中没有解决一些参考文献,因为我对整体形状比对精确的行和分页符更感兴趣。在结构良好的主文件中注释掉一些行很容易,但对于传递给的字符串也是如此\includeonly
;但是使用\input
和注释不需要复制文件列表。当然,这不是什么大问题,但是当章节很多时,这可能会很麻烦;另一方面,从.aux
文件中写入和读取会增加一些开销。
使用现代计算机,排版一章或整本书所需的时间差别不大,除非这本书非常大,或者使用 TikZ 或 PSTricks 的图形很多,导致排版速度变慢。在这些情况下,使用\include
可以节省您的时间。
答案2
一方面,通过仅包含某些文件,你可以显著加快编译时间,例如当您有大量图形时。
另一个优点是您可以更轻松地管理多个人同时处理的文档。
最后,它增加了给定部分的可重用性(例如,您想要发布实验室实验集合的讲义,但您还希望能够一次打印一份和/或向您的学生提供一个实验的描述)。
所以我想这真的取决于你的想法。
答案3
作为对其他答案的补充,对我来说,仍然拆分长文档的一个重要原因并不总是节省编译预览或可重用性的时间(尽管这些原因通常足够了)或与其他作者共享,而是为了便于编辑。仅使用一章或一节甚至一小段 LaTeX 代码来编辑短文本具有一些优势:
你可以专注于本部分的内容。否则,在结束之前或之后,你会被目标之前/之后的其他事情分散注意力。
在短文中查找句子之类的任务比较容易。如果编辑器可以显示某种类型的大纲,那问题就不大了,但查找一段文本并搜索关键字可能会很烦人,因为在大型文档中,在目标部分之外的其他地方也会找到关键字。
限制错误的范围。特别是如果您没有使用版本控制系统,这可以避免您在编辑一小部分时意外损坏所有工作。整个文档中简单的错误搜索和替换可能会毁掉您的项目好几天。
调试。有时编译错误很隐晦,但您不知道是什么原因导致的,也不知道错误可能出在哪里。使用子文档有助于找到问题所在。
重新排序内容。例如,对于论文的章节来说,这通常没什么用,但在其他情况下,您可能不确定子文档的最终正确顺序,移动一些
\input{}
行比移动大块文本更容易、更安全。同样,这取决于编辑器功能。例如,使用 LyX 这根本不是问题,因为您只需在目录面板中重新排列各部分即可做到这一点。