![在非常大的文档中,需要 \input 什么以及需要 \include 什么?](https://linux22.com/image/308470/%E5%9C%A8%E9%9D%9E%E5%B8%B8%E5%A4%A7%E7%9A%84%E6%96%87%E6%A1%A3%E4%B8%AD%EF%BC%8C%E9%9C%80%E8%A6%81%20%5Cinput%20%E4%BB%80%E4%B9%88%E4%BB%A5%E5%8F%8A%E9%9C%80%E8%A6%81%20%5Cinclude%20%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我有一本大笔记本 (约 300 页,并且以每月约 50 页的速度增加),内容如下:
- 深层次结构(我使用部分、章节、节、小节、小小节和段落)
- 文档被分成许多部分(总共 30-40 个文件),这些部分
\input
按章节层次结构的各个级别进行分类(有些文件是一整章,有些文件是单个段落) - 许多图片和表格
- 相当多的参考文献带有(
\label
和\ref
) hyperref
- 大多数浮标都用锚固定,
H!
因为我不想让它们移动 - 有很多命令
\clearpage
,例如\nolinebreak
和,\nopagebreak
用于微调排版 - 包含大块文本的大型浮动框(以及许多溢出的框)
编译这个需要几十秒。大多数情况下这没问题,但如果我需要微调图片的大小(需要重复编译),这个过程就会变得非常缓慢。我知道加快速度的第一步是使用,这样没有改变的部分就不需要重新编译。但是,决定何时执行以及何时执行的\include
良好策略是什么?\include
\input
由于我无法(不幸)做\include
所有事情,我应该:
- 总是尝试将
\include
文件放在顶层,并将\input
其放在其下层?这样开销较小(处理完\include
每一章或每一部分后,我就可以不再担心,只使用\input
其中的一部分),但如果我正在处理一个非常大的章节,这会毁掉我的大部分性能优势。 - 始终尝试
\include
最低级别的文件,例如单个章节或\paragraph
s。这样做的问题是,如果S
之前足够小以适合一个文件的部分需要拆分为文件S1
、S2
和S3
(其中嵌套了S2
和),我现在必须返回查找 的位置,以便我可以将其转换为、 和文件和。此外,s 强制分页并弄乱我的布局。S3
S1
\include
\input
\include
S2
S3
\include
\include
介于两者之间。这是最灵活的选择,但工作量也最大,因为之前寻找和改组\include
s 的问题现在变得更加严重。
我该怎么办?是否有单一的最佳策略来管理大型、复杂的 Latex 项目?
答案1
\include
通常仅用于章节级别分段,特别是那些总是强制转到新页面的章节。因此,您描述的在 和 之间更改不同级别的章节\include
很少\input
适用。
使用下面的多个输入文件对 TeX 来说实际上没有任何区别,可能对协同工作或管理源代码控制有优势,但在多个文件和所有文件放在一个文件中之间并没有真正的 TeX 特定区别。
我假设您指的是[H]
来自 float 包而不是[!H]
(这是语法错误)。这当然会禁用 LaTeX 避免错误分页的主要机制,但如果您需要手动定位和分页,那就这样吧。
不清楚为什么你需要处理整个文档来调整图片的大小。如果我理解你的意思,你只需要做一次,只要你有一个包含正确大小文本块和一些虚拟文本的测试文档,你就可以在一页文档中完成此操作,然后再将其放入主文档中。