[Xy-pic] [OS X TeX] Change in beamer ?
Ross Moore
ross.moore at mq.edu.au
Thu Jun 5 00:57:24 CEST 2014
Hello Maria, and others,
On 05/06/2014, at 8:15 AM, Josep Maria Font wrote:
> As to Victor Ivrii's suggestion
>
>> \usepackage{etex}
>
> yes, this solves the problem, and further puzzles me, because, like Herb, I thought the present versions of TeX were actually etex... but now I recall a similar memory problem (not with beamer) a colleague had when editing a book, and which was solved also by loading etex...
>
> Any ideas on this last issue ?
Certainly we are using etex already, but the LaTeX macros
that allocate the extra \count and \dimen registers
need to be adapted to the increased number available,
and required to be used by Xy-pic.
Beamer also uses a lot, so you certainly need access to
the extra registers when both are loaded.
Here is what etex.sty actually does, redefining \alloc@ .
viz.
>>> %% We don't change the LaTeX definitions of \newcount, etc., but the
>>> %% \alloc@ macro doing the actual work is redefined.
>>>
>>> %% When the normal register pool for \count, \dimen, \skip, \muskip,
>>> %% \box, or \toks registers is exhausted, we switch to the extended pool.
>>>
>>> \def\alloc@#1#2#3#4#5%
>>> {\ifnum\count1#1<#4% make sure there's still room
>>> \allocationnumber\count1#1
>>> \global\advance\count1#1\@ne
>>> \global#3#5\allocationnumber
>>> \wlog{\string#5=\string#2\the\allocationnumber}%
>>> \else\ifnum#1<6
>>> \begingroup \escapechar\m at ne
>>> \expandafter\alloc@@\expandafter{\string#2}#5%
>>> \else\errmessage{No room for a new #2}\fi\fi
>>> }
>>>
>>> %% The \expandafter construction used here allows the generation of
>>> %% \newcount and \globcount from #1=count.
>>>
>>> \def\alloc@@#1#2%
>>> {\endgroup % restore \escapechar
>>> \wlog{Normal \csname#1\endcsname register pool exhausted,
>>> switching to extended pool.}%
>>> \global\expandafter\let
>>> \csname new#1\expandafter\endcsname
>>> \csname glob#1\endcsname
>>> \csname new#1\endcsname#2%
>>> }
It is that fallback to \alloc@@ that gives access
to more registers.
Here is the original \def\alloc@{...} in latex.ltx :
>>> \def\alloc@#1#2#3#4#5{\global\advance\count1#1\@ne
>>> \ch at ck#1#4#2% make sure there's still room
>>> \allocationnumber\count1#1%
>>> \global#3#5\allocationnumber
>>> \wlog{\string#5=\string#2\the\allocationnumber}}
>>>
>>> \gdef\ch at ck#1#2#3{%
>>> \ifnum\count1#1<#2\else
>>> \errmessage{No room for a new #3}%
>>> \fi}
>
> Best,
>
>
> JMaF
Hope this helps,
Ross
------------------------------------------------------------------------
Ross Moore ross.moore at mq.edu.au
Mathematics Department office: E7A-206
Macquarie University tel: +61 (0)2 9850 8955
Sydney, Australia 2109 fax: +61 (0)2 9850 8114
------------------------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: logo.png
Type: image/png
Size: 5257 bytes
Desc: not available
URL: <http://tug.org/pipermail/xy-pic/attachments/20140605/4da1f76a/attachment.png>
-------------- next part --------------
More information about the xy-pic
mailing list