web2c: \charsubdef

 
 5.4.1.1 '\charsubdef': Character substitutions
 ..............................................
 
 The most important primitive MLTeX adds is '\charsubdef', used in a way
 reminiscent of '\chardef':
      \charsubdef COMPOSITE [=] ACCENT BASE
 
    Each of COMPOSITE, ACCENT, and BASE are font glyph numbers, expressed
 in the usual TeX syntax: `\e symbolically, '145 for octal, "65 for hex,
 101 for decimal.
 
    MLTeX's '\charsubdef' declares how to construct an accented character
 glyph (not necessarily existing in the current font) using two character
 glyphs (that do exist).  Thus it defines whether a character glyph code,
 either typed as a single character or using the '\char' primitive, will
 be mapped to a font glyph or to an '\accent' glyph construction.
 
    For example, if you assume glyph code 138 (decimal) for an
 e-circumflex and you are using the Computer Modern fonts, which have the
 circumflex accent in position 18 and lowercase 'e' in the usual ASCII
 position 101 decimal, you would use '\charsubdef' as follows:
 
      \charsubdef 138 = 18 101
 
    For the plain TeX format to make use of this substitution, you have
 to redefine the circumflex accent macro '\^' in such a way that if its
 argument is character 'e' the expansion '\char138 ' is used instead of
 '\accent18 e'.  Similar '\charsubdef' declaration and macro
 redefinitions have to be done for all other accented characters.
 
    To disable a previous '\charsubdef C', redefine C as a pair of zeros.
 For example:
      \charsubdef '321 = 0 0  % disable N tilde
 (Octal '321 is the ISO Latin-1 value for the Spanish N tilde.)
 
    '\charsubdef' commands should only be given once.  Although in
 principle you can use '\charsubdef' at any time, the result is
 unspecified.  If '\charsubdef' declarations are changed, usually either
 incorrect character dimensions will be used or MLTeX will output missing
 character warnings.  (The substitution of a '\charsubdef' is used by TeX
 when appending the character node to the current horizontal list, to
 compute the width of a horizontal box when the box gets packed, and when
 building the '\accent' construction at '\shipout'-time.  In summary, the
 substitution is accessed often, so changing it is not desirable, nor
 generally useful.)