[tex-live] xdvipdfmx says "** ERROR ** Capacity exceeded"
Jonathan Kew
jfkthame at googlemail.com
Fri Feb 19 11:37:20 CET 2010
On 19 Feb 2010, at 08:47, Daniel Rubin wrote:
>
> Somebody else suggested the issue might be related to nested boxes. As
> I do have quite a lot of those, I'm hopeful that this might be the right
> track. What do you think?
As I suggested to you on the xetex list, I'm pretty sure this is the root of the problem.
A trivial testcase would be something like
\global\setbox0=\hbox{x}
\newcount\n
\loop \ifnum\n < 250
\global\setbox0=\hbox{\box0}
\advance\n by 1
\repeat
\shipout\box0
\end
which you can run with plain xetex. This works fine. But increase the loop limit to 260, and you'll get the DVI_STACK_DEPTH_MAX error.
Recompiling xdvipdfmx with a larger constant will defer the problem, but a nesting level of over 250 boxes is suggestive of a poorly-implemented page layout structure that could almost certainly be simplified/optimized.
(Note that if you do increase the driver stack to allow such complex pages, you could eventually hit a hard limit in the DVI format, and a problem in how TeX generates it. I think it's either 32K or 64K -- can't remember offhand if the relevant values are signed or unsigned 16-bit numbers. TeX itself doesn't detect the overflow, but the DVI output it creates will be incorrect.)
JK
More information about the tex-live
mailing list