# latex gives me the error: Ouch---my internal constants have been clobbered

As the title states, compiling with latex produces the error, right away:

Ouch---my internal constants have been clobbered!---case 14


I have no idea what this means... I use TexLive 2012. I updated my texmf.cnf and ran fmtutil-sys and texhash. I guess texhash may have messed it up?

Any ideas?

As requested a minimal working example:

\documentclass{article}
\begin{document}
Any tex file.
\end{document}

-
Can you please give a minimal working example? –  Ivo Aug 13 '12 at 20:51
Welcome to TeX.SE! Please provide a minimum working example (MWE) that generates the error message (which is quite alarming, isn't it?). Without that information, it's going to be well-nigh impossible to diagnose the cause that gives rise to this uncomfortable message. –  Mico Aug 13 '12 at 20:51
latex will not even start compiling. That's the problem. It doesn't matter what tex file... –  Markus Aug 13 '12 at 20:53
Delete all auxiliary files created from the previous run. See File extensions of LaTeX-related files or Deleting external/auxiliary files? for some ideas. Then try to rerun your example code. –  Werner Aug 13 '12 at 20:58
what did you do with your texmf.cnf? In general there is no need to modify that file. At least use a local one. –  Herbert Aug 13 '12 at 21:01
show 1 more comment

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@|


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@|


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_memorymax_half_word
main_memorymax_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.

-
Indeed, I apparently had one too many zeros for the main_memory entry. Reread the config files. No more error! Thank you! –  Markus Aug 13 '12 at 21:03
Is there an easy way to find out the max_halfword? In the TeX sources I found a #define that set it to 1073741823 but this error occurs way before my main_memory variable reaches that value. –  Christian May 17 '13 at 17:27
@Christian I have updated the answer to add some calculation for main_memory. –  Heiko Oberdiek May 17 '13 at 18:14
@HeikoOberdiek Oh that's great. This works indeed just so :) Just out of curiosity, are these bytes, words or what else? If it's bytes, that's awfully few :/ –  Christian May 17 '13 at 19:19
@Christian Answer updated with my guesses for the size of the memory units. –  Heiko Oberdiek May 17 '13 at 19:34
show 1 more comment