[XeTeX] Running out of memory in XeSearch while trying to XeIndex on largish latex files.
Paul Isambert
zappathustra at free.fr
Thu Feb 10 14:11:45 CET 2011
Le 10/02/2011 02:55, Heiko Oberdiek a écrit :
> On Wed, Feb 09, 2011 at 10:17:54PM +0100, Paul Isambert wrote:
>
>> Le 09/02/2011 20:52, Michael Joyner a écrit :
>>> 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. :(
>>>
>>> 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.
>>>
>>> We would really appreciate any advice on this.
>> Without a minimal example, there isn't much I can do. But possible
>> loops are described on page 5 of the doc. Are you sure you're not in
>> such a case?
> \documentclass{article}
> \usepackage{xesearch}
> \begin{document}
> \tracingassigns=1
> Hello World
> \tracingassigns=0
> \end{document}
>
> The example shows that each word creates two command sequences,
> example for "Hello":
>
> {changing \Hello at cs@xs at words=undefined}
> {into \Hello at cs@xs at words=\relax}
> {changing \hello at ncs@xs at words=undefined}
> {into \hello at ncs@xs at words=\relax}
>
> I don't know the internals of xesearch.sty, but do you really need
> the meaning \relax? Or it is just the usual side effect of TeX's
> \csname?
The problem is I switched to LuaTeX not long after releasing XeSearch,
so I haven't practised it much.
But I know I do such things generally to turn the control sequence into
a switch:
\ifdefined\Hello at cs@xs at words
% Somehting related to "Hello" is on.
\else
% It's off.
\fi
> In \xs@@F at Test you are using:
>
> \expandafter\ifx\csname\xs at String @cs at xs@words\endcsname\relax
>
> Perhaps you can replace it by \ifcsname ...\endcsname?
Oh yes I can, and I don't know why I didn't use \ifcsname in the first
place.
Best,
Paul
More information about the XeTeX
mailing list