The error message
Ouch---my internal constants have been clobbered!---case 14
is caused by
if (mem_min<min_halfword)or(mem_max>=max_halfword)or@|
(mem_bot-mem_min>max_halfword+1) then bad:=14;
in pdftex.web
. Probably you have changed the memory settings in texmf.cnf that triggers the error. For further analysis these changes would be useful.
Maximal main_memory
tex.ch
changes the code lines above to:
if (mem_bot-sup_main_memory<min_halfword)or@|
(mem_top+sup_main_memory>=max_halfword) then bad:=14;
Also it defines max_halfword
as:
@d max_halfword==@"FFFFFFF {largest allowable value in a |halfword|}
That is 228-1 = 268,435,455. The value for sup_main_memory
:
@!sup_main_memory = 256000000;
And mem_top
is initialized as:
mem_top := mem_bot + main_memory -1;
Then the latest condition for triggering the error becomes:
mem_top
+ sup_mem_memory
≥ max_half_word
main_memory
≥ max_halfword
- sup_main_memory
+ 1
main_memory
≥ 12,435,456
or main_memory
must be smaller or equal than 12,435,455.
Memory units
From tex.web
:
@!mem : array[mem_min..mem_max] of memory_word; {the big dynamic storage area}
...
@!memory_word = record@;@/
case four_choices of
1: (@!int:integer);
2: (@!gr:glue_ratio);
3: (@!hh:two_halves);
4: (@!qqqq:four_quarters);
end;
The translation to bytes seems to be system dependent, from texmfmem.h
my guess for memory_word
are four or eight bytes.
texmf.cnf
? In general there is no need to modify that file. At least use a local one.