[tex-live] About \newXeTeXintercharclass and latexrelease package
Qing Lee
sobenlee at gmail.com
Sat May 9 00:10:48 CEST 2015
Hello,
After running the following example,
% !TeX program = XeLaTeX
\RequirePackage[2014/01/01]{latexrelease}
\newXeTeXintercharclass\foo
\stop
an error occurred:
! Undefined control sequence.
\newXeTeXintercharclass ->\e at alloc
\XeTeXcharclass \chardef
\xe at alloc@interc...
l.3 \newXeTeXintercharclass
\foo
?
It seems that \newXeTeXintercharclass is always defined in LaTeX 2015/01/01,
while \e at alloc is not defined correspondingly.
I can copy some codes from xetex.ini to fix this issue,
\makeatletter
\IncludeInRelease{0000/00/00}{\newXeTeXintercharclass}{Extended Allocation}
%
% Allocator for \XeTeXcharclass values, from Enrico Gregorio
%
\newcount\xe at alloc@intercharclass % allocates intercharclass
\xe at alloc@intercharclass=\thr@@ % from 4 (1,2 and 3 are used by CJK, AFAIK)
\def\xe at alloc@#1#2#3#4#5{\global\advance#1\@ne
\xe at ch@ck#1#4#2% make sure there's still room
\allocationnumber#1%
\global#3#5\allocationnumber
\wlog{\string#5=\string#2\the\allocationnumber}}
\def\xe at ch@ck#1#2#3{%
\ifnum#1<#2\else
\errmessage{No room for a new #3}%
\fi}
\def\newXeTeXintercharclass{%
\xe at alloc@\xe at alloc@intercharclass\XeTeXcharclass\chardef\@cclv}
%at most 254
\EndIncludeInRelease
\makeatother
But I don't think this is a good workaround.
Best,
Qing Lee
More information about the tex-live
mailing list