为什么Tex / Latex在后续运行中没有加速?
我真的很想知道,为什么即使最近的Tex / Latex系统也没有使用任何缓存来加速以后的运行。每次我修复一个逗号*时,调用Latex花费我大约相同的时间,因为它需要加载和转换每个图片文件。
(*我知道即使更改一个微小的逗号也会影响整个结构,但当然,一个编写良好的缓存格式可以看到它的影响。另外,可能会出现这样的情况:只要速度快,就不需要100%的正确性。)
Tex的语言中是否存在使得复杂或不可能完成的事情,或者只是在Tex的原始实现中,没有必要这样做(因为在那些大型计算机上它本来会很慢)?
但另一方面,为什么这不会让其他人如此烦恼以至于他们已经启动了一个具有某种缓存的分支(或者将Tex文件透明地转换为更快解析的格式)?
有什么办法可以加快Latex的后续运行吗?除了将所有内容放入chapterXX.tex文件然后将它们评论出来之外?
没有找到相关结果
已邀请:
6 个回复
篮肥炼皖
TeX逐字节读取您的文件。首先,TeX将每个字符转换成对
。每个字符都有类别代码和ascii代码。类别代码表示该字符是左括号(
)或进入数学模式(
),符号宏(例如
)或字母(
,
)。 如果TeX获得类别代码为11(字母)或12(其他符号:数字,逗号,句号)的字符,TeX将启动一个段落。您想要缓存所有段落。 假设您在文档中更改了某些内容。 TeX如何检查更改后的所有段落是否相同?可能是你改变了一些char的类别。我是你改变了一些宏的含义。或者你已经删除了
,从而改变了当前的字体。 为了确保段落是相同的,你必须确保段落中的所有字符都是相同的,所有字符类别是相同的,当前字体是相同的,所有数学字体是相同的,一些值是一些内部变量是相同的(例如,
,
,
,
,
,
,
,
,......,........) 您可以确定只有在您的更改之前所有参数都是相同的。但在这种情况下,您必须在每个段落后保留所有状态。 你的系统
非常复杂。不是吗?
窃誓额
进行首次运行。这指示pdftex不生成PDF。 当然,很多东西都可以缓存(例如图形信息),但TeX的工作方式很难做到。 TeX启动时有一个相当复杂的初始化,一个TeX运行总是意味着写出一个PDF。为了进行缓存,您需要将数据保存在内存中(以提高效率)。 您可以使用IPC并与守护进程通信以获取缓存的信息。但这将涉及大量编程。 TeX是出于正常目的而如此快速,以至于这并没有真正获得太多收益。但另一方面,这是一个很好的问题,因为我已经看到LaTeX运行(在当前的硬件上)运行> 10小时,这将从缓存中受益。
遣莫捅炭
和
,您可以仅为子集重新运行文档。但这不是缓存,也不是为您提供完整的文档。
焙恍挝厂熄
剃摧庭峨僳
,其他包的附加文件)。因此,如果您添加逗号,则会重复使用此信息,因此排版运行比没有这个'20ѭ文件快得多。
盛梯獭八搽