pdf 对象/目的地/内存限制

pdf 对象/目的地/内存限制

在较大文档的编译运行日志文件的末尾,我得到了

Output written on <\jobname>.pdf ( <a lot of> pages, <a lot of> bytes).
PDF statistics:
 14055 PDF objects out of 15390 (max. 8388607)
 3115 named destinations out of 3580 (max. 131072)
 5096 words of extra memory for PDF output out of 10000 (max. 10000000)

当达到“超出”数字时会发生什么?

当达到“最大”数字时会发生什么?

似乎有区别。(为什么还有两个不同的数字?)

我的 TeX 发行版中不包含 eTeX,目前还没有更新的发行版,并且没有 eTeX 就无法使用 eTeX 包。

编辑

我编译了

\documentclass{article}
\begin{document}
x
\end{document}

并得到

PDF statistics:
 12 PDF objects out of 1000 (max. 8388607)
 0 named destinations out of 1000 (max. 131072)
 1 words of extra memory for PDF output out of 10000 (max. 10000000)

在编译最新版本的较大文档时,这首先引发了我的问题,我得到了

PDF statistics:
 20057 PDF objects out of 22161 (max. 8388607)
 5013 named destinations out of 5155 (max. 131072)
 91295 words of extra memory for PDF output out of 106986 (max. 10000000)

即“max.”之前的数字刚刚被 TeX 根据需要增加了,正如 Lev Bishop 在回答中所解释的那样,因此得到了证实。

使用 TeX Live 2011 进行编译甚至导致

named destinations max. 500000 instead of only 131072.

答案1

如果超出“超出”范围,pdftex 将简单地分配更多内存,除非分配失败(除非你正在某台计算机上运行 pdftex,否则不太可能非常如果你的路由器、智能手机或者翻新的 pdp-11 很小,你不会注意到任何东西,只是日志文件中的“out of”数字会更大。

如果超过“最大值”,那么您将收到致命错误和如下消息:

namedest.tex:39: TeX capacity exceeded, sorry [pool size=3148339]
If you really absolutely need more capacity,
you can ask a wizard to enlarge me.

大多数情况下,这表明您的输入存在严重错误,例如无限循环,但如果您确实需要放大,那么大多数发行版都有办法做到这一点:例如,基于 web2c 的发行版(大多数)可以使用包含限制的文件 texmf.cnf。您可能还需要重新生成 pdftex 的格式才能注意到某些更改的限制。

相关内容