Updated text for the KRB5_TRACE env variable.
[krb5.git] / doc / implement / fixunder.sty
1 % fixunder.sty,  31 May 1990, John T. Kohl
2 %
3 % The contents of this file are in the public domain.
4 %
5 %
6 % play games with _ to make it active and to provide a reasonable _
7 % character (from \tt in most cases), and a discretionary word-break point.
8
9 %
10 % Some \makeunder... macros for convenience in setting catcodes.
11 %
12 \def\makeunderactive{\catcode`\_=\active\relax}
13 \def\makeunderother{\catcode`\_=12\relax}
14 \def\makeunderletter{\catcode`\_=11\relax}
15 \def\makeundernormal{\catcode`\_=8\relax}
16 \makeunderother
17 \def\cctwlunder{_}
18
19 %
20 % The hair here is to allow things like \index to work reasonably with
21 % the new definition of underscore when the argument to index is part of
22 % a macro replacement and as such gets tokenized before \index is
23 % evaluated.
24 % [in the normal case at top-level, \index{foo_bar} works since \index
25 % does some hair to make _ into a reasonable character code, and \index
26 % does NOT use a macro expansion.  If you have something like
27 % \def\foo#1#2{\index{#1} bar #2}
28 % then \foo{baz_quux}{frobnitz} will result in baz_quux getting
29 % tokenized BEFORE \foo is expanded, so that the catcode hair in \index
30 % is to no avail.]
31 %
32 % \underrealfalse declares that you want to replace with the \tt _;
33 % \underrealtrue declares that you want to replace with \char95 (ASCII _).
34 %
35 % for things like \index which write things out to files, set
36 % \underrealfalse before evaluating the \index macro, and what actually
37 % gets written to the file is an _, rather than something like
38 % {\leavemode \kern... } (the typical definition of \_).
39 %
40 % the above example would then be
41 % \def\foo#1#2{\underrealfalse\index{#1}\underrealtrue bar #2}
42 %
43
44 \newif\ifunderreal
45 \underrealfalse
46 \makeunderactive
47 \def_{\ifunderreal\cctwlunder\else\leavevmode {\tt \cctwlunder}\discretionary{}{}{}\fi}
48 \let\_=_