[XeTeX] Running out of memory in XeSearch while trying to XeIndex on largish latex files.

Ross Moore ross.moore at mq.edu.au
Wed Feb 9 22:16:36 CET 2011


Hello Michael,

On 10/02/2011, at 6:52 AM, Michael Joyner wrote:

> Good Afternoon,
> 
> Help! :)
> 
> We are trying to use XeIndex/XeSearch on what we consider to be some medium/small documents and are getting the following error:
> 
> ! TeX capacity exceeded, sorry [save size=80000].
> \pdfstringdef ... \let \GenericError \@gobblefour
>                                                   \let \GenericWarning \@gob...
> l.5671
> Here is how much of TeX's memory you used:
>  26308 strings out of 494522
>  458137 string characters out of 503842
>  738532 words of memory out of 3000000
>  29310 multiletter control sequences out of 15000+200000
>  9330 words of font info for 51 fonts, out of 3000000 for 9000
>  670 hyphenation exceptions out of 8191
>  40i,7n,43p,500b,80001s stack positions out of 5000i,500n,10000p,200000b,80000s
> Output written on 000002944.pdf (79 pages).
> 
> I have tried increasing the 'save size' above 80000, but it doesn't seem to go any higher. :(


That will not help.

This type of error almost invariably means that the program
code processing has fallen into an infinite loop.
Giving extra memory just gives it more to consume, simply
delaying the inevitable error by a few milliseconds.

Furthermore, \pdfstringdef  is notorious for hitting
such a loop. It has to expand everything and test against
many of (La)TeX's commands and primitives, frequently
creating a loop in this way when you are using your own
commands and complicated macro structures.

The usual way to overcome this is to recognise which
command triggers the looping and provide an appropriate
alternative to use when it occurs in the context of
trying to create a PDF string --- e.g., for a bookmark
or other structure not related to visual appearance.

This is part of the hyperref package coding.

Frequently one needs something like the following
in the document preamble:

\pdfstringDisableCommands{%
 \def\mymacro#1{}%
 ...
}

where \mymacro  normally causes processing to occur,
but doesn't actually put anything onto the page.
Since you are doing indexing, this is a typical kind
of command that could need such treatment.

We need to see a lot more of your document source,
and user-defined macros, to be able to determine
what is specifically going wrong.
Maybe with the above clues, you can do it yourself.

> 
> This occurs when the package is loaded, regardless as to whether we specify words to index or not. 
> 
> We tested with just XeSearch loading, and the same error occurred.

What causes  hyperref to load?  Is it up-to-date?
Let's see more of your .log file/Console output.


> 
> We would really appreciate any advice on this.
> 
> Thanks!
> -Mike

Hope this helps,

	Ross

------------------------------------------------------------------------
Ross Moore                                       ross.moore at mq.edu.au 
Mathematics Department                           office: E7A-419      
Macquarie University                             tel: +61 (0)2 9850 8955
Sydney, Australia  2109                          fax: +61 (0)2 9850 8114
------------------------------------------------------------------------






More information about the XeTeX mailing list