[XeTeX] not enough \XeTeXcharclass registers

Simon Cozens simon at simon-cozens.org
Mon Dec 14 03:11:15 CET 2015


On 14/12/2015 04:31, Jonathan Kew wrote:
> Probably, at least in principle; I don't remember the code offhand to
> know how easy/difficult this might be.

Here's the relevant code:

      p:=cur_chr; scan_usv_num;
      p:=p+cur_val;
      n:=sf_code(cur_val) mod @"10000;
      scan_optional_equals;
      scan_char_class;
      define(p,data,cur_val*@"10000 + n);

scan_char_class calls scan_int (which will scan a number up to
2147483647) and then ensures it is between 0 and 256. It's then scaled
up by << 16 and put into the table of equivalents by eq_define which
expects its final parameter to be a halfword. The maximum value of a
halfword is 1073741823, which I guess gives you a theoretical maximum of
16383 character classes.

It *might* be that if you up the maximum in scan_char_class it will all
just work.... right?


More information about the XeTeX mailing list