summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/fontinst/base/fibasics.dtx102
-rw-r--r--Master/texmf-dist/source/fontinst/base/ficommon.dtx9
-rw-r--r--Master/texmf-dist/source/fontinst/base/ficonv.dtx149
-rw-r--r--Master/texmf-dist/source/fontinst/base/fimain.dtx92
-rw-r--r--Master/texmf-dist/source/fontinst/base/fimapgen.dtx12
-rw-r--r--Master/texmf-dist/source/fontinst/base/fisource.dvibin1075200 -> 1091112 bytes
-rw-r--r--Master/texmf-dist/source/fontinst/base/fisource.ist47
-rw-r--r--Master/texmf-dist/source/fontinst/base/fisource.sty6
-rw-r--r--Master/texmf-dist/source/fontinst/base/fisource.tex26
-rw-r--r--Master/texmf-dist/source/fontinst/base/trig.dtx308
-rw-r--r--Master/texmf-dist/source/fontinst/base/xdoc/README67
-rw-r--r--Master/texmf-dist/source/fontinst/base/xdoc/docindex.dtx2100
-rw-r--r--Master/texmf-dist/source/fontinst/base/xdoc/docindex.ins48
-rw-r--r--Master/texmf-dist/source/fontinst/base/xdoc/docindex.pdfbin284629 -> 0 bytes
-rw-r--r--Master/texmf-dist/source/fontinst/base/xdoc/xdoc2.dtx5166
-rw-r--r--Master/texmf-dist/source/fontinst/base/xdoc/xdoc2.ins37
-rw-r--r--Master/texmf-dist/source/fontinst/base/xdoc/xdoc2.pdfbin482233 -> 0 bytes
-rw-r--r--Master/texmf-dist/source/fontinst/base/xdoc/xdocdemo.pdfbin181813 -> 0 bytes
-rw-r--r--Master/texmf-dist/source/fontinst/base/xdoc/xdocdemo.tex2599
19 files changed, 416 insertions, 10352 deletions
diff --git a/Master/texmf-dist/source/fontinst/base/fibasics.dtx b/Master/texmf-dist/source/fontinst/base/fibasics.dtx
index 9c459a075b6..56515e55140 100644
--- a/Master/texmf-dist/source/fontinst/base/fibasics.dtx
+++ b/Master/texmf-dist/source/fontinst/base/fibasics.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{1456}
+% \CheckSum{1512}
% \iffalse meta-comment
%
% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey,
@@ -64,7 +64,7 @@
% stuff any earlier than this. Note that |\fontinstversion| is not
% just used for indentification but also in |\needsfontinstversion|.
% \begin{macrocode}
-%<pkg|doc>\def\fontinstversion{1.927}
+%<pkg|doc>\def\fontinstversion{1.929}
% \end{macrocode}
% \end{macro}
%
@@ -86,7 +86,7 @@
%<doc>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
%<doc>\ProvidesPackage{fontdoc}
%<pkg>\ProvidesPackage{fontinst}
-%<pkg|doc>[2004/08/07 v\fontinstversion\space
+%<pkg|doc>[2005/02/05 v\fontinstversion\space
%<doc> fontinst documentation package]
%<pkg> fontinst installation package]
% \end{macrocode}
@@ -665,19 +665,25 @@
%
% \begin{macro}{\plainint}
% \begin{macro}{\plaindiv}
+% \begin{macro}{\plainneg}
+% \changes{1.928}{2004/11/24}{Added \cs{plainneg}. That the
+% \protect\LaTeX\ \cs{neg} is taken over by \package{fontdoc} but
+% is needed in \texttt{oms.etx} had gone unnoticed for over ten
+% years!! (LH) Problem reported by Peter Dyballa.}
% \begin{macro}{\plainmax}
% \begin{macro}{\plainmin}
-% \package{fontdoc} saves away \LaTeX's |\int|, |\div|, |\max|, and
-% |\min| as |\plainint|, |\plaindiv|, |\plainmax|, and |\plainmin|,
-% since these control sequences are going to be used for other
-% purposes.
+% \package{fontdoc} saves away \LaTeX's |\int|, |\div|, |\neg|, |\max|,
+% and |\min| as |\plainint|, |\plaindiv|, |\plainneg|, |\plainmax|,
+% and |\plainmin| respectively, since these control sequences are going
+% to be used for other purposes.
% \begin{macrocode}
\let\plainint=\int
\let\plaindiv=\div
+\let\plainneg=\neg
\let\plainmax=\max
\let\plainmin=\min
% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{macro}
+% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
%
% \begin{macro}{\TypesetList}
% \changes{1.914}{2000/05/13}{Macro added. (LH)}
@@ -1319,9 +1325,7 @@
%
% \subsection{Conditionals}
%
-% \subsubsection
-% {Conditionals in \package{fontinst}}
-% ^^A \subsubsection{Conditionals in fontinst}
+% \subsubsection{Conditionals in \package{fontinst}}
%
% \begin{macro}{\then}
% \begin{macro}{\if_true}
@@ -1494,9 +1498,7 @@
% \end{macro}
%
%
-% \subsubsection
-% {Conditionals in \package{fontdoc}}
-% ^^A \subsubsection{Conditionals in fontdoc}
+% \subsubsection{Conditionals in \package{fontdoc}}
%
% \changes{1.909}{1999/10/16}{System for documenting both branches of
% \texttt{if} statements in ETX and MTX files added. (LH)}
@@ -1928,6 +1930,78 @@
% \end{macro}
%
%
+% \subsection{Hexadecimal numbers}
+%
+% Some of the file formats \package{fontinst} can generate requires
+% that some numbers are written in hexadecimal form rather than in
+% \TeX's default decimal form. This is somewhat awkward, as it would be
+% very hard to implement without using explicit arithmetic.
+%
+% \begin{macro}{\format_hex}
+% The |\format_hex| command formats a number as hexadecimal digits.
+% The syntax is
+% \begin{quote}
+% |\format_hex|\marg{command}\marg{value}\marg{digits}
+% \end{quote}
+% where \meta{command} will be |\def|ined to be the formatted number.
+% \meta{value} is the number to format; it must not be negative.
+% \meta{digits} is the number of digits to generate. If the
+% \meta{value} is greater than or equal to $16^{\mathit{digits}}$
+% then |\a_count| will be set to \meta{value} divided by this number
+% and the formatted value will be for the corresponding reminder.
+% \changes{1.928}{2004/11/28}{Macro added. (LH)}
+%
+% The macro overwrites |\a_count|, |\b_count|, and |\c_count|.
+%
+% \begin{macro}{\format_hex_i}
+% The |\format_hex_i| macro is the iterator for |\format_hex|.
+% It is used in the context
+% \begin{quote}
+% |\format_hex_i|\marg{command}\marg{control token}
+% \end{quote}
+% If the \meta{control token} is |i| then nothing is done.
+% Otherwise the quotient and reminder of |\a_count| with respect to
+% $16$ is computed, where the former is assigned to |\a_count| and
+% the latter is converted to hexadecimal and prepended to the
+% \meta{command}, after which the macro expands to
+% |\format_hex_i|\meta{command}.
+% \begin{macrocode}
+%<*pkg>
+\def\format_hex_i#1#2{
+ \if #2i \else
+ \b_count=\a_count
+ \divide \a_count \sixt@@n
+ \c_count=\a_count
+ \multiply \c_count \sixt@@n
+ \advance \b_count -\c_count
+ \edef#1{
+ \ifcase\b_count 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or
+ 9\or a\or b\or c\or d\or e\or f\fi
+ #1
+ }
+ \expandafter\format_hex_i \expandafter#1
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% To get the loop to run the wanted number of times, one uses the
+% trick that |\romannumeral| can generate an arbitrary number of |m|s.
+% The |\identity_one| stuff is to prevent |\number| from processesing
+% the subsequent |001~|, which will be the last that |\roman| reads.
+% \begin{macrocode}
+\def\format_hex#1#2#3{
+ \a_count=#2
+ \let#1\empty_command
+ \expandafter\format_hex_i \expandafter#1 \romannumeral
+ \expandafter\identity_one\expandafter{\number#3}001~
+}
+%</pkg>
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
% \subsection{Error, warning, and info messages}
%
% The code in this subsection is an adaptation of code from the
diff --git a/Master/texmf-dist/source/fontinst/base/ficommon.dtx b/Master/texmf-dist/source/fontinst/base/ficommon.dtx
index 3127c25cbe5..22348cd9ce8 100644
--- a/Master/texmf-dist/source/fontinst/base/ficommon.dtx
+++ b/Master/texmf-dist/source/fontinst/base/ficommon.dtx
@@ -1653,8 +1653,8 @@
% \end{macrocode}
% \end{macro}
%
-
-
+%
+%
% \subsection{Setting variables}
% \label{Ssec:Variables}
%
@@ -2335,7 +2335,7 @@
% repetition of the \meta{body code}, this variable will get reset to
% the next item in the \meta{csep-list}.
%
-% |\for|\textellipsis\ |\endfor| constructions can be nested.
+% |\foreach|\textellipsis\ |\endfor| constructions can be nested.
% \meta{name} is used by |\foreach| to identify its matching |\endfor|,
% so they need to be identical in |\foreach| and |\endfor|.
%
@@ -2381,7 +2381,8 @@
% \end{macrocode}
%
% In \package{fontdoc}, |\comment| starts a new text paragraph and
-% leaves the argument to be typeset.
+% leaves the argument to be typeset. Note that the argument group
+% thus survives; some commands make use of this fact.
% \begin{macrocode}
%<*doc>
\def\comment{\par\noindent}
diff --git a/Master/texmf-dist/source/fontinst/base/ficonv.dtx b/Master/texmf-dist/source/fontinst/base/ficonv.dtx
index e1fee953b8c..8af04ffc216 100644
--- a/Master/texmf-dist/source/fontinst/base/ficonv.dtx
+++ b/Master/texmf-dist/source/fontinst/base/ficonv.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{2221}
+% \CheckSum{2337}
% \iffalse meta-comment
%
% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey,
@@ -301,9 +301,152 @@
\out_line{\percent_char\four_spaces #1~=~"See~file~#2",}
\fi
}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Converting an ETX file to CMAP file}
+% \changes{1.928}{2004/11/28}{ETX to CMAP converter added. (LH)}
+%
+% \DescribeMacro{\etxtocmap}
+% The command
+% \begin{quote}
+% |\etxtocmap|\marg{etxfile}\marg{cmapfile}
+% \end{quote}
+% reads \meta{etxfile}|.etx| and generates a ToUnicode CMap file
+% \meta{cmapfile}|.cmap| that maps slots to Unicode strings as
+% specified by the \meta{etxfile}.
+%
+% \begin{macro}{\write_cmap_body}
+% The |\write_cmap_body| command writes the actual CMap
+% data\footnote{As opposed to silly stuff that is requested by the
+% file format specification but probably isn't of any use for
+% anything, which is written by \cs{ref_to_sourcefile}.} to the
+% current output file. The syntax is
+% \begin{quote}
+% |\write_cmap_body|\marg{etxfile}
+% \end{quote}
+%
+% More precisely, what this command writes is the codespace range
+% specification and the mappings. The latter are all encoded using
+% \texttt{bfchar} operators.
+% \begin{macrocode}
+\def\write_cmap_body#1{
+ \out_line{1~begincodespacerange~<00>~<FF>~endcodespacerange}
+ \let\do_slot=\_a_true
+ \def\Unicode##1##2{\cmap_charseq{\cmap_codepoint{##1}{##2}}}
+ \let\charseq=\cmap_charseq
+ \inputetx{#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\cmap_codepoint}
+% This is what |\Unicode| is inside a |\charseq|. It appends a
+% UTF-16BE character in hexadecimal notation (either four hex
+% digits for a character in the BMP, or eight hex digits for
+% a surrogate pair) to |\a_macro|, and also appends a space for
+% grouping the digits for easier reading.
+% \changes{1.928}{2004/12/05}{Added \cs{uppercase} to ensure case
+% independence. (LH)}
+% \begin{macrocode}
+\def\cmap_codepoint#1#2{
+ \uppercase{\a_count="#1\x_relax}
+ \ifnum "10000>\a_count
+ \format_hex\b_macro{\a_count}{4}
+ \edef\a_macro{\a_macro \b_macro \space}
+ \else
+ \advance \a_count -"10000
+ \d_count=\a_count
+ \divide \a_count "400
+ \b_count=\a_count
+ \multiply \b_count "400
+ \advance \d_count -\b_count
+ \advance \a_count "D800
+ \advance \d_count "DC00~
+ \format_hex\b_macro{\a_count}{4}
+ \format_hex\c_macro{\d_count}{4}
+ \edef\a_macro{\a_macro \b_macro \c_macro \space}
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\cmap_charseq}
+% This macro is what |\charseq| is when generating a CMap; all
+% writing of CMap entries is routed through it. Only the first
+% character equivalent of each slot should get written to file, so
+% the |_a_| switch is used for keeping track of whether this would be
+% the first.
+%
+% \begin{macrocode}
+\def\cmap_charseq#1{%
+ \if_a_
+ \bgroup
+ \let\Unicode=\cmap_codepoint
+ \let\a_macro=\empty_command
+ #1
+ \format_hex\b_macro{\slot_number}{2}
+ \out_line{1~beginbfchar~<\b_macro>~<~\a_macro>~endbfchar}
+ \egroup
+ \_a_false
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+% \begin{macro}{\etxtocmap}
+% The
+% \begin{macrocode}
+\def\etxtocmap#1#2{\begingroup
+ \inputetx{#1}
+ \open_out{#2.cmap}
+ \out_line{\percent_char !PS-Adobe-3.0~Resource-CMap}
+ \out_line{\percent_char\percent_char
+ DocumentNeededResources:~procset~CIDInit}
+ \out_line{\percent_char\percent_char
+ IncludeResource:~procset~CIDInit}
+% \end{macrocode}
+% Here comes the first problem: the CMap must have a name. If the ETX
+% file sets the string variable \texttt{cmapname} then that is used
+% as name, but otherwise |fontinst-|\meta{cmapfile} is used as name.
+% Note that this is different from the pattern in |\etxtoenc|, which
+% instead uses the \meta{etxname}.
+% \begin{macrocode}
+ \setstr{cmapname}{fontinst-#2}
+ \out_line{\percent_char\percent_char
+ BeginResource:~CMap~\str{cmapname}}
+% \end{macrocode}
+% The next problem is whether one should bother with the quite
+% extensive version control junk that Adobe has specified. I prefer
+% not to, because it is very much geared towards using CMaps with
+% CIDFonts, which is not the case here.
+%
+% Thus it is time for the actual PS code.
+% \begin{macrocode}
+ \out_line{/CIDInit~/ProcSet~findresource~begin}
+ \out_line{7~dict~begin}
+ \out_line{begincmap}
+ \out_line{/CMapName~/\str{cmapname}~def}
+ \out_line{/CMapType~2~def}
+ \write_cmap_body{#1}
+ \out_line{endcmap}
+ \out_line{CMapName~currentdict~/CMap~defineresource~pop}
+ \out_line{end}
+ \out_line{end}
+ \out_line{\percent_char\percent_char EndResource}
+ \out_line{\percent_char\percent_char EOF}
+ \close_out{ToUnicode~CMap}
+\endgroup}
%</misc>
% \end{macrocode}
% \end{macro}
+%
+%
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -1384,6 +1527,8 @@
% \changes{1.917}{2001/03/13}{Added resetting of
% \cs{setsomething_global}---assignments made here must be
% local. (LH)}
+% \changes{1.929}{2005/02/05}{Corrected `\texttt{pltotf}' in
+% comment. (LH)}
% \begin{macrocode}
\def\mtxtopl#1#2{{
\let\setsomething_global=\x_relax
@@ -1398,7 +1543,7 @@
\out_line{}
\out_line{(COMMENT~This~file~can~be~turned~into~
a~ligless~TeX~font~with)}
- \out_line{(COMMENT~pltotfm~#2.pl~#2.tfm)}
+ \out_line{(COMMENT~pltotf~#2.pl~#2.tfm)}
\out_line{}
\out_line{(COMMENT~THIS~FILE~CAN~THEN~BE~DELETED.)}
\out_line{}
diff --git a/Master/texmf-dist/source/fontinst/base/fimain.dtx b/Master/texmf-dist/source/fontinst/base/fimain.dtx
index 62ae7dad6fa..6edad395440 100644
--- a/Master/texmf-dist/source/fontinst/base/fimain.dtx
+++ b/Master/texmf-dist/source/fontinst/base/fimain.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{4010}
+% \CheckSum{4033}
% \iffalse meta-comment
%
% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey,
@@ -97,9 +97,7 @@
\global\slot@number=0%
\FD@slot@known@true
\IfFileExists{\lowercase@file.etx}{%
- \def\relax{\let\relax=\x@relax\iffalse}%
- \let\encoding=\fi
- \outer\x@cs\def{endencoding}{\endinput}%
+ \FD@relax@encoding@tricks
\@@input \@filef@und
\let\relax=\x@relax
}{%
@@ -109,6 +107,23 @@
}
\endgroup
}
+% \end{macrocode}
+% \begin{macro}{\FD@relax@encoding@tricks}
+% There is a problem with |\if| \dots\ |\fi| nesting in the
+% redefinition of |\relax| and |\encoding|, which interacts badly
+% with |\IfFileExists|. To work around that, these redefinitions
+% are hidden in the |\FD@relax@encoding@tricks| macro.
+% \changes{1.928}{2004/11/24}{Macro added, to fix bug reported by
+% Peter Dyballa. (LH)}
+% \begin{macrocode}
+\def\FD@relax@encoding@tricks{%
+ \def\relax{\let\relax=\x@relax\iffalse}%
+ \let\encoding=\fi
+ \outer\x@cs\def{endencoding}{\endinput}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
\def\encoding{%
\par
\ifFD@spec@ \addvspace{\bigskipamount}\fi
@@ -586,6 +601,65 @@
% \end{macrocode}
% \end{macro}\end{macro}\end{macro}\end{macro}
%
+% \begin{macro}{\charseq}
+% Most commonly occurring glyphs correspond to one |\Unicode|
+% character, but this is not at all true in general---in fact there
+% may even be letters which cannot be encoded as single characters,
+% as they do not exist in precomposed form but have to be expressed
+% with a base letter and combining diacritical mark. Reasonable
+% compliance with the standard requires supporting character
+% sequences as well as individual characters.
+% \changes{1.928}{2004/11/27}{Command added. (LH)}
+% \changes{1.928}{2004/12/16}{Typeset form changed, from paragraph to
+% a one-item-per-line list. (LH)}
+%
+% In \package{fontinst}, the |\charseq| command is used to specify
+% such a character sequence. The syntax is
+% \begin{quote}
+% |\charseq|\marg{\cs{Unicode} commands}
+% \end{quote}
+% where the \meta{\cs{Unicode} commands} is one or several |\Unicode|
+% commands. This means the sequence of those characters. For example
+% \begin{quote}
+% |\charseq{|\\
+% | \Unicode{0066}{LATIN SMALL LETTER F}|\\
+% | \Unicode{0069}{LATIN SMALL LETTER I}|\\
+% |}|
+% \end{quote}
+% is typeset as
+% \begin{quote}
+% Unicode character sequence:\\
+% \vadjust{}\quad\texttt{U+0066} (\textsc{latin small letter f})\\
+% \vadjust{}\quad\texttt{U+0069} (\textsc{latin small letter i})
+% \end{quote}
+% This indentation is made using the \texttt{IfBranch} environment,
+% which could be considered a bit hackish.
+%
+% |\charseq| is gobbled in \Module{pkg} and \Module{misc}, but in the
+% latter case it might get redefined.
+% \begin{macrocode}
+%<pkg|misc>\let\charseq=\gobble_one
+% \end{macrocode}
+% Note how the environment group restores the definition
+% of |\Unicode|.
+% \begin{macrocode}
+%<*doc>
+\newcommand\charseq[1]{%
+ \comment{Unicode character sequence:}%
+ \begin{IfBranch}%
+ \def\Unicode##1##2{%
+ \noindent\FD@codepoint{##1}
+ \ifx\par##2\par\else(\FD@charname{##2})\fi
+ \par
+ }%
+ #1%
+ \end{IfBranch}%
+}
+%</doc>
+% \end{macrocode}
+% \end{macro}
+%
+%
% \DescribeMacro{\vartop}
% \DescribeMacro{\varmid}
% \DescribeMacro{\varbot}
@@ -4011,6 +4085,8 @@
% font metrics file.
% \changes{1.926}{2003/07/10}{Only looking for PL and VPL files when
% an encoding is specified. (LH)}
+% \changes{1.929}{2005/01/13}{Missing space in message inserted. (LH)
+% Pointed out by Peter Dyballa.}
% \begin{macrocode}
\ifx \pl_encoding\empty_command
\fromany\file_name
@@ -4021,7 +4097,7 @@
\inputmtx{\str{afm-name}}
\else
\fontinsterror{\string\install...}{
- Font/MTX~file~\file_name\space not found
+ Font/MTX~file~\file_name\space not~found
}{
You~can~insert~an~\string\inputmtx\space command~here
\messagebreak to~input~some~other~MTX~file~instead.
@@ -4045,9 +4121,13 @@
% and the generated MTX file is named
% \meta{font}\texttt{-}\meta{etx}\texttt{.mtx} to avoid that it is
% picked up by |\fromany| by mistake.
+% \changes{1.929}{2005/01/12}{The \texttt{afm-name} string usually has
+% a value at this point, so it is necessary to reset it. (LH,
+% sighing because he knows this isn't the first time this problem
+% occurred) First to be hit by this bug was Michael Zedler.}
% \begin{macrocode}
\def\metrics_given_encoding#1#2{
- \x_setstr{afm-name}{#1-#2}
+ \x_cs\edef{s-afm-name}{#1-#2}
\if_file_exists{#1.pl}\then
\generalpltomtx{#1}{#1-#2}{pl}{#2}
\else
diff --git a/Master/texmf-dist/source/fontinst/base/fimapgen.dtx b/Master/texmf-dist/source/fontinst/base/fimapgen.dtx
index bce3a5a99fd..fccdf30b5e2 100644
--- a/Master/texmf-dist/source/fontinst/base/fimapgen.dtx
+++ b/Master/texmf-dist/source/fontinst/base/fimapgen.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{873}
+% \CheckSum{876}
% \iffalse meta-comment
%
% Copyright 1999 the fontinst maintenance team and any individual
@@ -853,6 +853,16 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\fulldownload}
+% By default this defaults to being a synonym of |\download|, to
+% simplify matters for drivers where the distinction is not relevant.
+% They should be redefined when that is not the desired effect.
+% \changes{1.928}{2004/12/13}{Command added. (LH)}
+% \begin{macrocode}
+\def\fulldownload#1{\download{#1}}
+% \end{macrocode}
+% \end{macro}
+%
% Some encodings seem to always be present, so they can be declared here.
% \begin{macrocode}
\declarepsencoding{8r}{TeXBase1Encoding}{\download{8r.enc}}
diff --git a/Master/texmf-dist/source/fontinst/base/fisource.dvi b/Master/texmf-dist/source/fontinst/base/fisource.dvi
index cc308845392..335361e6f20 100644
--- a/Master/texmf-dist/source/fontinst/base/fisource.dvi
+++ b/Master/texmf-dist/source/fontinst/base/fisource.dvi
Binary files differ
diff --git a/Master/texmf-dist/source/fontinst/base/fisource.ist b/Master/texmf-dist/source/fontinst/base/fisource.ist
new file mode 100644
index 00000000000..a7f22dde295
--- /dev/null
+++ b/Master/texmf-dist/source/fontinst/base/fisource.ist
@@ -0,0 +1,47 @@
+%%
+%% This is file `docindex.ist',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% docindex.dtx (with options: `ist')
+%%
+%% This file may be distributed and/or modified under the conditions
+%% of the LaTeX Project Public License, either version 1.2 of this
+%% license or (at your option) any later version. The latest version
+%% of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% This file may only be distributed together with a copy of the source
+%% file from which it was generated. You may distribute that source file
+%% without this generated file.
+%%
+item_0 "}{1}\n\\indexitem{1}{"
+item_1 "}{2}\n \\indexitem{2}{"
+item_01 "}{2}\n \\indexitem{2}{"
+item_x1 "}{2}\n \\indexitem{2}{"
+item_2 "}{3}\n \\indexitem{3}{"
+item_12 "}{3}\n \\indexitem{3}{"
+item_x2 "}{3}\n \\indexitem{3}{"
+delim_0 "}{9}{"
+delim_1 "}{9}{"
+delim_2 "}{9}{"
+delim_n ", "
+delim_r "--"
+group_skip "}{0}\n%^^A\n\\indexnewletter{0}{"
+heading_prefix ""
+heading_suffix ""
+headings_flag 1
+actual '='
+quote '!'
+level '>'
+page_precedence "naArR"
+keyword "\\xdocindexentry"
+page_compositor "\\+"
+preamble "\\docindexguard{\\endinput}\n%^^A\n\\indexnewletter{1}{"
+postamble "}{0}\n\\endinput"
+%%
+%%
+%% End of file `docindex.ist'.
diff --git a/Master/texmf-dist/source/fontinst/base/fisource.sty b/Master/texmf-dist/source/fontinst/base/fisource.sty
index c530b6bf26b..35ae65d39f8 100644
--- a/Master/texmf-dist/source/fontinst/base/fisource.sty
+++ b/Master/texmf-dist/source/fontinst/base/fisource.sty
@@ -498,6 +498,12 @@
% to the version number headings. The way it is done is however a
% hack; I should define a separate instance explicitly instead.
% (LH)}
+%
+% Typesetting the list of changes is annoyingly slow. It should be
+% examined what takes all that time, but I suspect it is the
+% paragraph breaking (the parameters involved are rather absurd). I
+% suspect that in particular the |\multchanges| complicates things
+% more than they really need to. --- LH, 2004/12/15.
% \begin{macrocode}
\setcounter{GlossaryColumns}{1}
\@namedef{TP@I{}{docindex}{changes}}#1#2{%
diff --git a/Master/texmf-dist/source/fontinst/base/fisource.tex b/Master/texmf-dist/source/fontinst/base/fisource.tex
index b5a5cab7e76..8c684883f99 100644
--- a/Master/texmf-dist/source/fontinst/base/fisource.tex
+++ b/Master/texmf-dist/source/fontinst/base/fisource.tex
@@ -497,6 +497,23 @@ of fonts. The most important are:
which integer variables correspond to font dimensions in a (V)PL
file. This correspondence is used both when generating a ligful
(V)PL file and when a (V)PL file is converted to an MTX file.
+ \item \texttt{finstmsc.sty} now contains a new command which
+ generates a ToUnicode CMap file from an ETX file. The syntax of
+ this command is
+ \begin{quote}
+ |\etxtocmap|\marg{etxfile}\marg{cmapfile}
+ \end{quote}
+ \item Unicode equivalents of slots need no longer be single
+ characters. To specify a multiple-character equivalent of a
+ slot, use the |\charseq| command and place the individual
+ characters as |\Unicode| commands in its arguments. For a
+ \texttt{fi} slot, one would say
+ \begin{quote}
+ |\charseq{|\\
+ | \Unicode{0066}{LATIN SMALL LETTER F}|\\
+ | \Unicode{0069}{LATIN SMALL LETTER I}|\\
+ |}|
+ \end{quote}
\end{itemize}
@@ -1678,6 +1695,15 @@ implicitly use or set are listed below.
|\setint| commands for this variable.
\item[Used by] Some MTX and ETX files.
\end{smalldes}
+ \item[cmapname] (string)
+ \begin{smalldes}
+ \item[Description] The name given to the CMap generated from
+ an ETX file.
+ \item[Set by] ETX files.
+ \item[Used by] The ETX-to-CMap converter. When not set, the
+ value |fontinst-|\nolinebreak[1]\meta{cmap file name} is
+ used instead.
+ \end{smalldes}
\item[codingscheme] (string)
\begin{smalldes}
\item[Description] The codingscheme name.
diff --git a/Master/texmf-dist/source/fontinst/base/trig.dtx b/Master/texmf-dist/source/fontinst/base/trig.dtx
deleted file mode 100644
index 8540ec3dee7..00000000000
--- a/Master/texmf-dist/source/fontinst/base/trig.dtx
+++ /dev/null
@@ -1,308 +0,0 @@
-% \iffalse
-%% File: trig.dtx Copyright (C) 1993 1994 1995 1996 1997 1999 David Carlisle
-%%
-%% This file is part of the Standard LaTeX `Graphics Bundle'.
-%% It may be distributed under the terms of the LaTeX Project Public
-%% License, as described in lppl.txt in the base LaTeX distribution.
-%% Either version 1.0 or, at your option, any later version.
-%%
-%
-%<*dtx>
- \ProvidesFile{trig.dtx}
-%</dtx>
-%<*!plain>
-%<package&!plain>\NeedsTeXFormat{LaTeX2e}
-%<package&!plain>\ProvidesPackage{trig}
-%<driver> \ProvidesFile{trig.drv}
-% \fi
-% \ProvidesFile{trig.dtx}
- [1999/03/16 v1.09 sin cos tan (DPC)]
-%
-% \iffalse
-%</!plain>
-%<*driver>
-\documentclass{ltxdoc}
-\usepackage{trig}
-\begin{document}
- \DocInput{trig.dtx}
-\end{document}
-%</driver>
-% \fi
-%
-% \GetFileInfo{trig.dtx}
-% \title{The \textsf{trig} package\thanks{This file
-% has version number \fileversion, last
-% revised \filedate.}}
-% \author{David Carlisle}
-% \date{\filedate}
-% \maketitle
-%
-% \CheckSum{246}
-%
-% \changes{v1.00}{1993/00/00}{Undocumented versions}
-% \changes{v1.05}{1993/10/07}{Documented, added tan}
-% \changes{v1.06}{1994/02/01}{Update for LaTeX2e}
-% \changes{v1.07}{1994/03/15}{Use ltxdoc}
-% \changes{v1.08}{1994/10/16}{Change \cs{@xc} to \cs{nin@ty}}
-%
-% \section{Introduction}
-%
-% These macros implement the trigonometric functions, sin, cos and tan.
-% In each case two commands are defined. For instance the command
-% |\CalculateSin{33}| may be isued at some point, and then anywhere
-% later in the document, the command |\UseSin{33}| will return the
-% decimal expansion of $\sin(33^\circ)$.
-%
-% The arguments to these macros do not have to be whole numbers,
-% although in the case of whole numbers, \LaTeX\ or plain \TeX\ counters
-% may be used. In \TeX{}Book syntax, arguments must be of type:
-% \meta{optional signs}\meta{factor}
-%
-% Some other examples are:\\
-% |\CalculateSin{22.5}|, |\UseTan{\value{mycounter}}|,
-% |\UseCos{\count@}|.
-%
-% Note that unlike the psfig macros, these save all previously
-% computed values. This could easily be changed, but I thought that in
-% many applications one would want many instances of the
-% same value. (eg rotating all the headings of a table by the
-% \emph{same} amount).
-%
-% I don't really like this need to pre-calculate the values, I
-% originally implemented |\UseSin| so that it automatically calculated
-% the value if it was not pre-stored. This worked fine in testing, until
-% I remembered why one needs these values. You want to be able to say
-% |\dimen2=\UseSin{30}\dimen0|. Which means that |\UseSin| must
-% \emph{expand} to a \meta{factor}.
-%
-% \StopEventually{}
-%
-% \section{The Macros}
-%
-% \begin{macrocode}
-%<*package>
-% \end{macrocode}
-%
-% \begin{macro}{\nin@ty}\begin{macro}{\@clxx}
-% \begin{macro}{\@lxxi}\begin{macro}{\@mmmmlxviii}
-% Some useful constants for converting between degrees and radians.
-% $$\frac{\pi}{180}\simeq\frac{355}{113\times180}=\frac{71}{4068}$$
-% \begin{macrocode}
-\chardef\nin@ty=90
-\chardef\@clxx=180
-\chardef\@lxxi=71
-\mathchardef\@mmmmlxviii=4068
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{macro}
-%
-% The approximation to $\sin$. I experimented with various
-% approximations based on Tchebicheff polynomials, and also some
-% approximations from a SIAM handbook `Computer Approximations' However
-% the standard Taylor series seems sufficiently accurate, and used by
-% far the fewest \TeX\ tokens, as the coefficients are all rational.
-% \begin{eqnarray*}
-% \sin(x)& \simeq& x - (1/3!)x^3 + (1/5!)x^5 - (1/7!)x^7 + (1/9!)x^9\\
-% &\simeq&\frac{((((7!/9!x^2-7!/7!)x^2+7!/5!)x^2 +7!/3!)x^2+7!/1!)x}
-% {7!}\\
-% &=&\frac{((((1/72x^2-1)x^2+42)x^2 +840)x^2+5040)x}
-% {5040}
-% \end{eqnarray*}
-% The nested form used above reduces the number of operations required.
-% In order to further reduce the number of operations, and more
-% importantly reduce the number of tokens used, we can precompute the
-% coefficients. Note that we can not use $9!$ as the denominator as
-% this would cause overflow of \TeX's arithmetic.
-% \begin{macro}{\@coeffz}\begin{macro}{\@coeffa}\begin{macro}{\@coeffb}
-% \begin{macro}{\@coeffc}\begin{macro}{\@coeffd}
-% Save the coefficients as |\|(|math|)|char|s.
-% \begin{macrocode}
-\chardef\@coeffz=72
-%\chardef\@coefa=1
-\chardef\@coefb=42
-\mathchardef\@coefc=840
-\mathchardef\@coefd=5040
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
-%
-% \begin{macro}{\TG@rem@pt}
-% The standard trick of getting a real number out of a \meta{dimen}.
-% This gives a maximum accuracy of approx.\ 5 decimal places, which
-% should be sufficient. It puts a space after the number, perhaps it
-% shouldn't.
-% \begin{macrocode}
-{\catcode`t=12\catcode`p=12\gdef\noPT#1pt{#1}}
-\def\TG@rem@pt#1{\expandafter\noPT\the#1\space}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\TG@term}
-% Compute one term of the above nested series. Multiply the previous sum
-% by $x^2$ (stored in |\@tempb|, then add the next coefficient, |#1|.
-% \begin{macrocode}
-\def\TG@term#1{%
- \dimen@\@tempb\dimen@
- \advance\dimen@ #1\p@}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\TG@series}
-% Compute the above series. the value in degrees will be in |\dimen@|
-% before this is called.
-% \begin{macrocode}
-\def\TG@series{%
- \dimen@\@lxxi\dimen@
- \divide \dimen@ \@mmmmlxviii
-% \end{macrocode}
-% |\dimen@| now contains the angle in radians, as a \meta{dimen}. We
-% need to remove the units, so store the same value as a \meta{factor}
-% in |\@tempa|.
-% \begin{macrocode}
- \edef\@tempa{\TG@rem@pt\dimen@}%
-% \end{macrocode}
-% Now put $x^2$ in |\dimen@| and |\@tempb|.
-% \begin{macrocode}
- \dimen@\@tempa\dimen@
- \edef\@tempb{\TG@rem@pt\dimen@}%
-% \end{macrocode}
-% The first coefficient is $1/72$.
-% \begin{macrocode}
- \divide\dimen@\@coeffz
- \advance\dimen@\m@ne\p@
- \TG@term\@coefb
- \TG@term{-\@coefc}%
- \TG@term\@coefd
-% \end{macrocode}
-% Now the cubic in $x^2$ is completed, so we need to multiply by $x$ and
-% divide by $7!$.
-% \begin{macrocode}
- \dimen@\@tempa\dimen@
- \divide\dimen@ \@coefd}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\CalculateSin}
-% If this angle has already been computed, do nothing, else store the
-% angle, and call |\TG@@sin|.
-% \begin{macrocode}
-\def\CalculateSin#1{{%
- \expandafter\ifx\csname sin(\number#1)\endcsname\relax
- \dimen@=#1\p@\TG@@sin
- \expandafter\xdef\csname sin(\number#1)\endcsname
- {\TG@rem@pt\dimen@}%
- \fi}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\CalculateCos}
-% As above, but use the relation $\cos(x) = \sin(90-x)$.
-% \begin{macrocode}
-\def\CalculateCos#1{{%
- \expandafter\ifx\csname cos(\number#1)\endcsname\relax
- \dimen@=\nin@ty\p@
- \advance\dimen@-#1\p@
- \TG@@sin
- \expandafter\xdef\csname cos(\number#1)\endcsname
- {\TG@rem@pt\dimen@}%
- \fi}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\TG@reduce}
-% Repeatedly use one of the the relatations
-% $\sin(x)=\sin(180-x)=\sin(-180-x)$ to get $x$ in the range $-90 \leq
-% x\leq 90$. Then call |\TG@series|.
-% \begin{macrocode}
-\def\TG@reduce#1#2{%
-\dimen@#1#2\nin@ty\p@
- \advance\dimen@#2-\@clxx\p@
- \dimen@-\dimen@
- \TG@@sin}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\TG@@sin}
-% Slightly cryptic, but it seems to work\ldots
-% \begin{macrocode}
-\def\TG@@sin{%
- \ifdim\TG@reduce>+%
- \else\ifdim\TG@reduce<-%
- \else\TG@series\fi\fi}%
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\UseSin}
-% \begin{macro}{\UseCos}
-% Use a pre-computed value.
-% \begin{macrocode}
-\def\UseSin#1{\csname sin(\number#1)\endcsname}
-\def\UseCos#1{\csname cos(\number#1)\endcsname}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% A few shortcuts to save space.
-% \begin{macrocode}
-\chardef\z@num\z@
-\expandafter\let\csname sin(0)\endcsname\z@num
-\expandafter\let\csname cos(0)\endcsname\@ne
-\expandafter\let\csname sin(90)\endcsname\@ne
-\expandafter\let\csname cos(90)\endcsname\z@num
-\expandafter\let\csname sin(-90)\endcsname\m@ne
-\expandafter\let\csname cos(-90)\endcsname\z@num
-\expandafter\let\csname sin(180)\endcsname\z@num
-\expandafter\let\csname cos(180)\endcsname\m@ne
-% \end{macrocode}
-%
-% \begin{macro}{\CalculateTan}
-% Originally I coded the Taylor series for tan, but it seems to be
-% more accurate to just take the ratio of the sine and cosine.
-% This is accurate to 4 decimal places for angles up to
-% $50^\circ$, after that the accuracy tails off, giving
-% 57.47894 instead of 57.2900 for $89^\circ$.
-% \begin{macrocode}
-\def\CalculateTan#1{{%
- \expandafter\ifx\csname tan(\number#1)\endcsname\relax
- \CalculateSin{#1}%
- \CalculateCos{#1}%
- \@tempdima\UseCos{#1}\p@
- \divide\@tempdima\@iv
- \@tempdimb\UseSin{#1}\p@
- \@tempdimb\two@fourteen\@tempdimb
- \divide\@tempdimb\@tempdima
- \expandafter\xdef\csname tan(\number#1)\endcsname
- {\TG@rem@pt\@tempdimb}%
- \fi}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\UseTan}
-% Just like |\UseSin|.
-% \begin{macrocode}
-\def\UseTan#1{\csname tan(\number#1)\endcsname}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\two@fourteen}
-% \begin{macro}{\@iv}
-% two constants needed to keep the division within \TeX's range.
-% \begin{macrocode}
-\mathchardef\two@fourteen=16384
-\chardef\@iv=4
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% Predefine $\tan(\pm90)$ to be an error.
-% \begin{macrocode}
-\expandafter\def\csname tan(90)\endcsname{\errmessage{Infinite tan !}}
-\expandafter\let\csname tan(-90)\expandafter\endcsname
- \csname tan(90)\endcsname
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</package>
-% \end{macrocode}
-%
-% \Finale
-%
-\endinput
diff --git a/Master/texmf-dist/source/fontinst/base/xdoc/README b/Master/texmf-dist/source/fontinst/base/xdoc/README
deleted file mode 100644
index 58744d4985d..00000000000
--- a/Master/texmf-dist/source/fontinst/base/xdoc/README
+++ /dev/null
@@ -1,67 +0,0 @@
-README for the xdoc and docindex packages.
-
-The standard LaTeX doc package is well-known to all LaTeX hackers.
-Without its support for the .dtx-file style of literate programming,
-the TeX world would probably be much more plagued by the horrors of
-poorly commented and mysterious code than it is today. The past good
-decade that doc has been with us has been -- good. But even the sun
-has spots; doc is an old package and, as old code often tends to do,
-it breaks if you try to bend it into doing something new. The xdoc
-package is (or rather is meant to be) a rewrite from scratch
-which both can take a lot more bending and is ready for LaTeX2e*.
-
-What exists so far is only xdoc2: the "second prototype" for the xdoc
-package. xdoc2 is not a complete rewrite of doc, but rather an add-on
-to doc which reimplements many of its mechanisms (more precisely those
-mechanisms which I think should be possible to "bend" into doing new
-things, but have found to be fixed to their present behaviour) and
-provides a few new features of its own. Even though xdoc2 is a
-prototype and some of the code in it is experimental, I consider it to
-be safe enough to build productive applications on, as I intend to
-keep xdoc2 available even after the final xdoc package is released.
-
-Among the features of xdoc2 are:
- - new commands for describing things (cf. \DescribeMacro) and a
- package/class writer's interface for defining new such commands.
- - new environments for defining things in (cf. the macro
- environment) and a package/class writer's interface for defining
- new such environments.
- - support for two-sided document designs.
- - support for external cross-referencing.
- - improved sorting of macros, with support for defining prefixes
- that should be ignored when sorting.
- - support for CVS-style version numbering.
-The other new features are of little interest to the mere user, but
-they may be ever so useful to those who are in the habit of hacking
-doc. Here we have for example:
- - basic commands implementing a robust "string" datatype.
- - an abstract command interface for making index entries;
- this would simplify supporting a different index sorting
- program.
-
-Besides xdoc2, there are also the docindex/docidx2e packages. These
-provide mechanisms for a more flexible formatting of the index and list of
-changes than is possible with the mechanisms for this in the doc package.
-In particular docindex/docidx2e provides for automatic collapsing of
-trivial index levels, something which often happens in automatically
-generated multilevel indices such as the list of changes. The reason there
-are two packages is that docindex is a LaTeX2e* package, whereas docidx2e
-is a "downgraded" variant which runs on a normal LaTeX2e installation.
-Both do however follow the same internal logic.
-
-
-The files in this directory are:
-
-README.txt - this file
-docindex.dtx - the source for the docindex and docidx2e packages
-docindex.ins - the docstrip installation script for the docindex and
- docidx2e packages
-xdoc2.dtx - the source for the xdoc2 package
-xdoc2.ins - the docstrip installation script for the xdoc2 package
-xdocdemo.tex - a document which demonstrates some of the features in
- the xdoc2 package
-
-2003/07/06,
-Lars Hellstr\"om
-
-
diff --git a/Master/texmf-dist/source/fontinst/base/xdoc/docindex.dtx b/Master/texmf-dist/source/fontinst/base/xdoc/docindex.dtx
deleted file mode 100644
index 47139d32b12..00000000000
--- a/Master/texmf-dist/source/fontinst/base/xdoc/docindex.dtx
+++ /dev/null
@@ -1,2100 +0,0 @@
-% \CheckSum{893}
-% \iffalse
-%<*driver>
-\documentclass{ltxdoc}
-\usepackage{xdoc2}
-
-\makeatletter
-\NewMacroEnvironment{templatetype}{\XD@grab@harmless\relax}{1}%
- {\MacroFont#1\ \normalfont type}%
- {\XDMainIndex{\LevelSorted{#1}{\texttt{#1} template type}}}%
- {{#1}{\texttt{#1} template type}}%
- {}%
-\NewMacroEnvironment*{template}{%
- \XD@grab@harmless\relax\XD@grab@harmless\relax
-}{2}%
- {\XDParToMargin{\MacroFont #1\textnormal{\slash}#2 \normalfont
- template}}%
- {\XDMainIndex{
- \LevelSorted{#1}{\texttt{#1} template type}%
- \LevelSorted{#2}{\texttt{#2} template}%
- }}%
- {{#1/#2}{\texttt{#1}\slash\texttt{#2} template}}%
- {\def\XD@template@sort{%
- \LevelSorted{#1}{\texttt{#1} template type}%
- \LevelSorted{#2}{\texttt{#2} template}%
- }}%
-\NewMacroEnvironment*{instance}{%
- \XD@grab@harmless\relax\XD@grab@harmless\relax
-}{2}%
- {\XDParToMargin{\MacroFont #1\textnormal{\slash}#2 \normalfont
- instance}}%
- {\XDMainIndex{
- \LevelSorted{#1}{\texttt{#1} template type}%
- \LevelSorted{#2}{\texttt{#2} instance}%
- }}%
- {{#1/#2}{\texttt{#1}\slash\texttt{#2} instance}}%
- {}%
-\NewMacroEnvironment*{collectioninstance}{%
- \XD@grab@harmless\relax\XD@grab@harmless\relax\XD@grab@harmless\relax
-}{3}%
- {\XDParToMargin{\MacroFont #2\textnormal{\slash}#3 \normalfont
- instance (\texttt{#1} collection)}}%
- {\XDMainIndex{
- \LevelSorted{#2}{\texttt{#2} template type}%
- \LevelSorted{#3}{\texttt{#3} instance}%
- \LevelSorted{#1}{\texttt{#1} collection}%
- }}%
- {{#2/#3/#1}%
- {\texttt{#2}\slash\texttt{#3} instance (\texttt{#1} collection)}}%
- {}%
-\@namedef{XD@harmless\string\break}{%
- \toks@=\expandafter{\the\toks@ \protect\nolinebreak[3]}%
- \XD@harmless@
-}
-\newcommand\keyvalitem[2]{%
- \item[#1 (#2)%
- \IndexEntry{\XD@template@sort
- \LevelSorted{#1}{\textit{#1} keyval (#2)}%
- }{usage}{\thepage}%
- ]%
-}
-\newcommand{\xrefoff}{\scan@allowedfalse}
-\newcommand{\xrefon}{\scan@allowedtrue}
-\makeatother
-
-\newenvironment{syntax}{%
- \let\\=\break
- \list{}{%
- \setlength\topsep{\medskipamount}%
- \setlength\partopsep{0pt}%
- \setlength\itemsep{0pt plus 1pt}%
- \setlength\parsep{\itemsep}%
- \setlength\leftmargin{3em}%
- \setlength\listparindent{1em}%
- \setlength\itemindent{-2em}%
- \setlength\labelwidth{0pt}%
- \setlength\labelsep{0pt}%
- \csname @endparpenalty\endcsname=500
- \def\makelabel##1{\mbox{\meta{##1}${}\longrightarrow{}$}}%
- }%
- \addtolength\rightskip{0pt plus 1fil}%
- \linepenalty=300%
-}{\endlist}
-\newcommand\branch{\({}\mid{}\)\ignorespaces}
-
-\DeclareRobustCommand{\package}[1]{\textsf{#1}}
-\DeclareRobustCommand{\program}[1]{\textsf{#1}}
-\DeclareRobustCommand\LaTeXplus{\LaTeXe$*$}
-
-\DoNotIndex{\addvspace,\@backslashchar,\begin,\begingroup,\bgroup}
-\DoNotIndex{\csname,\DeclareInstance,\DeclareOption}
-\DoNotIndex{\DeclareTemplate,\DeclareTemplateType,\def}
-\DoNotIndex{\DoParameterAssignments,\edef,\egroup,\@eha}
-\DoNotIndex{\@empty,\end,\endcsname,\endgroup,\endinput,\expandafter}
-\DoNotIndex{\@firstofone,\@firstoftwo,\global,\@gobble,\hb@xt@,\hfil}
-\DoNotIndex{\hsize,\hspace,\IfNoValueTF,\@ifpackageloaded}
-\DoNotIndex{\@ifpackagewith,\@ifundefined,\ignorespaces,\@input@}
-\DoNotIndex{\jobname,\leftskip,\let,\MessageBreak,\@namedef,\@ne}
-\DoNotIndex{\NeedsTeXFormat,\newcommand,\nobreak,\@nobreakfalse}
-\DoNotIndex{\nopagebreak,\normalsize,\NoValue,\number,\outer}
-\DoNotIndex{\p@,\PackageError,\PackageInfo,\PackageWarningNoLine}
-\DoNotIndex{\pagestyle,\par,\parfillskip,\parindent,\parskip}
-\DoNotIndex{\@plus,\ProcessOptions,\protect,\protected@edef}
-\DoNotIndex{\providecommand,\ProvidesPackage,\relax,\renewcommand}
-\DoNotIndex{\RequirePackage,\rightskip,\romannumeral,\@secondoftwo}
-\DoNotIndex{\small,\space,\textbf,\thispagestyle,\thr@@,\tw@}
-\DoNotIndex{\vadjust,\vspace,\z@,\z@skip}
-\DoNotIndex{\iffalse,\ifnum,\ifx,\else,\fi} % \fi \fi
-\DoNotIndexBy{@}
-\DoNotIndexBy{DI@}
-
-\CodelineIndex
-\EnableCrossrefs
-\RecordChanges
-\setcounter{IndexColumns}{2}
-\setcounter{StandardModuleDepth}{2}
-
-
-\begin{document}
-\DocInput{docindex.dtx}
-\PrintChanges
-\PrintIndex
-\end{document}
-%</driver>
-% \fi
-%
-% \title{The \package{docindex} package}
-% \author{Lars Hellstr\"om}
-% \date{8 July 2003}
-% \maketitle
-%
-% \begin{abstract}
-% The \package{docindex} package implements template-based formatting
-% of indices and lists of changes\slash glossaries. In addition to this,
-% the control structures employed also provide for a couple of new
-% features, such as automatic collapsing of trivial index levels.
-% \end{abstract}
-%
-% \tableofcontents
-%
-%
-% \section{Introduction}
-%
-% In automatically generated indices with multi-level entries, such as the
-% list of changes of a \package{doc} document, it often happens that some
-% entries are uniquely identified by their primary level sort keys,
-% although there are sort keys and text for additional levels. If then
-% the formatting is designed for entries that are uniquely identified
-% only when their secondary or tertiary sort keys are considered, one
-% ends up with a couple of entries that look rather peculiar (building
-% a tree which never branches) and usually take up much more space than
-% they need to. The remedy for this is of course to make the formatting
-% smart enough to recognise this situation when it occurs and flexible
-% enough to format the text is a more suitable manner.
-%
-% An example of this is that if a document contains the index
-% entries\footnote{I'm using the default \program{makeindex}
-% metacharacters in these examples, but the style file provided for
-% this package actually uses the same metacharacters as those style files
-% provided by the \package{doc} package---hence the `\package{doc}'
-% in `\package{docindex}'. }
-% \begin{quote}
-% |\index{Bernoulli!Jacob}\index{Bernoulli!Johann}|
-% \end{quote}
-% then it is probably reasonable to format this as
-% \begin{quote}
-% Bernoulli,\\
-% \vadjust{}\quad Jacob\\
-% \vadjust{}\quad Johann
-% \end{quote}
-% but if the index entries instead were
-% \begin{quote}
-% |\index{Jacobi!Carl}\index{Bernoulli!Jacob}|
-% \end{quote}
-% then it is probably better to format this as
-% \begin{quote}
-% Bernoulli, Jacob\\
-% Jacobi, Carl
-% \end{quote}
-% than as
-% \begin{quote}
-% Bernoulli,\\
-% \vadjust{}\quad Jacob\\
-% Jacobi,\\
-% \vadjust{}\quad Carl
-% \end{quote}
-%
-% The \program{makeindex} program has some features in this direction,
-% but they only allow dependence on the previous item in the index, not
-% the next item, which is what you need to know when deciding whether
-% `Jacob' should go on the same line as `Bernoulli'. Therefore
-% \package{docindex} pretty much ignores these features in
-% \program{makeindex} and instead sees to that each command that is to
-% typeset an index item knows what kind of items were before and after it.
-%
-% Another reason for writing this package was to try out the template
-% mechanisms as provided by the \LaTeXplus\ \package{template}
-% package.\footnote{\LaTeXplus\ is the name of the \LaTeX\ version after
-% \LaTeXe. Rather than being a completely different kernel\slash format,
-% \LaTeXplus\ is (will be) implemented as a collection of \LaTeXe\
-% packages which replace parts of the kernel. More information and
-% package code can be found on the \LaTeX-project website~^^A
-% \cite{LaTeX-project}.} My impression is that this experiment turned
-% out strikingly well. I have always found the more layout-oriented
-% aspects of \TeX\ programming a bit cumbersome, but the separation of
-% layout details from control structures that becomes natural when
-% employing template mechanisms seems to have made it much easier. I'm
-% not sure why this is so, but it could be as simple as that the layout
-% settings are no longer diluted in the control structures. In any
-% case, I would recommend people creating new \LaTeXe\ packages to
-% employ template mechanisms in at least the initial development
-% versions of the package, for the following reasons: (i) it reduces the
-% work of updating the package for \LaTeXplus, (ii) it furthers the
-% development of \LaTeXplus, and (iii) it might actually become a
-% better package.
-%
-% A third reason for writing the \package{docindex} package was to get
-% the \LaTeX\ document ``back in control'' of how the index is formatted.
-% Certainly it is the document which has the final say about what
-% the command in the \texttt{.ind} file actually do, but the traditional
-% \program{makeindex} style files that are used place severe restrictions
-% on the formatting of the index simply because they control where the
-% commands are put. \package{docindex} tries to reduce these
-% restrictions by making all texts in the index arguments of commands.
-% Certainly there is a lot more that could be done in this direction---in
-% particular, the (page) numbers in the index could be coded as a
-% |\do|-type list rather than as an explicitly comma-separated list as is
-% done now---but what is in \package{docindex} at the moment seems to
-% satisfy all my current needs.
-%
-%
-% \section{Usage}
-%
-% \subsection{Straightforward usage}
-%
-% To make use of the \package{docindex} package in formatting the index
-% and list of changes of a \package{doc}-type \LaTeX\ document, you must
-% do the following:
-% \begin{enumerate}
-% \item Load the \package{docindex} package (or probably
-% rather the \package{docidx2e} package---see below).
-% \item Make sure that the index entries does not use any commands,
-% such as |\verb|, that rely on changing catcodes or otherwise
-% need to be executed before the entire entry text has been
-% tokenized.
-% \item Generate the \texttt{.ind} and \texttt{.gls} files using
-% \texttt{docindex.ist} as style file for \program{make\-index}.
-% \end{enumerate}
-% (Item~2 may seem like a monumental task if one considers what the
-% indices of \package{doc} documents traditionally looks like---there's
-% a |\verb| for every macro name in the index---but it is really not
-% that bad. \package{docindex} loads the \package{xdoc} package~^^A
-% \cite{xdoc} which redefines \texttt{macro}, the cross-referencing
-% mechanism, etc.\ so that the index entries generated by these no
-% longer uses |\verb|. What is left for you to deal with are merely
-% the possible uses of |\verb| in explicit |\index| or |\SortIndex|
-% commands.)
-%
-% What advantages are there then for the normal user in having
-% \package{docindex} formatting the index and list of changes, as
-% opposed to using the default mechanisms in the \package{doc} package?
-% I can only think of two: the index or list of changes may be typeset in
-% a single column and the same \program{makeindex} style file can be
-% used for both index and list of changes. Neither advantage is
-% significant. Instead the advantage of \package{docindex} lies in that
-% it becomes much simpler to change the formatting, which is rather an
-% advantage for advanced users which have special needs, and
-% in particular one can do this without having to supply e.g.\ extra
-% \program{makeindex} style files.
-%
-% Another important point is that what you will want to use is probably
-% not the \LaTeXplus\ \package{docindex} package, but the ``downgraded''
-% \LaTeXe\ version \package{docidx2e}, as the former uses the
-% \package{galley2} package which currently wrecks pretty much all
-% justification in all existing document classes. \package{docidx2e}
-% provides the same features as \package{docindex}, but configuring it
-% is somewhat more cumbersome since \package{template} won't do most of
-% the coding for you. It is however rather straightforward to convert
-% a definition using the \package{docindex} package to something which
-% achieves the same results with the \package{docidx2e} package.
-%
-%
-% \subsection{Multiple indices}
-%
-% The \package{docindex} package makes it comparatively simple to
-% include several indices in the same document: all one has to do is
-% use an instance or template of type \texttt{docindex} for each index
-% one wishes to typeset. The syntax for using such an instance is
-% \begin{quote}
-% |\UseInstance{docindex}|\marg{instance}\marg{prologue}^^A
-% \marg{epilogue}
-% \end{quote}
-% The \meta{prologue} and \meta{epilogue} are texts which will be
-% printed just before and after the index, respectively, and either may
-% be empty. The text for the index itself is read from another file,
-% the name and extentsion of which are specified by the instance. The
-% \texttt{std} template prints the \meta{prologue} and \meta{epilogue}
-% in one-column mode, whereas the index itself can be printed in one- or
-% multicolumn mode (the default is three columns).
-%
-% The \package{doc} commands |\PrintIndex| and |\PrintGlossary| are
-% redefined to be
-% \begin{quote}
-% |\UseInstance{docindex}{index}{\index@prologue}{}|
-% \end{quote}
-% and
-% \begin{quote}
-% |\UseInstance{docindex}{changes}{\glossary@prologue}{}|
-% \end{quote}
-% respectively. The \texttt{index} and \texttt{changes} instances of
-% type \texttt{docindex} give the same formatting as the \package{doc}
-% defaults. (The \package{docidx2e} definitions even use the
-% \package{doc} package parameters where applicable, but in
-% \package{docindex} it is much simpler to redefine the instance from
-% scratch.)
-%
-% The format of the sorted index files (\texttt{.ind}, \texttt{.gls},
-% etc.) that a \texttt{docindex} instance inputs is rather complicated
-% and I would suggest that the generation of these files is left to the
-% \program{makeindex} program, but the complete syntax is described in
-% Subsection~\ref{Ssec:ist}. The syntax of the unsorted index files
-% (\texttt{.idx}, \texttt{.glo}, etc.) is simpler; there are only a few
-% things that are different from the index files of the \package{doc}
-% package.
-%
-% The foremost difference is that the index entries should begin not
-% with |\indexentry| or |\glossaryentry|, but with |\docindexentry|. The
-% \package{xdoc} package provides hooks with which one can change these
-% texts in entries generated using the |\index| and |\glossary| commands
-% (as well as higher-level commands built on these, such as the
-% |\SortIndex| and |\changes| commands) and \package{docindex} will use
-% these hooks unless it gets passed the \describeoption{oldkeywords}
-% \texttt{oldkeywords} option. If you are creating a third unsorted
-% index file then you will have to make sure that the command for writing
-% to that file uses |\docindexentry| in the right place.
-%
-% The other difference concerns the composite page numbers. The string
-% which separates the parts of a composite page number is not a
-% hyphen `|-|', but the string `|\+|'. (The |\+| command is locally
-% defined for the typesetting of each index by the \texttt{docindex}
-% template being used, and the default is to typeset a hyphen.) Again
-% the \package{xdoc} package provides a hook for this, and this hook is
-% used by \package{docindex} unless it gets passed the
-% \texttt{oldkeywords} option.
-%
-% It also deserves to be listed which the metacharacters are that are
-% the same as in \package{doc} indices. The level separator is `|>|',
-% the sort~key\slash item~text separator is `|=|', and the quote
-% character is `|!|'. All other \program{makeindex} metacharacter
-% parameters have their default values.
-%
-%
-%
-% \subsection{Configuration}
-%
-% Configuration of the layout provided by the \package{docindex}
-% package is primarily done by redefining the \texttt{index} and
-% \texttt{changes} instances of type \texttt{docindex}, since these are
-% the instances that are used by the |\PrintIndex| and |\PrintChanges|
-% commands.
-%
-% The index in the \texttt{source2e.tex} file (the main driver for the
-% \LaTeXe\ source) differs from the default in three respects: it is set
-% in two columns rather than three, there is no seperator character
-% between the parts of a composite page number, and the pagestyle is set
-% to \texttt{docindex} during the index. This is set up by the
-% redefinition
-%\begin{verbatim}
-%\DeclareInstance{docindex}{index}{std}{
-% columns=2, page-compositor={}, pagestyle=docindex
-%}
-%\end{verbatim}
-% (There are however also some changes of parameters related to
-% linebreaking; more on that in connection to configuration of the
-% \texttt{changes} instance below.)
-%
-% Another kind of modification can be found in the \package{tclldoc}
-% package~\cite{tclldoc}. Here the primary level in the index is used for
-% names of procedures and variables, whereas the secondary level for the
-% namespace of the same (the same name may have different definitions
-% in different namespaces). If there is only one namespace for a given
-% name then it is probably overkill to format them as two different
-% index items, but better to join them. This can be achieved through
-% the redefinition
-%\begin{verbatim}
-%\DeclareInstance{docindex}{index}{std}{%
-% item1=fixed-r1a, item2=aloneaccept2
-%}%
-%\end{verbatim}
-% An item handled by the \texttt{fixed-r1a} instance (of type
-% \texttt{indexitem}) always tries to join with the following item but
-% rejects to join with the preceeding one. An item handled by the
-% \texttt{aloneaccept2} instance accepts to join with the preceeding
-% item if neither that nor the following item is a secondary level item.
-% Thus an item for a name will join with the following item for a
-% namespace if there is only one such item. As the reader no doubt
-% realises, this also solves the problem with the Bernoullis that was
-% described in the introduction.
-%
-% \pagebreak[1]
-%
-% As for configuring the list of changes formatting, it is instructive
-% to start by considering its default definition:
-%\begin{verbatim}
-%\DeclareInstance{docindex}{changes}{std}{
-% file-extension = gls,
-% item2 = fixed-r2a-nocomma,
-% item3 = fixed-a3r,
-% columns = 2,
-% letter-format = ,
-% letter-skip = 0pt
-%}
-%\end{verbatim}
-% In the list of changes a secondary level item (which contains the name
-% of the macro or whatever which was changed) is joined with the
-% following tertiary level item (which details the change that was made).
-% There are two columns and letter groups are not given any special
-% formatting.
-%
-% The definition of \texttt{changes} that would be used for
-% \texttt{source2e.tex} differs from the above in only one keyval,
-% namely \textit{body-setup}, but that contains quite a lot of material.
-% To begin with there is the default |\small| which selects the font.
-% Then there is a |\makeatletter| which is needed because some |\changes|
-% entries in the \LaTeX\ sources include commands (e.g.~|\TeX|) that
-% (when written to file) expand to other commands whose names include the
-% |@| character. If these are to be tokenized correctly, |@| must be a
-% letter when the \texttt{.gls} file is being inputted. Last, but not
-% least, there is a modification of the linebreaking parameters:
-%\begin{verbatim}
-%\UseTemplate{linebreak}{TeX}{
-%\end{verbatim}
-% The file \texttt{source2e.tex} explicitly sets \textit{hbadness} and
-% \textit{hfuzz} to make \TeX\ shut up about over- and underfull hboxes.
-%\begin{verbatim}
-% hbadness=10000, hfuzz=\maxdimen,
-%\end{verbatim}
-% In addition to this, there are a couple of parameters that are set by
-% the \texttt{multicols} environment to values quite different from the
-% defaults of the \texttt{TeX} template and thus must be set too. Here
-% they are shown with their default values. The value of
-% \textit{emergency\-stretch} could probably be increased.
-%\begin{verbatim}
-% pretolerance=-1, tolerance=9999, emergencystretch=8pt
-%}
-%\end{verbatim}
-% Summing that up, we arrive at the following definition of the
-% \texttt{changes} instance for \texttt{source2e.tex}.
-%\begin{verbatim}
-%\DeclareInstance{docindex}{changes}{std}{
-% file-extension = gls,
-% item2 = fixed-r2a-nocomma,
-% item3 = fixed-a3r,
-% columns = 2,
-% letter-format = ,
-% letter-skip = 0pt,
-% body-setup = \small\makeatletter
-% \UseTemplate{linebreak}{TeX}{
-% hbadness=10000, hfuzz=\maxdimen,
-% pretolerance=-1, tolerance=9999, emergencystretch=8pt
-% }
-%}
-%\end{verbatim}
-%
-% Another example can be found in the \package{fisource}
-% package\footnote{It should probably rather be made a document class,
-% but I haven't found it that necessary to change that aspect of it.}^^A
-% ~(v\,2.10 or later), which sets up formatting for the \program{fontinst}
-% source. There the list of changes should be set in one column, with
-% items from the tertiary level being joined with their parent
-% secondary level items iff the tertiary item is the only one having
-% that particular parent item. This is achieved through the definition
-%\begin{verbatim}
-%\DeclareInstance{docindex}{changes}{std}{%
-% file-extension = gls,
-% item2 = fixed-r2a-nocomma,
-% item3 = aloneaccept3,
-% columns = 1,
-% letter-format = {},
-% letter-skip = 0pt
-% }
-%\end{verbatim}
-% where the difference to the default definition is in the values for
-% the \textit{item3} and \textit{columns} keys.
-%
-% For details on what they various keys mean, see the declaration of
-% the \texttt{std} template of type \texttt{docindex} on
-% page~\pageref{docindex:std}.
-%
-% With the \package{docidx2e} package, configuration follows the same
-% logic, even though it is much more technical as one has to define
-% the instances without the help of a template. The default instance
-% definitions for the \package{docidx2e} package are the
-% \begin{quote}
-% |\@namedef{TP@I{}{docindex}{index}}#1#2{|\dots|}|\\
-% |\@namedef{TP@I{}{docindex}{changes}}#1#2{|\dots|}|
-% \end{quote}
-% that begin on pages~\pageref{p:index-instance}
-% and~\pageref{p:changes-instance} respectively.
-%
-%
-%
-%
-%
-% \StopEventually{
-% % \begin{thebibliography}{9}
-% \bibitem{xindex}
-% Achim Blumensath: \textit{The \package{xindex} package};
-% \textsc{http:}/\slash
-% \texttt{www-mgi.\nolinebreak[3]informatik.\nolinebreak[3]^^A
-% rwth-aachen.de}\slash \texttt{\textasciitilde blume}/.
-% \bibitem{makeindex-paper}
-% Pehong Chen, Michael A. Harrison:
-% \textit{Index Preparation and Processing},
-% Software: practice \& experience, vol. \textbf{19}, no. 9 (1988),
-% 897--915;
-% Computer Science Tech. Report 87/347, University of California,
-% Berkeley, March 1987;
-% \textsc{ctan:}\discretionary{}{}{\thinspace}\texttt{indexing}^^A
-% \slash\texttt{makeindex}\slash\texttt{paper}\slash
-% \texttt{ind.tex}.
-% \bibitem{tclldoc}
-% Lars Hellstr\"om:
-% \textit{The \package{tclldoc} package and class},
-% v\,2.20 or newer;
-% \textsc{ctan}:\discretionary{}{}{\thinspace}\texttt{macros}\slash
-% \texttt{latex}\slash \texttt{contrib}\slash
-% \texttt{tclldoc}\slash \texttt{tclldoc.dtx}.
-% Note: At the time of writing, this has not yet been uploaded
-% to CTAN.
-% \bibitem{xdoc}
-% Lars Hellstr\"om:
-% \textit{The \package{xdoc} package --- experimental
-% reimplementations of features from \package{doc},
-% second~prototype}, 2000--2003;
-% \textsc{ctan}:\discretionary{}{}{\thinspace}\texttt{macros}\slash
-% \texttt{latex}\slash \texttt{contrib}\slash \texttt{xdoc}\slash
-% \texttt{xdoc2.dtx}.
-% \bibitem{xindy}
-% Roger Kehr:
-% \textit{\program{xindy} --- A Flexible Indexing System};
-% \textsc{ctan}:\discretionary{}{}{\thinspace}\texttt{indexing}^^A
-% \slash\texttt{xindy}/.
-% \bibitem{LaTeX-project}
-% The \LaTeX3 Project: \textit{The \LaTeX\ Project Home Page};
-% \textsc{http:}/\slash\texttt{www.latex-project.org}/.
-% \bibitem{multicol}
-% Frank Mittelbach: \textit{An environment for multicolumn output};
-% \textsc{ctan}:\discretionary{}{}{\thinspace}\texttt{macros}\slash
-% \texttt{latex}\slash \texttt{required}\slash \texttt{tools}\slash
-% \texttt{multicol.dtx}.
-% \bibitem{doc}
-% Frank Mittelbach, B.~Hamilton Kelly, Andrew Mills, Dave Love, and
-% Joachim \mbox{Schrod}: \textit{The \package{doc} and
-% \package{shortvrb} Packages}, The \LaTeX3 Project; ^^A , 1993~ff.
-% \textsc{ctan}:\discretionary{}{}{\thinspace}\texttt{macros}\slash
-% \texttt{latex}\slash \texttt{base}\slash \texttt{doc.dtx}.
-% \end{thebibliography}
-% }
-%
-%
-%
-%
-% \section{Implementation}
-%
-% \subsection{\package{docstrip} modules}
-%
-% This file contains a number of \package{docstrip} module directives,
-% and many of these guard code that is not going to be used. In part
-% this mirrors the development of the code (and may get cleared up
-% eventually), but most of this duplication has to do with making the
-% code work in many different set-ups (some of which involve other
-% packages whose interface is rapidly changing).
-%
-% The modules which control \LaTeX\ code are:
-% \begin{description}
-% \item[\textsf{pkg}]
-% Main guard for code that is to end up in some \LaTeX\ package.
-% \item[\textsf{template}]
-% Guard for code which uses features of the \package{template}
-% package. This code will end up in the \package{docindex} package,
-% whereas the equivalent code which avoids using templates ends up
-% in the \package{docidx2e} package.
-% \item[\textsf{default}]
-% This code protects the default values for template keys. The
-% syntax for this is changing, so the default values are currently
-% being assigned in the template bodies instead.
-% \end{description}
-%
-% The modules which control \program{makeindex} style files are:
-% \begin{description}
-% \item[\textsf{ist}]
-% Code for the main style file \texttt{docindex.ist}.
-% \item[\textsf{idx}]
-% Code for a style file which is like the main one, but the input
-% parameters are set to the same values as in the standard \LaTeX\
-% \texttt{gind.ist}.
-% \item[\textsf{glo}]
-% Code for a style file which is like the main one, but the input
-% parameters are set to the same values as in the standard \LaTeX\
-% \texttt{gglo.ist}.
-% \end{description}
-%
-%
-% \subsection{Initial stuff}
-%
-% \begin{macrocode}
-%<*pkg>
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage
-%<template> {docindex}
-%<!template> {docidx2e}
- [2001/04/11 v1.00 doc index formatting package]
-% \end{macrocode}
-%
-% Since the \texttt{multicols} environment is used by the \texttt{std}
-% template of type \texttt{docindex}, the \package{multicol} package
-% must have been loaded.
-% \begin{macrocode}
-\RequirePackage{multicol}
-% \end{macrocode}
-% This will probably change in \package{docindex} once I get around to
-% check how this kind of thing is implemented in the \LaTeXplus\ output
-% routine.
-%
-% Since the \texttt{docindex} pagestyle may be used the \package{xdoc}
-% package must have been loaded. This also loads the \package{doc}
-% package which contains the definition of |\pfill|.
-% \begin{macrocode}
-\RequirePackage{xdoc2}[2001/03/26]
-% \end{macrocode}
-%
-%
-% \begin{option}{oldkeywords}
-% The \texttt{oldkeywords} option tells the \package{docindex}
-% package to not change the index entry keywords from the \package{doc}
-% defaults. The code for this option appears further down.
-% \begin{macrocode}
-\DeclareOption{oldkeywords}{}
-% \end{macrocode}
-% \end{option}
-%
-% \begin{option}{usedocindexps}
-% The \texttt{usedocindexps} option tells the \package{docindex}
-% package to set the pagestyle to \texttt{docindex} (defined by
-% \package{xdoc}) when typesetting the index. The code for this option
-% appears further down.
-% \begin{macrocode}
-\DeclareOption{usedocindexps}{}
-% \end{macrocode}
-% \end{option}
-%
-% \begin{macrocode}
-\ProcessOptions\relax
-%</pkg>
-% \end{macrocode}
-%
-%
-%
-% \subsection{Index style files}
-% \label{Ssec:ist}
-%
-% The \program{makeindex} style files uses four commands. The most
-% important command is \DescribeMacro{\indexitem}|\indexitem|, which
-% has the two syntaxes
-% \begin{quote}
-% |\indexitem|\marg{level}\marg{text}\marg{next level}\\
-% |\indexitem|\marg{level}\marg{text}|{9}|\marg{numbers}^^A
-% \marg{next level}
-% \end{quote}
-% The \meta{level} is an integer in the range 1--3, the \meta{next level}
-% is an integer in the range 0--3, the \meta{text} is the item text,
-% and the \meta{numbers} is a list of (page or the like) numbers. The
-% reason for this dual syntax is limitations of \program{makeindex}:
-% there is no way of making the text inserted after an item depend on
-% whether there are any page numbers for this item, so one cannot make
-% \meta{numbers} a straightforward optional argument.
-%
-% The level numbers specify at what level the item is. Level~1
-% corresponds to |\item|, level~2 corresponds to |\subitem|, and
-% level~3 corresponds to |\subsubitem|. The \meta{next level} number
-% may also be 0, and that denotes non-|\indexitem| material such as a
-% space between letter groups or the end of the index. The purpose of
-% the \meta{next level} argument is to let the formatting of an item
-% depend on what level the next item has, a feature that
-% \program{makeindex} alone doesn't provide. Since \program{makeindex}
-% only supports putting text in front of things, each new item must
-% begin by inserting the closing brace on the second last argument and
-% the very last argument of the \emph{previous} item before it can do
-% anything for itself. This leads to the following contents of the
-% \program{makeindex} |item_|\textellipsis\ parameters.
-%
-% \xrefoff
-% \begin{macrocode}
-%<*ist|idx|glo>
-item_0 "}{1}\n\\indexitem{1}{"
-item_1 "}{2}\n \\indexitem{2}{"
-item_01 "}{2}\n \\indexitem{2}{"
-item_x1 "}{2}\n \\indexitem{2}{"
-item_2 "}{3}\n \\indexitem{3}{"
-item_12 "}{3}\n \\indexitem{3}{"
-item_x2 "}{3}\n \\indexitem{3}{"
-% \end{macrocode}
-% \SpecialIndex{\indexitem} ^^A I can't believe I'm using this!
-% \begin{macrocode}
-delim_0 "}{9}{"
-delim_1 "}{9}{"
-delim_2 "}{9}{"
-delim_n ", "
-delim_r "--"
-%</ist|idx|glo>
-% \end{macrocode}
-% \xrefon
-%
-%
-% \begin{macro}{\indexitem}
-% \begin{macro}{\DI@indexitem}
-% \begin{macro}{\DI@indexitem@}
-% \begin{macro}{\DI@last@level}
-% The |\indexitem| command (and its subsidiary macros |\DI@indexitem|
-% and |\DI@indexitem@| only handle argument grabbing and some
-% elementary processing of level numbers. The formatting of the item
-% is instead handled by the |\DI@indexitem@|\meta{level}, where
-% \meta{level} is the roman numeral |i|, |ii|, or |iii|, family of
-% control sequences. |\indexitem| itself doesn't grab any arguments,
-% instead it inserts the contents of |\DI@last@level| as an
-% additional argument in front of |\DI@indexitem|. The actual
-% argument structures of the other macros are
-% \begin{quote}
-% |\DI@indexitem|\marg{last}\marg{this}\marg{text}^^A
-% \marg{next/\texttt{9}}\\
-% |\DI@indexitem@|\marg{cmd}\marg{last}|{9}|\marg{text}^^A
-% |\NoValue|\marg{figures}\marg{next}
-% \end{quote}
-% where \meta{this} is the level of this item, \meta{next} is the
-% level of the next item, \meta{text} is the item text, and
-% \meta{figures} are the (page) numbers for this item. Several of the
-% arguments of |\DI@indexitem@| are immediately gobbled; they are
-% only used when the original |\indexitem| did not have a
-% \meta{numbers} argument.
-%
-% The |\DI@last@level| macro stores the level of the last item before
-% the current. It is set and used by |\DI@indexitem@|.
-% \begin{macrocode}
-%<*pkg>
-\newcommand\indexitem{%
- \relax
- \expandafter\DI@indexitem \expandafter{\DI@last@level}%
-}%
-% \end{macrocode}
-% \begin{macrocode}
-\def\DI@indexitem#1#2#3#4{%
- \edef\DI@last@level{\number#2\expandafter}%
- \ifnum #4=9
- \expandafter\expandafter \expandafter\DI@indexitem@
- \fi
- \csname DI@indexitem@\romannumeral#2\expandafter\endcsname
- {#1}{#4}{#3}\NoValue
-}
-% \end{macrocode}
-% \begin{macrocode}
-\def\DI@indexitem@#1#2#3#4#5#6#7{#1{#2}{#7}{#4}{#6}}
-% \end{macrocode}
-% \begin{macrocode}
-\def\DI@last@level{0}
-%</pkg>
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{macro}
-%
-% The \describecsfamily{DI@indexitem@\meta{level}}|\DI@indexitem@|^^A
-% \meta{level}, where \meta{level} is the lower case roman numeral form
-% of the level number, family of control sequences have the syntax
-% \begin{quote}
-% |\DI@indexitem@|\meta{level}\,\marg{previous}\marg{next}^^A
-% \marg{text}\marg{figures}
-% \end{quote}
-% where \meta{previous} and \meta{next} are the levels of the previous
-% and following index items, \meta{text} is the entry text of this
-% item, and \meta{figures} are the (page) numbers for this item, if it
-% has any, or the token |\NoValue|, if it hasn't.
-%
-%
-% \xrefoff
-% \begin{macrocode}
-%<*ist|idx|glo>
-group_skip "}{0}\n%^^A\n\\indexnewletter{0}{"
-heading_prefix ""
-heading_suffix ""
-headings_flag 1
-%</ist|idx|glo>
-% \end{macrocode}
-% \SpecialIndex{\indexnewletter}
-% \xrefon
-%
-%
-% \begin{macro}{\indexnewletter}
-% \changes{v\,1.00}{2001/04/05}{Made it \cs{outer}. (LH)}
-% The |\indexnewletter| command is placed in front of a new letter
-% group. It has the syntax
-% \begin{quote}
-% |\indexnewletter|\marg{first}\marg{letter}\marg{next}
-% \end{quote}
-% where \meta{first} is a flag (|1| if this |\indexnewletter|
-% is at the very beginning of the index, |0| otherwise), \meta{letter}
-% is the letter name (according to the \program{makeindex} program; it
-% can be e.g.\ the string `Symbols') and \meta{next} is the level of
-% the next item (I think this will always be |1| with
-% \program{makeindex}). The command takes care of declining an offer
-% to join with the previous index item, inserts some vertical space
-% if the \meta{first} is |0|, print the \meta{letter} using
-% |\DI@letter@format|, and doesn't offer to join with the following
-% item.
-% \begin{macrocode}
-%<*pkg>
-\@ifundefined{indexnewletter}{}{%
- \PackageInfo
-%<template> {docindex}
-%<!template> {docidx2e}
- {Command \protect\indexnewletter\space redefined}
-}
-\outer\def\indexnewletter#1#2#3{%
- \DI@item@nojoin
- \ifnum #1=\z@ \vspace{\DI@letter@skip}\fi
- \DI@letter@format{#2}%
- \def\DI@last@level{0}%
- \let\DI@item@join\@firstofone
- \let\DI@item@nojoin\@empty
-}
-%</pkg>
-% \end{macrocode}
-% \end{macro}
-%
-% The index style files also need to set some parameters which aren't
-% directly connected to the commands provided by the \package{docindex}
-% package. First there's the input style parameters:\xrefoff
-% \begin{macrocode}
-%<*ist|idx|glo>
-actual '='
-quote '!'
-level '>'
-% \end{macrocode}
-% Then the page precedence should be changed. This is mainly for the
-% convenience of use with documents that |\DocInclude| files, since
-% these by default number the files using letters.
-% \begin{macrocode}
-page_precedence "naArR"
-% \end{macrocode}
-% In \texttt{docindex.ist}, both the \texttt{keyword} and the
-% |page_compositor| strings are different from their standard values. It
-% turns out to be hard to use a normal command as page compositor,
-% because \program{makeindex} always rejects spaces and braces in the
-% page number even if they is in the |page_compositor| parameter!
-% \begin{macrocode}
-%<ist>keyword "\\xdocindexentry"
-%<ist>page_compositor "\\+"
-% \end{macrocode}
-% \SpecialIndex{\+}
-% Finally, in the style file for the list of changes, the keyword must
-% be changed to |\glossaryentry|.
-% \begin{macrocode}
-%<glo>keyword "\\glossaryentry"
-%</ist|idx|glo>
-% \end{macrocode}
-% \xrefon
-%
-%
-% \begin{option}{oldkeywords}
-% \begin{macro}{\XD@index@keyword}
-% \begin{macro}{\XD@glossary@keyword}
-% \begin{macro}{\XD@page@compositor}
-% \changes{v\,1.00}{2001/04/05}{Changed it from \cs{PageCompositor-} to
-% \cs{+}. (LH)}
-% To make the contents of the \texttt{.idx} and \texttt{.glo} files
-% compatible with the input parameter settings of
-% \texttt{docindex.ist}, some macros used by the \package{xdoc}
-% package must be redefined. This can however be stopped if the
-% \texttt{oldkeywords} option is passed to the \package{docindex}
-% package.
-% \begin{macrocode}
-%<*pkg>
-\@ifpackagewith
-%<template> {docindex}
-%<!template> {docidx2e}
- {oldkeywords}{}{
- \edef\XD@index@keyword{\@backslashchar xdocindexentry}
- \let\XD@glossary@keyword\XD@index@keyword
- \def\XD@page@compositor{\@backslashchar +}
-}
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{option}
-%
-% \changes{v\,1.00}{2001/03/25}{The index file is no longer a
-% \texttt{thedocindex} environment---the layout must instead be set
-% by the command which \cs{input}s the index. Introduced the
-% \cs{docindexguard} command to handle situations with incompatible
-% index styles. (LH)}
-%
-% \begin{macro}{\docindexguard}
-% \begin{macro}{\DI@ind@setup}
-% The first line of every \texttt{docindex} style sorted index file is
-% \begin{quote}
-% |\docindexguard{\endinput}|
-% \end{quote}
-% If the index file is inputted as a classical sorted index file then
-% this will produce an undefined command error and no more lines in
-% the index will be read. If the index file is inputted using the
-% conventions of the \package{docindex} package then the
-% |\docindexguard| will instead gobble the |\endinput| so that the
-% file will be read.
-%
-% One can also have the opposite problem: a classical style index file
-% is being input using \package{docindex} conventions. It is to
-% overcome this problem that the |\DI@ind@setup| command has been
-% introduced. Classical style index files begin by a |\begin|
-% command, so that command is temporarily redefined to print a warning
-% message and |\endinput| the file. Should the first command instead
-% be |\docindexguard| then everything will be reset to normal. To
-% accomplish this, |\DI@ind@setup| opens a group which should be
-% closed by the initial |\docindexguard| or |\begin|.
-% \begin{macrocode}
-\def\DI@ind@setup{\bgroup
- \def\docindexguard##1{\egroup}%
- \def\begin##1{%
- \egroup
- \PackageWarningNoLine
-%<template> {docindex}%
-%<!template> {docidx2e}%
- {Ignoring old style index file}
- \endinput
- }%
-}
-%</pkg>
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% \xrefoff
-% \begin{macrocode}
-%<*idx|glo|ist>
-preamble "\\docindexguard{\\endinput}\n%^^A\n\\indexnewletter{1}{"
-postamble "}{0}\n\\endinput"
-%</idx|glo|ist>
-% \end{macrocode}
-% \SpecialIndex{\docindexguard}
-% \SpecialIndex{\indexnewletter}
-% \xrefon
-%
-% In summary, this is the BNF syntax for a sorted index file that is to
-% be typeset using \package{docindex}:
-% \begin{syntax}
-% \item[sorted index file]
-% \meta{guard}\meta{lettergroups}|\endinput|
-% \item[guard] |\docindexguard{\endinput}|
-% \item[lettergroups] \meta{lettergroup}\branch
-% \meta{lettergroup}\meta{lettergroups}
-% \item[lettergroup] \meta{heading}\meta{items}
-% \item[heading]
-% |\indexnewletter|\marg{first}\marg{letter}\marg{next}
-% \item[items] \meta{empty}\branch \meta{item}\meta{items}
-% \item[item] |\indexitem|\marg{level}\marg{text}\marg{next}\branch
-% |\indexitem|\marg{level}\marg{text}|{9}|\marg{numbers}\marg{next}
-% \end{syntax}
-% A \meta{level} is |1|, |2|, or |3|. A \meta{next} is |0|, |1|, |2|, or
-% |3|. Within a \meta{lettergroup}, the \meta{next} of one \meta{item}
-% or the \meta{heading} must equal the \meta{level} of the next
-% \meta{item} and the \meta{next} of the last item must be |0|. The
-% \meta{first} should be |1| in the first \meta{lettergroup} and |0| in
-% all the others.
-%
-%
-% \subsection{Template mechanisms}
-%
-% The \package{docindex} package loads the \package{xhj} and
-% \package{galley2} packages to gain access to the \texttt{justification}
-% type templates. This indirectly loads the \package{xparse} and
-% \package{template} packages.
-% \begin{macrocode}
-%<*pkg>
-%<template>\RequirePackage{xhj,galley2}
-% \end{macrocode}
-%
-% Since the \package{docidx2e} package doesn't use the template mechanisms
-% provided by the \package{template} package, but still is to follow the
-% logic of the \package{docindex} package which does use these
-% mechanisms, it becomes convenient to define fakes for a couple of
-% \package{template} commands. First \package{docidx2e} checks if the
-% real \package{template} package has been loaded and emits a warning if
-% it has.
-% \begin{macrocode}
-%<*!template>
-\@ifpackageloaded{template}{
- \PackageWarningNoLine{docidx2e}{The docidx2e package is only meant%
- \MessageBreak for use when LaTeX2e* packages like
- template\MessageBreak are not available.}
-}{}
-% \end{macrocode}
-%
-% Before continuing with the definitions, some of the data structures
-% used by the \package{template} mechanisms must be explained. A
-% template \emph{instance} is really only a macro; what makes instances
-% different from macros in general is that they usually aren't
-% explicitly programmed. Instead they are formed by combining two
-% different pieces of code: one which is the code part of some template,
-% and one which is a piece of code which sets the \emph{container}
-% macros\slash registers\slash parameters for the key values of this
-% template. In general, the first piece of code contains the
-% programming-like aspects of what the instance does, whereas the latter
-% contains those that have to do with lauout and design. The advantage
-% of this model is that it lets you implement many layouts without
-% requiring you to know everything about \LaTeX\ programming that it
-% would take to implement everything using macros.
-%
-% Instances are stored in control sequences of the form
-% \begin{quote}
-% \describecsfamily{TP@I{\meta{collection}}\break
-% {\meta{type}}\break{\meta{name}}}
-% |\TP@I|\marg{collection}\marg{type}\marg{name}
-% \end{quote}
-% The \meta{type} is the primary distinction between instances; for each
-% type there exists a specification of what all instances of that type
-% must do, and all instances of a type must be interchangeable. In
-% particular, all instances of a given template type must have the same
-% argument structure. The \meta{name} is simply the name used to
-% identify the instance (amongst all other instances of that type).
-% Finally, the \meta{collection} is something which can be used in
-% circumstances where one needs to quickly switch between different
-% definitions of an instance. If they have different \meta{collection}s
-% then they can exist simutaneously; which of them is used is determined
-% by which collection is currently active.
-%
-% Collections are active on a ``per type'' basis; which collection is
-% active for instances of type \meta{type} is determined by the
-% contents of the \describecsfamily{TP@T{\meta{type}}}
-% |\TP@T|\marg{type} control sequences, which are macros with the
-% structure
-% \begin{quote}
-% \marg{collection}\marg{arguments}
-% \end{quote}
-% If there is no instance with the requested name in the currently
-% active collection then the instance with the same name from the
-% normal collection (whose name is the empty string) will be used. The
-% \meta{arguments} part of the macro is simply the number of arguments
-% of instances of this type; it is only used when declaring templates.
-%
-% \begin{macro}{\UseCollection}
-% The |\UseCollection| command sets the active collection for a given
-% type. It has the syntax
-% \begin{quote}
-% |\UseCollection|\marg{type}\marg{collection}
-% \end{quote}
-% This macro was used up to v\,1.00 of \package{docindex} but a change
-% in the package logic made it unnecessary.
-% \begin{macrocode}
-% \providecommand*\UseCollection[2]{%
-% \expandafter\edef \csname TP@T{#1}\endcsname{%
-% {#2}%
-% {\expandafter\expandafter \expandafter\@secondoftwo
-% \csname TP@T{#1}\endcsname}%
-% }%
-% }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@letinstance}
-% The |\@letinstance| macro |\let|s the (currently used) instance
-% with given name and type to the \meta{target} control sequence. It
-% has the syntax
-% \begin{quote}
-% |\@letinstance|\marg{target}\marg{type}\marg{name}
-% \end{quote}
-% \begin{macrocode}
-\def\@letinstance#1#2#3{%
- \expandafter\let \expandafter#1%
- \csname TP@I%
- {\expandafter\expandafter \expandafter\@firstoftwo
- \csname TP@T{#2}\endcsname}%
- {#2}{#3}%
- \endcsname
- \ifx \relax#1%
- \expandafter\let \expandafter#1\csname TP@I{}{#2}{#3}\endcsname
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\UseInstance}
-% The |\UseInstance| calls the (currently used) instance with given
-% name and type. Its syntax is
-% \begin{quote}
-% |\UseInstance|\marg{type}\marg{name}\,\meta{arguments of instance}
-% \end{quote}
-% \begin{macrocode}
-\providecommand*\UseInstance[2]{%
- \@letinstance\@tempa{#1}{#2}%
- \ifx \relax\@tempa
- \PackageError{docidx2e}{Instance #2 of type #1 undefined}\@eha
- \else
- \expandafter\@tempa
- \fi
-}
-%</!template>
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-% \subsection{Templates for index item formatting}
-%
-% \begin{templatetype}{justification}
-% In \package{docidx2e}, we have to provide a dummy definition of
-% |\TP@T{justification}|.
-% \begin{macrocode}
-%<!template>\@namedef{TP@T{justification}}{{}{0}}
-% \end{macrocode}
-% \end{templatetype}
-%
-% \changes{v\,1.00}{2001/04/08}{Using \texttt{single} template rather
-% than the \texttt{std} template for the \texttt{indexitem}$n$
-% instances of type \texttt{justification}. (LH)}
-% \begin{instance}{justification}{indexitem1}
-% \begin{instance}{justification}{indexitem2}
-% \begin{instance}{justification}{indexitem3}
-% The \texttt{indexitem}\meta{level} instances of the
-% \texttt{justification} template set up paragraph indentation etc.\
-% for a paragraph containing an index item at that level. The layout
-% is the same as that used by the \package{doc} package, but it is
-% not specified in quite the same way.
-% \begin{macrocode}
-%<*template>
-\DeclareInstance{justification}{indexitem1}{single}{
- leftskip=30pt, rightskip=15pt, startskip=-30pt, parfillskip=-15pt,
- linefillskip=0pt plus 1fil, parindent=0pt
-}
-\DeclareInstance{justification}{indexitem2}{single}{
- leftskip=30pt, rightskip=15pt, startskip=-15pt, parfillskip=-15pt,
- linefillskip=0pt plus 1fil, parindent=0pt
-}
-\DeclareInstance{justification}{indexitem3}{single}{
- leftskip=30pt, rightskip=15pt, startskip=-5pt, parfillskip=-15pt,
- linefillskip=0pt plus 1fil, parindent=0pt
-}
-%</template>
-%<*!template>
-\@namedef{TP@I{}{justification}{indexitem1}}{%
- \leftskip=30\p@
- \rightskip=15\p@
- \parindent=-30\p@
- \parfillskip=-\rightskip
-}
-\@namedef{TP@I{}{justification}{indexitem2}}{%
- \leftskip=30\p@
- \rightskip=15\p@
- \parindent=-15\p@
- \parfillskip=-\rightskip
-}
-\@namedef{TP@I{}{justification}{indexitem3}}{%
- \leftskip=30\p@
- \rightskip=15\p@
- \parindent=-5\p@
- \parfillskip=-\rightskip
-}
-%</!template>
-% \end{macrocode}
-% \end{instance}\end{instance}\end{instance}
-%
-%
-%
-% \subsubsection{The \texttt{indexitem} template type}
-%
-% \begin{templatetype}{indexitem}
-% \begin{macro}{\DI@item@nojoin}
-% \begin{macro}{\DI@item@join}
-% The argument structure of a template of type \texttt{indexitem} is
-% \begin{quote}
-% \marg{previous}\marg{next}\marg{text}\marg{figures}
-% \end{quote}
-% \meta{previous} and \meta{next} are the level codes of the index
-% item before and after the current item, \meta{text} is the item text
-% of the current index item, and \meta{figures} are the (page) numbers
-% for this item, if it has any, or the token |\NoValue|, if it hasn't.
-%
-% Templates of this type format and typeset one item in an index. In
-% doing so they may do pretty much anything as long as the other items
-% aren't affected: they may start and end paragraphs, change the
-% paragraph justification, \textellipsis
-%
-% There is however one area in which the rules are rather strict, and
-% that has to do with when two items can be joined. In a case where
-% item A is followed by item B, item A can propose to item B that they
-% should be joined and item B can then accept or decline this offer.
-% Technically the offer consists of defining the two macros
-% |\DI@item@join| and |\DI@item@nojoin|. If item B accepts the offer
-% it will execute |\DI@item@join| and if it declines the offer it
-% will execute |\DI@item@nojoin|. A typical definition of
-% |\DI@item@join| might be to insert a punctuation mark and a typical
-% definition of |\DI@item@nojoin| might be to end the current paragraph.
-%
-% There is however also a third case, namely that no offer was given.
-% In this case |\DI@item@nojoin| should be |\let| to |\@empty| and
-% |\DI@item@join| should be |\let| to |\@firstofone|. The reason for
-% this last rule is that |\DI@item@join| has the syntax
-% \begin{quote}
-% |\DI@item@join|\marg{no-join recovery code}
-% \end{quote}
-% where the \meta{no-join recovery code} is code that item B needs to
-% have executed if there is no join although item B would have
-% accepted it. |\DI@item@nojoin|, on the other hand, takes no
-% argument.
-% \begin{macrocode}
-%<template>\DeclareTemplateType{indexitem}{4}
-%<!template>\@namedef{TP@T{indexitem}}{{}{4}}
-\let\DI@item@join=\@firstofone
-\let\DI@item@nojoin=\@empty
-% \end{macrocode}
-% \end{macro}\end{macro}\end{templatetype}
-%
-% \begin{template}{indexitem}{fixed}
-% The \texttt{fixed} template of type \texttt{indexitem} formats an
-% item as the items in \package{doc}'s \texttt{theindex} environment.
-% It is fixed in that it ignores the levels of the surrounding items.
-%
-% The keys for this template are:
-% \begin{description}
-% \keyvalitem{justification-setup}{i}
-% This is a template instance of type \texttt{justification}. It
-% sets the justification for the paragraph containing the item,
-% unless the item is being joined with the preceeding item.
-% \keyvalitem{pre-join}{b}
-% A switch for whether the item should accept to be joined with
-% the item before. True means ``accept'', false means ``decline''
-% (which is the default).
-% \keyvalitem{nofig-action}{f1}
-% If the \meta{figures} argument is |\NoValue| then the \meta{text}
-% argument is passed on to this macro for the actual formatting.
-% The default expansion is precisely the \meta{text}.
-% \keyvalitem{fig-action}{f2}
-% If the \meta{figures} argument is not |\NoValue| then the
-% \meta{text} and \meta{figures} arguments are passed on (in that
-% order) to this macro for the actual formatting. The default
-% expansion is
-% \begin{quote}
-% \meta{text}|\pfill|\meta{figures}
-% \end{quote}
-% \keyvalitem{post-join}{b}
-% A switch for whether the item should offer to join with the
-% following item. True means ``make offer'', false (which is the
-% default) means ``don't make offer''. Making the offer is
-% furthermore conditioned by that the \meta{figures} argument is
-% |\NoValue|.
-% \keyvalitem{nojoin-extra}{f0}
-% Extra code which is inserted after the normal code for an item
-% if the item neither has any figures nor offers to join with the
-% following item. The default value is a space of length
-% \textit{linefillskip} followed by a |\nopagebreak|.^^A
-% \changes{v\,0.03}{2001/02/24}{Added the \textit{nojoin-extra}
-% key. (LH)}^^A
-% \changes{v\,0.03}{2001/02/25}{Added \cs{nopagebreak} from
-% \cs{efill} to default for \textit{nojoin-extra} key. (LH)}
-% \keyvalitem{join-extra}{f0}
-% Extra text which is inserted after the normal text of the item
-% if there is a join, by default a comma and a space.
-% \keyvalitem{offjoin-extra}{f0}
-% Extra code which is inserted after the normal text of the item
-% if a join is offered but declined. The default value is a space
-% of length \textit{linefillskip} followed by a |\nopagebreak|
-% (larger than the one from \textit{nojoin-extra}; if not for
-% this, the default could have been taken to be
-% |\DI@nojoin@extra|).
-% \end{description}
-%
-% Note that the contents of the \textit{nojoin-extra},
-% \textit{join-extra}, and \textit{offjoin-extra} keys must be robust
-% as they may be subjected to a |\protected@edef|.
-% \changes{v\,0.03}{2001/02/24}{\cs{protected@edef}ing the macros
-% \cs{DI@item@join} and \cs{DI@item@nojoin}. (LH)}
-%
-% \begin{macrocode}
-%<*template>
-\DeclareTemplate{indexitem}{fixed}{4}{
- justification-setup =i{justification} \DI@item@justification,
- pre-join =b
-%<default> {false}
- DI@prejoin@,
- nofig-action =f1
-%<default> {#1}
- \DI@nofig,
- fig-action =f2
-%<default> {#1\pfill#2}
- \DI@hasfig,
- post-join =b
-%<default> {false}
- DI@postjoin@,
- nojoin-extra =f0
-%<default> {\hspace*{\justification@g}
-%<default> \protect\nopagebreak[2]}
- \DI@nojoin@extra,
- join-extra =f0
-%<default> {,\space}
- \DI@join@extra,
- offjoin-extra =f0
-%<default> {\hspace*{\justification@g}
-%<default> \protect\nopagebreak[4]}
- \DI@offjoin@extra
-}{%
-%<*!default>
- \let\ifDI@prejoin@\iffalse
- \let\DI@nofig\@firstofone
- \def\DI@hasfig##1##2{##1\pfill##2}%
- \let\ifDI@postjoin@\iffalse
- \def\DI@nojoin@extra{%
- \hspace*{\justification@g}\protect\nopagebreak[2]%
- }%
- \def\DI@join@extra{,\space}%
- \def\DI@offjoin@extra{%
- \hspace*{\justification@g}\protect\nopagebreak[4]%
- }%
-%</!default>
- \DoParameterAssignments
- \ifDI@prejoin@
- \DI@item@join{\DI@item@justification}%
- \else
- \DI@item@nojoin\DI@item@justification
- \fi
- \let\DI@item@join\@firstofone
- \let\DI@item@nojoin\@empty
- \IfNoValueTF{#4}{%
- \DI@nofig{#3}%
- \ifDI@postjoin@
- \protected@edef\DI@item@join##1{\DI@join@extra}%
- \protected@edef\DI@item@nojoin{\DI@offjoin@extra\protect\par}%
- \else
- \DI@nojoin@extra\par
- \fi
- }{%
- \DI@hasfig{#3}{#4}%
- \par
- }%
- \ignorespaces
-}
-% \end{macrocode}
-% \end{template}
-%
-% \begin{instance}{indexitem}{fixed1}
-% \begin{instance}{indexitem}{fixed2}
-% \begin{instance}{indexitem}{fixed3}
-% The \texttt{fixed1}, \texttt{fixed2}, and \texttt{fixed3} instances
-% of type \texttt{indexitem} are simply the \texttt{fixed} template
-% with different values assigned to the \textit{justification-setup}
-% key.
-% \begin{macrocode}
-\DeclareInstance{indexitem}{fixed1}{fixed}
- {justification-setup = indexitem1}
-\DeclareInstance{indexitem}{fixed2}{fixed}
- {justification-setup = indexitem2}
-\DeclareInstance{indexitem}{fixed3}{fixed}
- {justification-setup = indexitem3}
-%</template>
-%<*!template>
-\@namedef{TP@I{}{indexitem}{fixed1}}#1#2#3#4{%
- \@letinstance\DI@item@justification{justification}{indexitem1}%
- \DI@item@nojoin
- \DI@item@justification
- \ifx \NoValue#4%
- #3\nobreak\hfil\nopagebreak[2]%
- \else
- #3\pfill#4%
- \fi
- \let\DI@item@join\@firstofone
- \let\DI@item@nojoin\@empty
- \par
-}
-\@namedef{TP@I{}{indexitem}{fixed2}}#1#2#3#4{%
- \@letinstance\DI@item@justification{justification}{indexitem2}%
- \DI@item@nojoin
- \DI@item@justification
- \ifx \NoValue#4%
- #3\nobreak\hfil\nopagebreak[2]%
- \else
- #3\pfill#4%
- \fi
- \let\DI@item@join\@firstofone
- \let\DI@item@nojoin\@empty
- \par
-}
-\@namedef{TP@I{}{indexitem}{fixed3}}#1#2#3#4{%
- \@letinstance\DI@item@justification{justification}{indexitem3}%
- \DI@item@nojoin
- \DI@item@justification
- \ifx \NoValue#4%
- #3\nobreak\hfil\nopagebreak[2]%
- \else
- #3\pfill#4%
- \fi
- \let\DI@item@join\@firstofone
- \let\DI@item@nojoin\@empty
- \par
-}
-%</!template>
-% \end{macrocode}
-% \end{instance}\end{instance}\end{instance}
-%
-% \begin{instance}{indexitem}{fixed-r1a}
-% \begin{instance}{indexitem}{fixed-r2a-nocomma}
-% \begin{instance}{indexitem}{fixed-a3r}
-% The \texttt{fixed-r1a}, \texttt{fixed-r2a-nocomma}, and
-% \texttt{fixed-a3r} instances of type \texttt{indexitem} are again
-% based on the \texttt{fixed} template, but here they always accept
-% (or offer) to join with one neighbouring item, whereas they always
-% reject to join with the other. As before, they differ in their
-% values of the \textit{justification-setup} key, and the
-% \texttt{-nocomma} is because that instance only inserts a space,
-% not a comma and a space, when items are joined.
-% \begin{macrocode}
-%<*template>
-\DeclareInstance{indexitem}{fixed-r1a}{fixed}
- {justification-setup = indexitem1, post-join = true}
-\DeclareInstance{indexitem}{fixed-r2a-nocomma}{fixed}
- {justification-setup = indexitem2,
- post-join = true, join-extra = {\space}}
-\DeclareInstance{indexitem}{fixed-a3r}{fixed}
- {justification-setup = indexitem3, pre-join = true}
-%</template>
-%<*!template>
-\@namedef{TP@I{}{indexitem}{fixed-r1a}}#1#2#3#4{%
- \@letinstance\DI@item@justification{justification}{indexitem1}%
- \DI@item@nojoin
- \DI@item@justification
- \ifx \NoValue#4%
- #3%
- \def\DI@item@join##1{, }%
- \def\DI@item@nojoin{\nobreak\hfil\nopagebreak[4]\par}%
- \else
- #3\pfill#4\par
- \let\DI@item@join\@firstofone
- \let\DI@item@nojoin\@empty
- \fi
- \ignorespaces
-}
-\@namedef{TP@I{}{indexitem}{fixed-r2a-nocomma}}#1#2#3#4{%
- \@letinstance\DI@item@justification{justification}{indexitem2}%
- \DI@item@nojoin
- \DI@item@justification
- \ifx \NoValue#4%
- #3%
- \def\DI@item@join##1{ }%
- \def\DI@item@nojoin{\nobreak\hfil\nopagebreak[4]\par}%
- \else
- #3\pfill#4\par
- \let\DI@item@join\@firstofone
- \let\DI@item@nojoin\@empty
- \fi
- \ignorespaces
-}
-\@namedef{TP@I{}{indexitem}{fixed-a3r}}#1#2#3#4{%
- \@letinstance\DI@item@justification{justification}{indexitem3}%
- \DI@item@join{\DI@item@justification}%
- \ifx \NoValue#4%
- #3\hfil\nopagebreak[2]%
- \else
- #3\pfill#4%
- \fi
- \let\DI@item@join\@firstofone
- \let\DI@item@nojoin\@empty
- \par
-}
-%</!template>
-% \end{macrocode}
-% \end{instance}\end{instance}\end{instance}
-%
-%
-% \begin{template}{indexitem}{aloneaccept}
-% The \texttt{aloneaccept} template of type \texttt{indexitem} formats
-% an item as the items in \package{doc}'s \texttt{theindex} environment.
-% It accepts to be joined with the preceeding item if and only if
-% both that and the following item are at a lower level than the item
-% itself is.
-%
-% The keys for this template are:
-% \begin{description}
-% \keyvalitem{justification-setup}{i}
-% This is a template instance of type \texttt{justification}. It
-% sets the justification for the paragraph containing the item,
-% unless the item is being joined with the preceeding item.
-% \keyvalitem{ownlevel}{C}
-% This is the (nominal) level of this item; it will accept a join
-% with the preceeding item if and only if the levels of both that
-% and the following item are different from this number.
-% \changes{v\,1.00}{2001/03/25}{Changed condition for accepting a
-% join from ``neighbouring item levels are lower'' to
-% ``neighbouring item levels are not equal to''. (LH)}
-% The default is 2.
-% \keyvalitem{nofig-action}{f1}
-% If the \meta{figures} argument is |\NoValue| then the \meta{text}
-% argument is passed on to this macro for the actual formatting.
-% The default expansion is the \meta{text} followed by a space of
-% linefillskip.
-% \keyvalitem{fig-action}{f2}
-% If the \meta{figures} argument is not |\NoValue| then the
-% \meta{text} and \meta{figures} arguments are passed on (in that
-% order) to this macro for the actual formatting. The default
-% expansion is
-% \begin{quote}
-% \meta{text}|\pfill|\meta{figures}
-% \end{quote}
-% \keyvalitem{post-join}{b}
-% A switch for whether the item should offer to join with the
-% following item. True means ``make offer'', false (which is the
-% default) means ``don't make offer''. Making the offer is
-% furthermore conditioned by that the \meta{figures} argument is
-% |\NoValue|.
-% \keyvalitem{nojoin-extra}{f0}
-% Extra code which is inserted after the normal code for an item
-% if the item neither has any figures nor offers to join with the
-% following item. The default value is a space of length
-% \textit{linefillskip}.
-% \changes{v\,0.03}{2001/02/24}{Added the \textit{nojoin-extra}
-% key. (LH)}
-% \keyvalitem{join-extra}{f0}
-% Extra text which is inserted after the normal text of the item
-% if there is a join, by default a comma and a space.
-% \keyvalitem{offjoin-extra}{f0}
-% Extra code which is inserted after the normal text of the item
-% if a join is offered but declined, by default the
-% \textit{nojoin-extra} code followed by a |\nopagebreak|.
-% \end{description}
-%
-% Note that the contents of the \textit{nojoin-extra},
-% \textit{join-extra}, and \textit{offjoin-extra} keys must be robust
-% as they may be subjected to a |\protected@edef|.
-% \changes{v\,0.03}{2001/02/24}{\cs{protected@edef}ing the macros
-% \cs{DI@item@join} and \cs{DI@item@nojoin}. (LH)}
-%
-% \begin{macrocode}
-%<*template>
-\DeclareTemplate{indexitem}{aloneaccept}{4}{
- justification-setup =i{justification} \DI@item@justification,
- ownlevel =C
-%<default> {2}
- \DI@this@level,
- nofig-action =f1
-%<default> {#1}
- \DI@nofig,
- fig-action =f2
-%<default> {#1\pfill#2}
- \DI@hasfig,
- post-join =b
-%<default> {false}
- DI@postjoin@,
- nojoin-extra =f0
-%<default> {\hspace*{\justification@g}}
- \DI@nojoin@extra,
- join-extra =f0
-%<default> {,\space}
- \DI@join@extra,
- offjoin-extra =f0
-%<default> {\DI@nojoin@extra\protect\nopagebreak[4]}
- \DI@offjoin@extra
-}{%
-%<*!default>
- \def\DI@this@level{2}%
- \let\DI@nofig\@firstofone
- \def\DI@hasfig##1##2{##1\pfill##2}%
- \let\ifDI@postjoin@\iffalse
- \def\DI@nojoin@extra{\hspace*{\justification@g}}%
- \def\DI@join@extra{,\space}%
- \def\DI@offjoin@extra{\DI@nojoin@extra\protect\nopagebreak[4]}%
-%</!default>
- \DoParameterAssignments
- \ifnum \DI@this@level=#1
- \DI@item@nojoin \DI@item@justification
- \else\ifnum \DI@this@level=#2
- \DI@item@nojoin \DI@item@justification
- \else
- \DI@item@join{\DI@item@justification}%
- \fi\fi
- \let\DI@item@join\@firstofone
- \let\DI@item@nojoin\@empty
- \IfNoValueTF{#4}{%
- \DI@nofig{#3}%
- \ifDI@postjoin@
- \protected@edef\DI@item@join##1{\DI@join@extra}%
- \protected@edef\DI@item@nojoin{\DI@offjoin@extra\protect\par}%
- \else
- \DI@nojoin@extra \par
- \fi
- }{%
- \DI@hasfig{#3}{#4}%
- \par
- }%
- \ignorespaces
-}
-%</template>
-% \end{macrocode}
-% \end{template}
-%
-% \begin{instance}{indexitem}{aloneaccept2}
-% \begin{instance}{indexitem}{aloneaceept3}
-% The \texttt{aloneaccept2} and \texttt{aloneaccept3} instances of type
-% \texttt{indexitem} are simply the \texttt{aloneaccept} template
-% with the levels fixed to two and three, respectively.
-% \begin{macrocode}
-%<*template>
-\DeclareInstance{indexitem}{aloneaccept2}{aloneaccept}
- {justification-setup = indexitem2, ownlevel = 2}
-\DeclareInstance{indexitem}{aloneaccept3}{aloneaccept}
- {justification-setup = indexitem3, ownlevel = 3}
-%</template>
-%<*!template>
-\@namedef{TP@I{}{indexitem}{aloneaccept2}}#1#2#3#4{%
- \@letinstance\DI@item@justification{justification}{indexitem2}%
- \ifnum #1=\tw@
- \DI@item@nojoin \DI@item@justification
- \else\ifnum #2=\tw@
- \DI@item@nojoin \DI@item@justification
- \else
- \DI@item@join{\DI@item@justification}%
- \fi\fi
- \ifx \NoValue#4%
- #3\nobreak\hfil\vadjust{}%
- \else
- #3\pfill #4%
- \fi
- \let\DI@item@join\@firstofone
- \let\DI@item@nojoin\@empty
- \par
-}
-\@namedef{TP@I{}{indexitem}{aloneaccept3}}#1#2#3#4{%
- \@letinstance\DI@item@justification{justification}{indexitem3}%
- \ifnum #1=\thr@@
- \DI@item@nojoin \DI@item@justification
- \else\ifnum #2=\thr@@
- \DI@item@nojoin \DI@item@justification
- \else
- \DI@item@join{\DI@item@justification}%
- \fi\fi
- \ifx \NoValue#4%
- #3\nobreak\hfil\vadjust{}%
- \else
- #3\pfill #4%
- \fi
- \let\DI@item@join\@firstofone
- \let\DI@item@nojoin\@empty
- \par
-}
-%</!template>
-% \end{macrocode}
-% \end{instance}\end{instance}
-%
-%
-% \subsubsection{The \texttt{docindex} template type}
-%
-% \begin{templatetype}{docindex}
-% A template of type \texttt{docindex} takes care of typesetting an
-% index found in a file (which is |\input|ted as part of this
-% process), hence using an instance of type \texttt{docindex} is
-% the same kind of action that the |\printindex| and |\printglossary|
-% commands make.
-%
-% The template decides from which file the index should be read. It
-% takes two arguments: the index prologue and the index epilogue.
-% These are two pieces of text (which may just as well include a
-% sectioning command) that are printed just before and after the
-% index. Either argument may be empty. Immediately after the file
-% containing the body of the index has been inputted, the template
-% must execute |\DI@item@nojoin| to make sure that the last item is
-% properly typeset.
-%
-% Templates of type \texttt{docindex} must begin by opening a group
-% and end by closing it. They must furthermore locally define the
-% following macros before any part of the index is typeset.
-% \begin{description}
-% \item[\cs{DI@indexitem@i}, \cs{DI@indexitem@ii}, and
-% \cs{DI@indexitem@iii}]
-% Handlers for index items at level 1, 2, and 3 respectively.
-% These handlers must conform to the specification for
-% \texttt{indexitem} instances.
-% \item[\cs{DI@letter@skip}, \cs{DI@letter@format}]
-% These are described in the comments to the |\indexnewletter|
-% command.
-% \item[\cs{+}]
-% The command for typesetting the separator between two parts of
-% a composite (page) number. This is a parameterless macro.
-% \end{description}
-%
-% \begin{macrocode}
-%<template>\DeclareTemplateType{docindex}{2}
-%<!template>\@namedef{TP@T{docindex}}{{}{2}}
-% \end{macrocode}
-% \end{templatetype}
-%
-% \begin{template}{docindex}{std}
-% The \texttt{std} template of type \texttt{docindex} typesets an
-% index while providing all the formatting parameters of the
-% \package{doc} index and list of changes (and a few more).
-% \changes{v\,1.00}{2001/04/08}{The \mbox{\textit{-font}} keyvals
-% renamed to \mbox{\textit{-setup}}, but the type stayed the
-% same (f0). (LH)}
-%
-% \label{docindex:std}
-% The keys of the template are:
-% \begin{description}
-% \keyvalitem{file-name}{n}
-% The base name of the file in which the index is stored, by
-% default the |\jobname|.\changes{v\,1.00}{2001/03/25}{Added
-% \textit{file-name} and \textit{file-extension} keys, removed
-% the \textit{default-prologue} and \textit{default-epilogue}
-% keys. (LH)}
-% \keyvalitem{file-extension}{n}
-% The extension of the file in which the index is stored, by
-% default \texttt{ind}.
-% \keyvalitem{item1}{i}
-% \texttt{indexitem} instance for level 1 items, by default
-% \texttt{fixed1}.
-% \keyvalitem{item2}{i}
-% \texttt{indexitem} instance for level 2 items, by default
-% \texttt{fixed2}.
-% \keyvalitem{item3}{i}
-% \texttt{indexitem} instance for level 3 items, by default
-% \texttt{fixed3}.
-% \keyvalitem{columns}{C}
-% The number of columns in the index, by default 3.
-% \keyvalitem{reserved-height}{L}
-% The minimal amount of vertical space that must be left on the
-% current page if the index is to start on it, by default
-% 80\,pt.^^A
-% \changes{v\,1.00}{2001/03/25}{Made \textit{reserved-height} work
-% even when \textit{columns} is 1 by using the
-% \package{multicol} macro \cs{enough@room}. (LH)}
-% \keyvalitem{column-sep}{l}
-% The horizontal separation between columns in the index, by
-% default 10\,pt. (This may seem strange in comparison with
-% \package{doc}, since |\IndexParms| contains the command
-% |\columnsep=15pt|, but \package{doc} doesn't execute
-% |\IndexParms| until \LaTeX\ is already in multi-column mode, and
-% then it is too late for the changed value to have any effect.)
-% \keyvalitem{prologue-setup}{f0}
-% Various commands setting layout parameters (e.g.\ the font) for
-% the prologue; by default empty.
-% \keyvalitem{body-setup}{f0}
-% Various commands setting layout parameters (e.g.\ the font) for
-% the body of the index; by default |\small|.
-% \keyvalitem{epilogue-setup}{f0}
-% Various commands setting layout parameters (e.g.\ the font) for
-% the epilogue; by default |\normalsize| (to counter the |\small|
-% in the \textit{body-setup}).
-% \keyvalitem{letter-skip}{L}
-% The skip inserted before a new letter group, by default 10\,pt
-% plus 2\,pt minus 3\,pt.
-% \keyvalitem{letter-format}{f1}
-% The macro which formats new letter groups; the argument is the
-% heading for the group, as generated by \program{makeindex}. By
-% defaults it typesets the argument in boldface, centered on a
-% line.
-% \keyvalitem{pagestyle}{n}
-% If this is nonempty then the pagestyle by that name will be
-% selected for the index. By default it is empty.
-% \keyvalitem{parskip}{l}
-% The value of |\parskip| to use inside the index, by default
-% 0\,pt plus 1\,pt. This key value is likely to change as the
-% \LaTeXplus\ interfaces for galleys evolve.
-% \changes{v\,0.03}{2001/02/27}{Added \textit{parskip} keyval. (LH)}
-% \keyvalitem{page-compositor}{f0}
-% The text that is typeset to separate two parts of a composite
-% (page) number, by default a hyphen.
-% \changes{v\,1.00}{2001/04/05}{Added \textit{page-compositor}
-% keyval. (LH)}
-% \end{description}
-%
-% \begin{macrocode}
-%<*template>
-\DeclareTemplate{docindex}{std}{2}{
- file-name =n
-%<default> {\jobname}
- \DI@file@name,
- file-extension =n
-%<default> {ind}
- \DI@file@ext,
- item1 =i{indexitem}
-%<default> {fixed1}
- \DI@indexitem@i,
- item2 =i{indexitem}
-%<default> {fixed2}
- \DI@indexitem@ii,
- item3 =i{indexitem}
-%<default> {fixed3}
- \DI@indexitem@iii,
- reserved-height =L
-%<default> {80pt}
- \DI@reserved@height,
- columns =C
-%<default> {3}
- \DI@columns,
- column-sep =l
-%<default> {10pt}
- \columnsep,
- prologue-setup =f0
-%<default> {}
- \DI@prologue@setup,
- body-setup =f0
-%<default> {\small}
- \DI@body@setup,
- epilogue-setup =f0
-%<default> {\normalsize}
- \DI@epilogue@setup,
- letter-skip =L
-%<default> {10pt plus 2pt minus 3pt}
- \DI@letter@skip,
- letter-format =f1
-%<default> {\UseInstance{justification}{center}%
-%<default> \textbf{#1}\nopagebreak\csname par\endcsname}
- \DI@letter@format,
- pagestyle =n
-%<default> {}
- \DI@pagestyle,
- parskip =l
-%<default> {0pt plus 1pt}
- \parskip,
- page-compositor =f0
-%<default> {-}
- \+
-}{%
- \begingroup
-%<*!default>
- \def\DI@file@name{\jobname}%
- \def\DI@file@ext{ind}%
- \@letinstance\DI@indexitem@i{indexitem}{fixed1}%
- \@letinstance\DI@indexitem@ii{indexitem}{fixed2}%
- \@letinstance\DI@indexitem@iii{indexitem}{fixed3}%
- \def\DI@reserved@height{80pt}%
- \def\DI@columns{3}%
- \columnsep=10pt%
- \let\DI@prologue@setup\@empty
- \def\DI@body@setup{\small}%
- \def\DI@epilogue@setup{\normalsize}%
- \def\DI@letter@skip{10pt plus 2pt minus 3pt}%
- \def\DI@letter@format##1{%
- \UseInstance{justification}{center}%
- \textbf{##1}\nopagebreak\par
- }%
- \parskip=\z@\@plus\p@
- \let\DI@pagestyle\@empty
- \def\+{-}%
-%</!default>
- \DoParameterAssignments
- \IfFileExists{\DI@file@name.\DI@file@ext}{%
- \ifnum \DI@columns>\@ne
- \begin{multicols}{\DI@columns}%
- [\DI@prologue@setup #1][\DI@reserved@height]%
- \else
- \enough@room{\DI@reserved@height}%
- \DI@prologue@setup #1\par
- \addvspace\multicolsep
- \fi
- \ifx \DI@pagestyle\@empty \else \pagestyle{\DI@pagestyle}\fi
- \DI@body@setup
- \DI@ind@setup
- \input{\DI@file@name.\DI@file@ext}%
- \DI@item@nojoin
- \ifx \DI@pagestyle\@empty \else
- \expandafter\thispagestyle \expandafter{\DI@pagestyle}%
- \fi
- \ifnum \DI@columns>\@ne
- \end{multicols}%
- \else
- \enough@room\postmulticols
- \addvspace\multicolsep
- \fi
- \DI@epilogue@setup #2\par
- }{\typeout{No file \DI@file@name.\DI@file@ext.}}%
- \endgroup
-}
-% \end{macrocode}
-% \end{template}
-%
-%
-% \begin{instance}{docindex}{index}
-% \begin{option}{usedocindexps}
-% The \texttt{index} instance of the \texttt{docindex} template type
-% prints the normal index (as opposed to the list of changes). There
-% are two different definitions of the instance: one which sets the
-% pagestyle in the index, and one which does not; which one is used
-% depends on whether the \texttt{usedocindexps} option has been
-% passed to the package or not.
-% \begin{macrocode}
-\@ifpackagewith{docindex}{usedocindexps}{%
- \DeclareInstance{docindex}{index}{std}{pagestyle=docindex}%
-}{%
- \DeclareInstance{docindex}{index}{std}{}%
-}
-%</template>
-% \end{macrocode}
-%
-% The implementations of the \texttt{index} instance in
-% \package{docidx2e} are slightly off in that they use \package{doc}
-% parameters for various settings in the extent such parameters exist.
-% \changes{v\,0.03}{2001/02/24}{Added \cs{@nobreakfalse} in
-% \package{docidx2e} implementation; the first item in the index
-% does not directly follow a \cs{section}-type heading. (LH)}
-% \label{p:index-instance}
-% \begin{macrocode}
-%<*!template>
-\@ifpackagewith{docidx2e}{usedocindexps}{%
- \@namedef{TP@I{}{docindex}{index}}#1#2{%
- \begingroup
- \@letinstance\DI@indexitem@i{indexitem}{fixed1}%
- \@letinstance\DI@indexitem@ii{indexitem}{fixed2}%
- \@letinstance\DI@indexitem@iii{indexitem}{fixed3}%
- \columnsep=10pt%
- \parskip=0pt plus 1pt%
- \def\DI@letter@skip{10pt plus 2pt minus 3pt}%
- \def\DI@letter@format##1{%
- \par
- \hb@xt@\hsize{\hfil\textbf{##1}\hfil}%
- \nopagebreak
- }%
- \def\+{-}%
- \IfFileExists{\jobname.ind}{%
- \ifnum \c@IndexColumns>\@ne
- \begin{multicols}{\c@IndexColumns}[#1][\IndexMin]%
- \else
- \enough@room{\IndexMin}%
- #1\par
- \addvspace\multicolsep
- \fi
- \pagestyle{docindex}%
- \small
- \@nobreakfalse
- \DI@ind@setup
- \input{\jobname.ind}%
- \DI@item@nojoin
- \thispagestyle{docindex}
- \ifnum \c@IndexColumns>\@ne
- \end{multicols}%
- \else
- \enough@room\postmulticols
- \addvspace\multicolsep
- \fi
- \normalsize #2\par
- }{\typeout{No file \jobname.ind.}}%
- \endgroup
- }
-}{%
- \@namedef{TP@I{}{docindex}{index}}#1#2{%
- \begingroup
- \@letinstance\DI@indexitem@i{indexitem}{fixed1}%
- \@letinstance\DI@indexitem@ii{indexitem}{fixed2}%
- \@letinstance\DI@indexitem@iii{indexitem}{fixed3}%
- \columnsep=10pt%
- \parskip=0pt plus 1pt%
- \def\DI@letter@skip{10pt plus 2pt minus 3pt}%
- \def\DI@letter@format##1{%
- \par
- \hb@xt@\hsize{\hfil\textbf{##1}\hfil}%
- \nopagebreak
- }%
- \def\+{-}%
- \IfFileExists{\jobname.ind}{%
- \ifnum \c@IndexColumns>\@ne
- \begin{multicols}{\c@IndexColumns}[#1][\IndexMin]%
- \else
- \enough@room{\IndexMin}%
- #1\par
- \addvspace\multicolsep
- \fi
- \small
- \@nobreakfalse
- \DI@ind@setup
- \input{\jobname.ind}%
- \DI@item@nojoin
- \ifnum \c@IndexColumns>\@ne
- \end{multicols}%
- \else
- \enough@room\postmulticols
- \addvspace\multicolsep
- \fi
- \normalsize #2\par
- }{\typeout{No file \jobname.ind.}}%
- \endgroup
- }
-}
-%</!template>
-% \end{macrocode}
-% \end{option}\end{instance}
-%
-%
-% \begin{instance}{docindex}{changes}
-% The \texttt{changes} instance of the \texttt{docindex} template
-% type typesets a \package{doc} list of changes.
-% \changes{v\,0.03}{2001/02/24}{Added \cs{@nobreakfalse} in
-% \package{docidx2e} implementation; the first item in the index
-% does not directly follow a \cs{section}-type heading. (LH)}
-% \changes{v\,1.00}{2001/04/07}{Added \cs{makeatletter} in
-% \package{docidx2e} implementation; it doesn't hurt and it is
-% sometimes necessary (when commands that expand to private
-% control sequences are used in the argument of \cs{changes}).
-% (LH)}
-% \begin{macrocode}
-%<*template>
-\DeclareInstance{docindex}{changes}{std}{
- file-extension = gls,
- item2 = fixed-r2a-nocomma,
- item3 = fixed-a3r,
- columns = 2,
- letter-format = {},
- letter-skip = \z@skip
-}
-%</template>
-% \end{macrocode}
-% \label{p:changes-instance}
-% \begin{macrocode}
-%<*!template>
-\@namedef{TP@I{}{docindex}{changes}}#1#2{%
- \begingroup
- \@letinstance\DI@indexitem@i{indexitem}{fixed1}%
- \@letinstance\DI@indexitem@ii{indexitem}{fixed-r2a-nocomma}%
- \@letinstance\DI@indexitem@iii{indexitem}{fixed-a3r}%
- \columnsep=10pt%
- \parskip=0pt plus 1pt%
- \def\DI@letter@skip{\z@skip}%
- \let\DI@letter@format\@gobble
- \def\+{-}%
- \IfFileExists{\jobname.gls}{%
- \ifnum \c@GlossaryColumns>\@ne
- \begin{multicols}{\c@GlossaryColumns}[#1][\GlossaryMin]%
- \else
- \enough@room{\GlossaryMin}%
- #1\par
- \addvspace\multicolsep
- \fi
- \small
- \makeatletter
- \@nobreakfalse
- \DI@ind@setup
- \input{\jobname.gls}%
- \DI@item@nojoin
- \ifnum \c@GlossaryColumns>\@ne
- \end{multicols}%
- \else
- \enough@room\postmulticols
- \addvspace\multicolsep
- \fi
- \normalsize #2\par
- }{\typeout{No file \jobname.gls.}}
- \endgroup
-}
-%</!template>
-% \end{macrocode}
-% \end{instance}
-%
-% \begin{macro}{\PrintIndex}
-% \begin{macro}{\PrintChanges}
-% The |\PrintIndex| and |\PrintChanges| commands are redefined to use
-% the respective instances of template type \texttt{docindex}.
-% \begin{macrocode}
-\renewcommand\PrintIndex{%
- \UseInstance{docindex}{index}{\index@prologue}{}%
- \global\let\PrintIndex\@empty
-}
-\renewcommand\PrintChanges{%
- \UseInstance{docindex}{changes}{\glossary@prologue}{}%
- \global\let\PrintChanges\@empty
-}
-%</pkg>
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-%
-% \section{Notes and acknowledgements}
-%
-% The exact descriptions of the parameters of the \program{makeindex}
-% program is the paper \cite{makeindex-paper} by Chen and Harrison, but
-% I have seen claims that there are parameters not listed there
-% (presumably becuase they were added after this paper was written).
-% \texttt{docindex.ist} does not change any such undocumented
-% parameter, however.
-%
-% There are other index sorting programs than \package{makeindex}
-% around, such as for example \program{x\r{\i}ndy}~\cite{xindy}.
-% Should someone create index style files for such systems that are
-% equivalent (or superior, for that matter) to \texttt{docindex.ist}
-% then I would be happy to add them to the \package{docindex}
-% distribution.
-%
-% Most of the actual layout parameter settings used by the
-% \package{docindex} package are not of my design, but copied from
-% various other \LaTeX\ packages such as~\cite{multicol,doc} (mainly by
-% Frank Mittelbach). I have however tried to sort out which parameters
-% are actually in force under the various conditions---something which
-% turned out to be less obvious than I originally suspected.
-%
-% The idea to have the \texttt{docindex} type templates input the sorted
-% index file (rather than simply setting up the formatting of it as was
-% the case in v\,0.03) was taken from the \package{xindex}
-% package~\cite{xindex} by Achim Blumensath.
-%
-% \hbadness=10000
-%
-% \Finale
-%
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/source/fontinst/base/xdoc/docindex.ins b/Master/texmf-dist/source/fontinst/base/xdoc/docindex.ins
deleted file mode 100644
index d5d85cc6c32..00000000000
--- a/Master/texmf-dist/source/fontinst/base/xdoc/docindex.ins
+++ /dev/null
@@ -1,48 +0,0 @@
-% This file is the docstrip installation script for the docindex package.
-%
-% It may be distributed under the conditions of the LaTeX
-% Project Public License, either version 1.2 of this license or
-% (at your option) any later version. The latest version of this
-% license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.2 or later is part of all distributions of LaTeX
-% version 1999/12/01 or later.
-%
-% Copyright 2001 Lars Hellstr\"om
-
-\input docstrip
-
-\keepsilent
-
-\preamble
-
-This file may be distributed and/or modified under the conditions
-of the LaTeX Project Public License, either version 1.2 of this
-license or (at your option) any later version. The latest version
-of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.2 or later is part of all distributions of LaTeX
-version 1999/12/01 or later.
-
-This file may only be distributed together with a copy of the source
-file from which it was generated. You may distribute that source file
-without this generated file.
-
-\endpreamble
-
-\declarepostamble\noendinput
-\endpostamble
-
-\generate{%
- \usedir{tex/latex/misc}
- \file{docindex.sty}{\from{docindex.dtx}{pkg,template}}%
- \file{docidx2e.sty}{\from{docindex.dtx}{pkg}}%
- \usepostamble\noendinput
- \usedir{makeindex/latex}
- \file{docindex.ist}{\from{docindex.dtx}{ist}}%
-% \file{ngind.ist}{\from{docindex.dtx}{idx}}%
-% \file{ngglo.ist}{\from{docindex.dtx}{glo}}%
-}
-
-\endbatchfile
-\end
diff --git a/Master/texmf-dist/source/fontinst/base/xdoc/docindex.pdf b/Master/texmf-dist/source/fontinst/base/xdoc/docindex.pdf
deleted file mode 100644
index 0c3c9379563..00000000000
--- a/Master/texmf-dist/source/fontinst/base/xdoc/docindex.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/source/fontinst/base/xdoc/xdoc2.dtx b/Master/texmf-dist/source/fontinst/base/xdoc/xdoc2.dtx
deleted file mode 100644
index c0d4a22d3d1..00000000000
--- a/Master/texmf-dist/source/fontinst/base/xdoc/xdoc2.dtx
+++ /dev/null
@@ -1,5166 +0,0 @@
-% \CheckSum{2952}
-%
-% \iffalse meta-comment
-%
-% This file may be distributed and/or modified under the conditions
-% of the LaTeX Project Public License, either version 1.2 of this
-% license or (at your option) any later version. The latest version
-% of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.2 or later is part of all distributions of LaTeX
-% version 1999/12/01 or later.
-%
-% Copyright 2000 2001 2002 Lars Hellstr\"om
-%
-%<*driver>
-\documentclass{ltxdoc}
-\usepackage{array,longtable}
-
-\makeatletter
-\IfFileExists{xdoc2.sty}{%
- \usepackage[dolayout]{xdoc2}
- \NewMacroEnvironment{xrefcmd}{\XD@grab@harmless\relax}{1}%
- {\MacroFont##1 \normalfont XXR-command}%
- {\XDMainIndex{%
- \levelsorted{##1 (XXR-command)}{\texttt{##1} (XXR-command)}%
- }%
- \XDMainIndex{%
- \levelsame{XXR-commands:}\levelsorted{##1}{\texttt{##1}}%
- }}%
- {{##1}{XXR-command \texttt{##1}}}%
- {}%
- \@namedef{XD@harmless\string\Bslash}{%
- \toks@=\expandafter{\the\expandafter\expandafter\expandafter\toks@
- \csname XD@harmless@92\endcsname}%
- \XD@harmless@
- }%
- \IfFileExists{docidx2e.sty}{%
- \usepackage{docidx2e}%
- \AtEndDocument{%
- \typeout{*********************************}%
- \typeout{* Use docindex.ist when sorting *}%
- \typeout{* xdoc2.idx and xdoc2.glo. \@spaces\space*}%
- \typeout{*********************************}%
- }%
- }%
-}{%
- \newenvironment{option}[1]{\trivlist\item[]}{\endtrivlist}%
- \newenvironment{xrefcmd}[1]{\trivlist\item[]}{\endtrivlist}%
- \@ifpackagelater{doc}{2000/05/20}{}{%
- \let\XD@fragile@meta=\meta
- \def\meta{%
- \ifx \protect\@typeset@protect
- \expandafter\futurelet \expandafter\@let@token
- \expandafter\XD@fragile@meta
- \else
- \noexpand\meta
- \fi
- }%
- }%
-}
-\makeatother
-
-\providecommand\describecsfamily[1]{%
- \leavevmode
- \GenericDescribePrint{\MacroFont\Bslash#1}%
- \ignorespaces
-}
-\providecommand\describeoption[1]{%
- \leavevmode
- \GenericDescribePrint{\MacroFont#1 \normalfont option}%
- \ignorespaces
-}
-\providecommand\GenericDescribePrint[1]{%
- \marginpar{\raggedleft\strut #1}%
-}
-\providecommand\Bslash{\bslash}
-\providecommand\DoNotIndexBy[1]{}
-\DoNotIndexBy{@}
-\DoNotIndexBy{@@}
-\DoNotIndexBy{XD@}
-
-\DeclareRobustCommand\package[1]{\textsf{#1}}
-\DeclareRobustCommand\LaTeXplus{\LaTeXe$*$}
-\newcommand\B{\penalty\exhyphenpenalty}
-\ProvideTextCommandDefault\textminus{\textendash}
-
-\hfuzz=15pt
-
-\AlsoImplementation
-\setcounter{IndexColumns}{2}
-
-\CodelineIndex
-\EnableCrossrefs
-\RecordChanges
-
-\begin{document}
-
-\DocInput{xdoc2.dtx}
-
-\PrintChanges
-\PrintIndex
-
-\end{document}
-%</driver>
-% \fi
-%
-% \title{The \package{xdoc} package --- experimental reimplementations
-% of features from \package{doc}, second~prototype}
-% \author{Lars Hellstr\"om^^A
-% \thanks{E-mail: \texttt{Lars.Hellstrom@math.umu.se}}}
-% \date{2003/07/07}
-% \maketitle
-%
-% \DoNotIndex{\,,\-,\/,\ ,\#,\%,\&,\\,\^,\|}
-% \DoNotIndex{\@addtoreset,\@auxout,\@bsphack,\@cclv,\@ctrerr}
-% \DoNotIndex{\@eha,\@empty,\@esphack,\@evenfoot}
-% \DoNotIndex{\@firstofone,\@firstoftwo,\@for}
-% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo}
-% \DoNotIndex{\@ifclassloaded,\@ifdefinable,\@ifpackagewith,\@ifundefined}
-% \DoNotIndex{\@input,\@latexerr,\@mainaux,\@mparswitchtrue}
-% \DoNotIndex{\@namedef,\@nameuse,\@ne,\@next,\@nil,\@oddfoot,\@partaux}
-% \DoNotIndex{\@partlist,\@secondoftwo,\@sptoken}
-% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@totalleftmargin}
-% \DoNotIndex{\@typeset@protect,\@unexpandable@protect}
-% \DoNotIndex{\@vobeyspaces,\@writeckpt,\@xxxii}
-% \DoNotIndex{\active,\addto@hook,\addtolength,\advance,\AtBeginDocument}
-% \DoNotIndex{\baselineskip,\begingroup,\bgroup,\box,\boxmaxdepth}
-% \DoNotIndex{\catcode,\char,\clearpage,\closeout,\color@begingroup}
-% \DoNotIndex{\color@endgroup,\copy,\csname}
-% \DoNotIndex{\deadcycles,\DeclareOption,\DeclareRobustCommand,\def}
-% \DoNotIndex{\discretionary,\divide,\do@space,\dp}
-% \DoNotIndex{\edef,\egroup,\else,\em,\endcsname,\endgroup,\ensuremath}
-% \DoNotIndex{\escapechar,\everypar,\expandafter}
-% \DoNotIndex{\fi,\font,\footnotesize,\frenchspacing,\futurelet}
-% \DoNotIndex{\g@addto@macro,\gdef,\global}
-% \DoNotIndex{\hb@xt@,\hbox,\hfill,\hss,\ht,\hyphenchar}
-% \DoNotIndex{\if,\if@filesw,\if@inlabel,\if@mparswitch,\if@partsw}
-% \DoNotIndex{\if@reversemargin,\if@tempswa,\ifcase,\ifcat,\iffalse}
-% \DoNotIndex{\ifmmode,\ifnum,\ifodd,\iftrue,\ifx,\ignorespaces}
-% \DoNotIndex{\immediate,\include,\indexentry,\input,\inputlineno,\item}
-% \DoNotIndex{\itshape,\kern}
-% \DoNotIndex{\labelsep,\langle,\language,\leavevmode,\let,\long,\loop}
-% \DoNotIndex{\m@ne,\m@ta,\makelabel,\marginpar,\marginparsep,\maxdimen}
-% \DoNotIndex{\MessageBreak,\multiply}
-% \DoNotIndex{\NeedsTeXFormat,\newcommand,\newdimen,\newlanguage}
-% \DoNotIndex{\nfss@text,\noexpand,\normalfont,\normalmarginpar,\number}
-% \DoNotIndex{\obeyspaces,\openout,\or}
-% \DoNotIndex{\PackageError,\PackageInfo,\PackageWarning}
-% \DoNotIndex{\PackageWarningNoLine,\pagestyle,\paperwidth,\parbox,\part}
-% \DoNotIndex{\ProcessOptions,\protect,\protected@edef,\protected@write}
-% \DoNotIndex{\protected@xdef,\ProvidesPackage}
-% \DoNotIndex{\raggedleft,\raggedright,\rangle,\relax,\renewcommand}
-% \DoNotIndex{\repeat,\RequirePackage}
-% \DoNotIndex{\setbox,\setlength,\sixt@@n,\space,\string,\strut,\strutbox}
-% \DoNotIndex{\textasciicircum,\textasciitilde,\textbackslash,\textbar}
-% \DoNotIndex{\textbf,\textbraceleft,\textbraceright,\textdollar}
-% \DoNotIndex{\textgreater,\textless,\textquotedbl,\textquoteleft}
-% \DoNotIndex{\textquoteright,\texttt,\textunderscore,\textvisiblespace}
-% \DoNotIndex{\textwidth,\the,\topsep,\trivlist,\tw@}
-% \DoNotIndex{\uccode,\unhbox,\unrestored@protected@xdef,\unvbox}
-% \DoNotIndex{\uppercase}
-% \DoNotIndex{\vbox,\vss,\vtop,\write,\xdef,\z@}
-%
-% \changes{prot1}{2000/06/15}{Started writing first prototype. (LH)}
-% \changes{prot2}{2000/07/13}{Began work on the second prototype. (LH)}
-%
-% \begin{abstract}
-% The \package{xdoc} package contains reimplementations of some of
-% the features found in the standard \LaTeX\ \package{doc}
-% package~\cite{doc} by Mittelbach \emph{et~al. }The ultimate goals
-% for these reimplementations are that the commands should be better,
-% easily configurable, and be easy to extend, but this is only a
-% second prototype implementation and nothing in it is guaranteed to
-% be the same in the third prototype.\footnote{But there are no
-% guarantees there will ever be a third prototype either.}
-% \end{abstract}
-%
-% \tableofcontents
-%
-%
-% \section{Usage}
-%
-% When I began working on this package I thought that there would be no
-% need for a usage section (at least on the prototype stage)---either you
-% are interested in using the new features and then you might just as
-% well read the descriptions of the commands in the implementation part
-% of this document (they are written as specifications of what the
-% commands do), or else you can simply insert a |\usepackage|\B|{xdoc2}|
-% in the preamble and see how things work a little better than when you
-% simply use \package{doc}---but with some features it became natural
-% to introduce incompatible changes and some new features ought to be
-% mentioned. Hence I wrote a short section on usage after all.
-%
-% It is my intention that this document will eventually evolve into the
-% source for a package \package{xdoc}\footnote{The name \package{doc2}
-% has also been discussed; we'll see when we get there.} which will
-% either build on the \package{doc} package and provide better
-% implementations of many of its features, or replace it completely,
-% but this document is still only the source for a prototype for that
-% package. As I believe that the need for some improvement in this area
-% is rather large however, I have decided to release this prototype so
-% that other people can use it in their documents or create packages that
-% are based on it. In doing so, one must of course bear in mind that this
-% prototype needs not be compatible with the final \package{xdoc}
-% package, and to overcome most incompatibility problems I therefore
-% release it under the variant name \package{xdoc2}. This way, documents
-% based on this prototype can still be typeset using the package they
-% were written for long after the next \package{xdoc} prototype (or final
-% version) is released.
-%
-% Thus although this document frequently speaks of \package{xdoc}, you
-% might just as well read it as \package{xdoc2}.
-%
-%
-% \subsection{Changes to old features}
-%
-% Whereas \package{doc} more or less assumes that all pages have the
-% same layout, \package{xdoc} takes measures to ensure that the
-% \package{doc} features support two-sided document designs. If the
-% left margin has been widened to better accommodate long macro names
-% however (like for example the \package{ltxdoc} document class does),
-% then you may find that the outer margin on right (odd) pages is too
-% narrow for printing macro names in. The remedy for this is the
-% \GenericDescribePrint{\MacroFont dolayout \normalfont option}^^A
-% \SortIndex{dolayout}{\texttt{dolayout} option\encapchar
-% usage}\texttt{dolayout} option; in two-sided mode it causes
-% \package{xdoc} to recompute the |\oddsidemargin| so that the outer
-% margin has the same size on right pages as it previously did on left
-% pages. In documents which are not processed in two-sided mode the
-% \texttt{dolayout} option has no effect.
-%
-% |\DocInput| has been changed to not make percent a comment character
-% upon return unless it was before the |\DocInput|. This makes |\DocInput|
-% nestable and I recommend that \texttt{.dtx} files which input other
-% \texttt{.dtx} files use |\DocInput| for this.
-%
-% The |\DocInclude| command, which is defined by the \package{ltxdoc}
-% document class rather than \package{doc}, is also by default
-% redefined in an incompatible manner by \package{xdoc}, but you can
-% stop \package{xdoc} from making incompatible changes if you pass it the
-% option \GenericDescribePrint{\MacroFont olddocinclude \normalfont
-% option}\SortIndex{olddocinclude}{\texttt{olddocinclude} option^^A
-% \encapchar usage}\texttt{olddocinclude}. The main incompatibility
-% lies in that the default redefinition of |\DocInclude| behaves purely
-% as an |\include| command which |\DocInput|s a \texttt{.dtx} file rather
-% than merely |\input|ting a \texttt{.tex} file---you must pass the
-% \GenericDescribePrint{\MacroFont fileispart \normalfont option}^^A
-% \SortIndex{fileispart}{\texttt{fileispart} option\encapchar
-% usage}\texttt{fileispart} option to \package{xdoc} to get the |\part|
-% headings etc.\ for each new file---but there are also minor changes
-% in the appearance of these headings, in how page styles are set, and
-% in how the information presented in the page footer is obtained.
-%
-% Other changes are as far as I can tell minor and within the bounds of
-% expected behaviour, but code that relies on the implementation of some
-% feature in \package{doc} may of course behave differently or break
-% completely. Note in particular that the formats of the internal
-% \package{doc} variables |\saved@macroname|, |\macro@namepart|, and
-% |\index@excludelist| have changed completely (see
-% Section~\ref{Sec:Changes}, Subsection~\ref{Ssec:Scanning macrocode},
-% and Subsection~\ref{Ssec:Index-exclude} respectively)---hence any hack
-% involving one of these must be revised before it is used with
-% \package{xdoc}. These are however exceptions; in my experience the most
-% noticeable changes not listed above are that the index exclude
-% mechanism actually works for control sequences whose names consist of
-% a single non-letter and that symbols get sorted in a different order.
-%
-%
-% \subsection{Some notable new features}
-%
-% The main new feature is the \DescribeMacro\NewMacroEnvironment
-% |\NewMacroEnvironment| command, which defines a new \texttt{macro}-like
-% environment. The command offers complete control of the argument
-% structure, the formatting of the marginal heading, the code for making
-% index entries, and the change entry sorting and formatting, but the
-% syntax is too complex to explain here. Those who are interested in
-% using it should read Section~\ref{Sec:Macro-environments}. In
-% particular, Subsections~\ref{Ssec:Macro&environment}--^^A
-% \ref{Ssec:More macros} contain several examples of how it can be
-% used. In addition to using |\New|\-|Macro|\-|Environment| for
-% redefining the \DescribeEnv{macro}\texttt{macro} and
-% \DescribeEnv{environment}\texttt{environment} environments,
-% \package{xdoc} also defines an \DescribeEnv{option}\texttt{option}
-% environment (which is intended for document class and package
-% options) and a \DescribeEnv{switch}\texttt{switch} environment (which
-% is intended for switches defined using |\newif|; the argument should
-% not include the |\if|).
-%
-% There is also a companion command \DescribeMacro\NewDescribeCommand
-% |\NewDescribeCommand| which defines new commands similar to
-% |\Describe|\-|Macro| and |\Describe|\-|Env|. The syntax of
-% |\New|\-|Describe|\-|Command| is also too complex to explain here, so
-% I have to refer readers who want to use it to Section~^^A
-% \ref{Sec:Describing}. Two more commands which are defined in that
-% section are \DescribeMacro\describeoption|\describe|\-|option|, which
-% is the \texttt{describe}\dots\ companion of the \texttt{option}
-% environment, and \DescribeMacro\describecsfamily
-% |\describe|\-|cs|\-|family| which is meant for describing control
-% sequence families (see the table on page~\pageref{Tab:CS-families} for
-% examples of what I mean). The argument of this latter command is simply
-% the material you would put between |\csname| and |\endcsname|. Variant
-% parts are written as |\meta|\B\marg{text} and print as one would expect
-% them to (but notice that the \meta{text} is a moving argument) whereas
-% most other characters can be written verbatim without any special
-% quoting (but |\|, |{|, |}|, and |%| need quoting; see the comments to
-% the definition of |\describe|\-|cs|\-|family| for information on how
-% to do that).
-%
-% The \DescribeMacro\DoNotIndexBy|\DoNotIndexBy| command tells the
-% commands that make index entries for macros to ignore a certain
-% character sequence when the index entries are sorted. The
-% |\DoNotIndexBy| command takes one argument: the character sequence to
-% ignore. If |\DoNotIndexBy| is used more than once then the indexing
-% commands will look for, and if it finds it ignore, each of the
-% character sequences given to it, starting with the one specified last.
-%
-% It has already been mentioned that the |\DocInclude| command has been
-% changed. What has not been mentioned is its companion
-% \DescribeMacro\setfileinfo|\setfileinfo|,
-% which the partfiles should use for setting the date and version
-% information presented in the page footer, but that is explained in
-% detail in Subsection~\ref{Ssec:New DocInclude}.
-%
-% Finally there is a new variant of the |\changes| command which is
-% intended for changes that, although not limited to a single macro and
-% thus being ``general'' changes in the \package{doc} terminology, affect
-% only a few (probably widely dispersed) macros (or whatever). The basic
-% idea is that you can define a change with a specific version, date,
-% and text using the \DescribeMacro{\definechange}|\definechange| command
-% and then recall those parameters later using the
-% \DescribeMacro{\usechange}|\usechange| command. Primarily this ensures
-% that the entry texts are identical so that \package{makeindex} will
-% combine them into one entry, but it is also specified which macro
-% was changed at which page. See Section~\ref{Sec:Changes} for more
-% details. Another new feature concerning |\changes| is that there is
-% now support for sorting version numbers according to mathematical
-% order rather than ASCII order. Traditionally the version numbers
-% \texttt{2}, \texttt{11}, and \texttt{100} would have been sorted so
-% that \texttt{100}${}<{}$\texttt{11}${}<{}$\texttt{2}, but if they are
-% entered as \DescribeMacro{\uintver}|\uintver{2}|, |\uintver{11}|, and
-% |\uintver{100}| then they will be sorted as
-% \texttt{2}${}<{}$\texttt{11}${}<{}$\texttt{100}. The argument of
-% |\uintver| must be a \TeX\ \meta{number}.
-%
-% \medskip
-%
-% \package{xdoc} also contains several features which are of little use
-% as direct user commands, but which can simplify the definitions of other
-% commands. The foremost of these are the `harmless character strings',
-% which can be seen as a datatype for (short pieces of) verbatim text.
-% \TeX\ typesets a harmless character string in pretty much the same way
-% as the corresponding string of `other' tokens, but the harmless
-% character string can also be written to file and read back arbitrarily
-% many times without getting garbled, it doesn't make \package{makeindex}
-% choke, and it survives being fed to a |\protected@edef|. The most
-% important commands related to harmless character strings are
-% \DescribeMacro\PrintChar|\PrintChar|, which is used for representing
-% problematic characters, and \DescribeMacro\MakeHarmless|\MakeHarmless|,
-% which converts arbitrary \TeX\ code to the corresponding harmless
-% character string.
-%
-% The superfluity of indexing commands in \package{doc} has been
-% replaced by the single command \DescribeMacro\IndexEntry|\IndexEntry|,
-% which has been designed with the intention that it should provide a
-% clear interface between the user level macros and the index sorting
-% program. It takes three arguments: the index entry specification, the
-% name of the encapsulation scheme that should be used, and the number to
-% put in the index. The index entry specification is a sequence of
-% |\LevelSame| and\slash or |\LevelSorted| commands, which have the
-% respective syntaxes
-% \begin{quote}
-% \DescribeMacro\LevelSame|\LevelSame|\marg{text}\\
-% \DescribeMacro\LevelSorted|\LevelSorted|\marg{sort key}\marg{text}
-% \end{quote}
-% Each such command specifies one level of the index entry. In the case of
-% |\LevelSorted|, the \meta{text} is what will be written in the sorted
-% index at that level and \meta{sort key} is what the index-sorting
-% program should look at when sorting the entry (at that level). In the
-% case of |\LevelSame|, the \meta{text} is used both as sort key and
-% contents of entry in the sorted index. The first command is for the
-% topmost level and each subsequent command is for the next sublevel.
-% The complete description appears in Subsection~\ref{Ssec:IndexEntry}.
-%
-% \package{xdoc} also contains support for external cross-referencing
-% programs (see Subsection~\ref{Ssec:XXR} for details) and a system for
-% determining whether a piece of text falls on an even or an odd page
-% (see Section~\ref{Sec:Twoside} for details). I expect that the latter
-% system will eventually migrate out of \package{xdoc}, either to a
-% package of its own, or into oblivion because the \LaTeXplus\ output
-% routine makes it obsolete.
-%
-%
-% \subsection{The \package{docindex} package}
-%
-% As of prototype version 2.2, the \package{xdoc} package has a companion
-% package \package{docindex}~\cite{docindex} which provides improved
-% formatting of the index and list of changes. \package{xdoc} works fine
-% without \package{docindex}, however.
-%
-%
-% \subsection{A note on command names}
-%
-% The \package{doc} package defines several commands with mixed-case
-% names which (IMHO) should really have all-lower-case names (according
-% to the rule of thumb spelled out in \cite[Ssec.~2.4]{clsguide}) since
-% people use them in the capacity of being the author of a \texttt{.dtx}
-% file rather than in the capacity of being the writer of a class or
-% package. The names in question are
-% \begin{longtable}{ll}
-% \textbf{Name in \package{doc}}& \textbf{Better (?) name}\endhead
-% \cs{AlsoImplementation}& \cs{alsoimplementation}\\
-% \cs{CharacterTable}& \cs{charactertable}\\
-% \cs{CharTableChanges}& \cs{chartablechanges}\\
-% \cs{CheckModules}& \cs{checkmodules}\\
-% \cs{CheckSum}& \cs{checksum}\\
-% \cs{CodelineIndex}& \cs{codelineindex}\\
-% \texttt{CodelineNo} (counter)& \texttt{codelineno}\\
-% \cs{CodelineNumbered}& \cs{codelinenumbered}\\
-% \cs{DeleteShortVerb}& \cs{deleteshortverb}\\
-% \cs{DescribeEnv}& \cs{describeenv}\\
-% \cs{DescribeMacro}& \cs{describemacro}\\
-% \cs{DisableCrossrefs}& \cs{disablecrossrefs}\\
-% \cs{DocInput}& \cs{docinput}\\
-% \cs{DoNotIndex}& \cs{donotindex}\\
-% \cs{DontCheckModules}& \cs{dontcheckmodules}\\
-% \cs{EnableCrossrefs}& \cs{enablecrossrefs}\\
-% \cs{Finale}& \cs{finale}\\
-% \texttt{GlossaryColumns} (counter)& \texttt{glossarycolumns}\\
-% \cs{GlossaryPrologue}& \cs{glossaryprologue}\\
-% \texttt{IndexColumns} (counter)& \texttt{indexcolumns}\\
-% \cs{IndexInput}& \cs{indexinput}\\
-% \cs{IndexPrologue}& \cs{indexprologue}\\
-% \cs{MakePrivateLetters}& \cs{makeprivateletters}\\
-% \cs{MakeShortVerb}& \cs{makeshortverb}\\
-% \cs{OnlyDescription}& \cs{onlydescription}\\
-% \cs{PageIndex}& \cs{pageindex}\\
-% \cs{PrintChanges}& \cs{printchanges}\\
-% \cs{PrintIndex}& \cs{printindex}\\
-% \cs{RecordChanges}& \cs{recordchanges}\\
-% \cs{SortIndex}& \cs{sortindex}\\
-% \cs{SpecialEscapechar}& \cs{specialescapechar}\\
-% \texttt{StandardModuleDepth} (counter)& \texttt{standardmoduledepth}\\
-% \cs{StopEventually}& \cs{stopeventually}
-% \end{longtable}
-% \noindent With the exception for \texttt{CodelineNo},\footnote{Where I
-% recommend using \texttt{codelineno} instead of \texttt{CodelineNo},
-% \cs{PrintCodelineNo} instead of \cs{theCodelineNo}, and
-% \cs{thecodelineno} instead of \cs{number}\cs{c@CodelineNo}; see
-% Subsection~\ref{Ssec:CodelineNo}.} I haven't changed any of the
-% \package{doc} names in this \package{xdoc} prototype, nor introduced any
-% of the ``better names'' as alternatives, but I think the matter should
-% be given a bit of thought during the future development of
-% \package{doc}\slash \package{xdoc}.
-%
-% For completeness, I should also remark that there are several macros
-% that \package{doc} gives mixed-case names which I haven't listed above.
-% The logo command names have special capitalizing rules by tradition.
-% Some macros and named registers---for example |\Docstyle|\-|Parms|,
-% |\Index|\-|Parms|, |\Macro|\-|Font|, |\Macro|\-|Topsep|,
-% |\Make|\-|Percent|\-|Ignore|, and |\Print|\-|Macro|\-|Name|---are part
-% of the package or document class writer's interface to \package{doc},
-% although I cannot claim it to be obvious that for example
-% |\Index|\-|Parms| and the \texttt{IndexColumns} counter should belong
-% to different classes here (but several of these control sequences will
-% probably disappear from the interface in \LaTeXplus\ anyway, so the
-% problem isn't that important). The |\Special|\dots\B|Index| commands
-% (and their even more special variants, such as
-% |\Left|\-|Brace|\-|Index|) are internal commands rather than user level
-% commands. Finally there is the |\Get|\-|File|\-|Info| command, which I
-% doubt there is any point in having.
-%
-%
-% \StopEventually{}
-%
-%
-% \subsection{\package{docstrip} modules}
-%
-% The \package{docstrip} modules in \texttt{xdoc2.dtx} are:
-% \begin{description}
-% \item[\textsf{pkg}]
-% This module directive surrounds the code for the \package{xdoc}
-% package.
-% \item[\textsf{driver}]
-% The driver.
-% \item[\textsf{internals}]
-% This module contains an alternative replacement text for the
-% |\Print|\-|Visible|\-|Char| command that uses ``\LaTeX\ internal
-% character representation'' (i.e., as much as possible
-% encoding-specific commands---|\text|\textellipsis\ commands and
-% the like) rather than the primitive |\char| command for
-% typesetting visible characters.
-% It is provided as a separate module mainly for compability with
-% prototype version~2.0, as this alternative definition can (as of
-% prot.\,2.1) be chosen by passing the option
-% \describeoption{notrawchar}\texttt{notrawchar} to \package{xdoc}.
-% \item[\textsf{economical}]
-% There is little point in storing the harmless representations of
-% the 161 non-visible-ASCII characters as these representations are
-% always the same and can be formed on the fly whenever they are
-% needed. The \textsf{economical} modules contain some alternative
-% code which makes use of this fact to reduce the number of control
-% sequences used for storing the table of harmless representations.
-% The \Module{economical} module appears inside the \Module{pkg}
-% module.
-% \item[\textsf{xdoc2}]
-% This module contains code for compability with previous releases
-% of \package{xdoc2}. It will not be included in \package{xdoc3}
-% or \package{xdoc} (whichever is the next major version).
-% \item[\textsf{enccmds}]
-% This module contains the code for defining two \texttt{macro}-like
-% environments for encoding-specific commands. These are not included
-% in the \package{xdoc} package since so few \texttt{.dtx} files
-% define encoding-specific commands.
-% \item[\textsf{rsrccmd}]
-% Similar to the \textsf{enccmds} module, but demonstrates the
-% |\New|\-|Describe|\-|Command| command instead.
-% \item[\textsf{example}]
-% This surrounds some code which to \package{docstrip} looks like it
-% should be copied, but isn't meant to.
-% \end{description}
-%
-%
-%
-% \section{Initial stuff}
-%
-% First there's the usual |\NeedsTeXFormat| and |\ProvidesPackage|.
-% \begin{macrocode}
-%<*pkg>
-\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{xdoc2}[2003/07/06 prot2.5 doc reimplementation package]
-% \end{macrocode}
-%
-% \subsection*{Options}
-%
-% The first option has to do with the page layout.
-% Although \package{doc} itself doesn't modify any of the main layout
-% parameters, it is well known that using it does tend to restrict
-% one's choices in terms of document layout. In particular the
-% \texttt{macro} and \texttt{environment} environments require a rather
-% large left margin since they will otherwise print long macro names
-% partially outside the paper. It is furthermore hard to decrease the
-% |\textwidth| as it should be wide enough to contain about 70 columns of
-% |\MacroFont| text. Thus the only solution is to do as the
-% \package{ltxdoc}~\cite{ltxdoc} document class and enlarge the left
-% margin at the expense of the right.
-%
-% The resulting layout has a left--right asymmetry with the main galley
-% (the text rectangle) on the right and a very wide left margin (in
-% which marginal headings and marginal notes appears). Although this
-% layout is not uncommon in technical manuals, it is inappropriate for
-% two-sided designs since the vertical line at which the two pages of a
-% spread meet becomes the natural vertical symmetry axis for the entire
-% spread and it breaks this symmetry to let the left margin be the
-% widest on all pages. It would look better to always let the outer
-% margin be the largest.
-%
-% \begin{option}{dolayout}
-% \begin{macro}{\oddsidemargin}
-% The \texttt{dolayout} option modifies |\oddsidemargin| so that
-% spreads are symmetric around the center in two-sided mode. As size
-% of the outer margin is taken the size of the left margin on left
-% (even) pages, i.e., |\evensidemargin|${}+1\,\mathrm{in}$.
-%
-% In one-sided mode, the \texttt{dolayout} option does nothing.
-% \begin{macrocode}
-\DeclareOption{dolayout}{%
- \if@twoside
- \setlength\oddsidemargin{\paperwidth}
- \addtolength\oddsidemargin{-\textwidth}
- \addtolength\oddsidemargin{-\evensidemargin}
- \addtolength\oddsidemargin{-2in}
- \fi
-}
-% \end{macrocode}
-% \end{macro}\end{option}
-%
-% \begin{option}{olddocinclude}
-% \begin{option}{fileispart}
-% The \texttt{olddocinclude} and \texttt{fileispart} options are
-% related to the |\DocInclude| command defined by the \package{ltxdoc}
-% document class. Some of the code related to that command relies on
-% modifying the \package{doc} internal macro |\codeline@wrindex|, but
-% that has no effect with \package{xdoc} so in order to get the
-% expected results one has to reimplement the |\DocInclude| command as
-% well. The \texttt{olddocinclude} and \texttt{fileispart} options
-% control how this should be done.
-%
-% If the \texttt{olddocinclude} option is passed to \package{xdoc}
-% then only the parts of the implementation of |\DocInclude| which
-% must be altered to make the command work with the \package{xdoc}
-% implementation of indexing and cross-referencing are changed. These
-% redefinitions will furthermore only be made if the \package{ltxdoc}
-% document class has been loaded; nothing is done if the
-% \texttt{olddocinclude} option is passed and \package{ltxdoc} hasn't
-% been loaded. Passing the \texttt{olddocinclude} option can be
-% considered as requesting a ``compatibility mode'' for |\DocInclude|.
-%
-% If the \texttt{olddocinclude} option is not passed then the
-% |\DocInclude| command is reimplemented from scratch, regardless of
-% whether some definition of it has already been given or not. The
-% basis of this reimplementation is the observation that the
-% |\DocInclude| command of \package{ltxdoc} really does two quite
-% distinct things at once---it is an |\include| command which
-% |\DocInput|s files rather than |\input|ting them, but it also starts
-% a new |\part|, sets the pagestyle, and changes how the values of
-% some counters are typeset. This latter function is by default
-% disabled in the \package{xdoc} implementation of |\DocInclude|, but
-% passing the \texttt{fileispart} option enables it.
-%
-% There is no code for these two options here, as it is rather long;
-% instead that code appears in Section~\ref{Sec:DocInclude}. The
-% |\Pass|\-|Options|\-|To|\-|Package| commands make sure that these
-% options are registered as local options for \package{xdoc}, so that
-% one can test for them using |\@if|\-|package|\-|with| below.
-% \begin{macrocode}
-\DeclareOption{olddocinclude}{%
- \PassOptionsToPackage{\CurrentOption}{xdoc2}%
-}
-\DeclareOption{fileispart}{%
- \PassOptionsToPackage{\CurrentOption}{xdoc2}%
-}
-% \end{macrocode}
-% \end{option}\end{option}
-%
-% \changes{prot2.5}{2003/07/06}{Reregeristing options in case
-% they were global. (LH)}
-%
-% \begin{option}{notrawchar}
-% The \texttt{notrawchar} option controls how the |\PrintVisibleChar|
-% command is defined, and thereby what method is used for typesetting
-% visible characters in e.g.\ macro names. The default is to use the
-% |\char| primitive (which is better for \texttt{T1}-encoded fonts and
-% non-italic \texttt{OT1}-encoded typewriter fonts), but the
-% \texttt{notrawchar} option causes things to go via the ``\LaTeX\
-% internal character representation'' instead (which is necessary
-% for e.g.\ \texttt{OT1}-encoded non-typewriter fonts).
-%
-% There is no code for this option here; instead that code is found
-% in the definition of |\Print|\-|Visible|\-|Char|.
-% \begin{macrocode}
-\DeclareOption{notrawchar}{%
- \PassOptionsToPackage{\CurrentOption}{xdoc2}%
-}
-% \end{macrocode}
-% \end{option}
-%
-%
-% Then options are processed.
-% \begin{macrocode}
-\ProcessOptions\relax
-% \end{macrocode}
-% And finally the \package{doc} package is loaded.
-% \begin{macrocode}
-\RequirePackage{doc}
-% \end{macrocode}
-%
-%
-% \section{Character strings}
-%
-% A source of much of the complexity in \package{doc} is that it has to
-% be able to deal with rather arbitrary strings of characters (mainly
-% the names of control sequences). Once the initial problems with
-% characters having troublesome catcodes have been overcome however, it
-% is usually no problem to manage such things in \TeX. \package{doc}
-% does however complicate things considerably by also putting these
-% things in the index and list of changes. Not only must they then be
-% formatted so that the \package{makeindex} program doesn't choke on
-% them, but they must also be wrapped up in code that allows \TeX\ to
-% make sense of them when they are read back. \package{doc} manages the
-% \package{makeindex} problems mainly by allowing the user to change what
-% characters are used as \package{makeindex} metacharacters and the
-% reading back problem by making abundant use of |\verb|.
-%
-% All this relies on that the author of a document is making sure that
-% the metacharacters aren't used for anything else. If for example the
-% |\verbatimchar| (by default |+|) is one of the ``private letters''
-% then names of control sequences containing that character will be
-% typeset incorrectly because the |\verb| used to typeset it is
-% terminated prematurely---control sequence names such as `|\lost+found|'
-% will be typeset as `|\lost|found+'. On top of that, one also has to
-% make sure that the font used for typesetting these |\verb| sections
-% contains all the characters needed.
-%
-% For \package{xdoc}, I have chosen a completely different approach.
-% Instead of allowing the strings (after they have converted to the
-% internal format) to contain \TeX\ character tokens with arbitrary
-% character codes, they may only contain \TeX\ character tokens which
-% are unproblematic---the normal catcode should be 11 (letter) or 12
-% (other), they should not be outside visible ASCII, and they may not
-% be one of the \package{makeindex} metacharacters. All other characters
-% are represented using a robust command which takes the character code
-% (in decimal) as the argument. This takes care of all ``moving
-% argument'' type problems that may occur.
-%
-% An important observation about these character strings is that
-% they are strings of \emph{input} characters. This means that rather
-% than using the characters in some special font for typesetting
-% control sequences like |\^^M| (recall that the |^^| substitutions
-% take place before tokenization), one should typeset them using only
-% visible ASCII characters. (After all, that's the only way they are
-% written in \TeX\ code.) The default definition is to typeset
-% invisible characters as precisely the |^^|-sequences that \TeX\
-% normally uses for these characters when they are written to a file.
-%
-%
-% \subsection{Typesetting problematic characters}
-%
-% \begin{macro}{\PrintChar}
-% \begin{macro}{\XD@threedignum}
-% The |\PrintChar| command has the syntax
-% \begin{quote}
-% |\PrintChar|\marg{8-bit number}
-% \end{quote}
-% where \meta{8-bit number} is a \TeX\ number in the range 0--255.
-% For arguments in the range 0--31, |\PrintChar| prints
-% `\textit{\ttfamily\string^\string^@}'--`\textit{\ttfamily
-% \string^\string^\string_}'. For an argument in the range 32--126,
-% |\PrintChar| calls |\Print|\-|Visible|\-|Char| which by default
-% simply does |\char| on that argument (but which can be redefined
-% if the font set-up requires it); in particular, |\PrintChar{32}|
-% should print a ``visible space'' character. |\PrintChar{127}| prints
-% `\textit{\ttfamily\string^\string^?}'. For arguments in the range
-% 128--255, |\PrintChar| prints
-% `\textit{\ttfamily\string^\string^80}'--`\textit{\ttfamily
-% \string^\string^ff}'.
-%
-% |\PrintChar| is robust. |\PrintChar| also has a special behaviour
-% when it is written to a file (when |\protect| is |\noexpand|): it
-% makes sure that the argument consists of three decimal digits, to
-% ensure external sorting gets it right.
-% \begin{macrocode}
-\@ifundefined{PrintChar}{}{%
- \PackageInfo{xdoc2}{Redefining \protect\PrintChar}%
-}
-\def\PrintChar{%
- \ifx \protect\@typeset@protect
- \expandafter\XD@PrintChar
- \else\ifx \protect\noexpand
- \string\PrintChar
- \expandafter\expandafter \expandafter\XD@threedignum
- \else
- \noexpand\PrintChar
- \fi\fi
-}
-% \end{macrocode}
-%
-% |\XD@threedignum| does a |\number| on its argument, possibly prepends
-% a |0| or two, and wraps it all up in a ``group'' (the braces have
-% category other, not beginning and end of group).
-% \changes{prot2.1}{2000/11/15}{Braces inserted by
-% \cs{XD@threedignum} are given catcode other. (LH)}
-% \begin{macrocode}
-\edef\XD@threedignum#1{%
- \string{%
- \noexpand\ifnum #1<100 %
- \noexpand\ifnum #1<10 0\noexpand\fi
- 0%
- \noexpand\fi
- \noexpand\number#1%
- \string}%
-}
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% \begin{macro}{\XD@PrintChar}
-% \begin{macro}{\InvisibleCharPrefix}
-% \begin{macro}{\InvisibleCharSuffix}
-% |\XD@PrintChar| manages the typesetting for |\PrintChar|. It
-% distinguishes between visible characters (code 32--126) and
-% invisible characters. The visible characters are typeset directly
-% using |\PrintVisibleChar|, whereas the invisible characters are
-% typeset as |^^|-sequences.
-%
-% The macros |\InvisibleCharPrefix| and |\InvisibleCharSuffix| begin
-% and end a |^^|-sequence. |\InvisibleCharPrefix| should print the
-% actual |^^|, but it may also for example select a new font for
-% the |^^|-sequence (such font changes are restored at the end of
-% |\XD@PrintChar|).
-% \begin{macrocode}
-\def\XD@PrintChar#1{%
- \leavevmode
- \begingroup
- \count@=#1\relax
- \ifnum \@xxxii>\count@
- \advance \count@ 64%
- \InvisibleCharPrefix
- \PrintVisibleChar\count@
- \InvisibleCharSuffix
- \else\ifnum 127>\count@
- \PrintVisibleChar\count@
- \else
- \InvisibleCharPrefix
- \ifnum 127=\count@ \PrintVisibleChar{63}\else
- \@tempcnta=\count@
- \divide \count@ \sixt@@n
- \@tempcntb=\count@
- \multiply \count@ \sixt@@n
- \advance \@tempcnta -\count@
- \advance \@tempcntb \ifnum 9<\@tempcntb 87\else 48\fi
- \advance \@tempcnta \ifnum 9<\@tempcnta 87\else 48\fi
- \char\@tempcntb \char\@tempcnta
- \fi
- \InvisibleCharSuffix
- \fi\fi
- \endgroup
-}
-% \end{macrocode}
-% \begin{macrocode}
-\newcommand\InvisibleCharPrefix{%
- \/\em
- \PrintVisibleChar{`\^}\PrintVisibleChar{`\^}%
-}
-\newcommand\InvisibleCharSuffix{\/}
-% \end{macrocode}
-% There are some alternative methods for making hexadecimal numbers
-% which should perhaps be mentioned. The \LaTeX\ kernel contains a
-% macro |\hexnumber@| which uses |\ifcase| to produce one hexadecimal
-% digit, but that uses upper case letters, and things like `8E' look
-% extremely silly if the upper case letters doesn't line with the
-% digits. Applying |\meaning| to a \meta{chardef token} or
-% \meta{mathchardef token} expands to |\char"|\meta{hex} and
-% |\mathchar"|\meta{hex} respectively, where \meta{hex} is the
-% corresponding number in hexadecimal, but that too has upper case A--F
-% and leading zeros are removed.
-% \end{macro}\end{macro}\end{macro}
-%
-% \begin{macro}{\PrintVisibleChar}
-% \changes{prot2.1}{2000/12/18}{Made it possible to select the
-% alternative defintion of \cs{PrintVisibleChar} through an
-% \package{xdoc} package option. (LH)}
-% The |\PrintVisibleChar| command should print the visible ASCII
-% character whose character code is given in the argument. There are
-% currently two definitions of this command: one which uses the \TeX\
-% primitive |\char| and one which goes via the ``\LaTeX\ internal
-% character representation'' for the character. By default
-% \package{xdoc} uses the former definition, but if \package{xdoc}
-% is passed the
-% \SortIndex{notrawchar}{\texttt{notrawchar} option\encapchar usage}
-% \texttt{notrawchar} option then it will use the latter.
-%
-% The reason there are two definitions is a deficiency in how the NFSS
-% encoding attribute has been assigned to fonts; even though the
-% encodings of Computer Modern Roman and Computer Modern Typewriter
-% are quite different, \LaTeXe\ uses the \texttt{OT1} encoding for
-% both. As a result of this, the \LaTeX\ internal representation will
-% in some important cases use characters from non-typewriter fonts
-% despite the fact that typewriter forms are immediately available.
-% Since the cases in which the |\char| primitive produces results as
-% least as good as those made through the \LaTeX\ internal
-% character representation includes those that the current font is
-% \texttt{T1}-encoded or an \texttt{OT1}-encoded nonitalic typewriter
-% font, the shorter |\char| primitive defintion has been made the
-% default.
-%
-% For compability with prototype version~2.0 of \package{xdoc}, the
-% replacement text for |\Print|\-|Visible|\-|Char| that uses \LaTeX\
-% internal character representation can alternatively be extracted by
-% \package{docstrip}ping \texttt{xdoc2.dtx} with the option
-% \Module{internals}.
-% \begin{macrocode}
-\@ifpackagewith{xdoc2}{notrawchar}{%
- \newcommand\PrintVisibleChar[1]{%
-%</pkg>
-%<*pkg|internals>
- \ifcase #1%
- \or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or
- \or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or
- % "20
- \textvisiblespace \or!\or\textquotedbl \or\#\or\textdollar
- \or\%\or\&\or\textquoteright\or(\or)\or*\or+\or,\or-\or.\or/%
- \or % "30
- 0\or1\or2\or3\or4\or5\or6\or7\or8\or9\or:\or;\or
- \textless\or=\or\textgreater\or?%
- \or % "40
- @\or A\or B\or C\or D\or E\or F\or G\or
- H\or I\or J\or K\or L\or M\or N\or O%
- \or % "50
- P\or Q\or R\or S\or T\or U\or V\or W\or X\or Y\or Z\or [\or
- \textbackslash \or]\or\textasciicircum \or\textunderscore
- \or % "60
- \textquoteleft \or a\or b\or c\or d\or e\or f\or g\or h\or
- i\or j\or k\or l\or m\or n\or o%
- \or % "70
- p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\or
- \textbraceleft \or\textbar \or\textbraceright \or
- \textasciitilde
- \fi
- }%
-%</pkg|internals>
-%<*pkg>
-}{%
- \newcommand\PrintVisibleChar[1]{\char #1\relax}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\Bslash}
-% It turns out that it is very common to say |\PrintChar{92}|
-% (backslash), so a macro which expands to that reduces typing.
-% \begin{macrocode}
-\newcommand\Bslash{\PrintChar{92}}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{Rendering character strings harmless}
-%
-% Replacing all problematic characters with |\PrintChar| calls certainly
-% makes the strings easier to manage, but actually making those
-% replacements is a rather complicated task. Therefore this subsection
-% contains the macros necessary for doing these replacements.
-%
-% The first problem is how to efficiently recognise the problematic
-% characters. A first solution which gets rather far is to mainly look
-% in the |\catcode| register for that character and keep the character
-% as it is if the category found there is 11 or 12, but replace it with
-% a |\PrintChar| command if the category is anything else. Two extra
-% tests can be performed to take care of invisible ASCII, and the
-% \package{makeindex} metacharacters can be cared for by locally
-% changing their catcodes for when the string is processed.
-% Unfortunately this doesn't work inside \texttt{macrocode}
-% environments (where one would like to use it for the macro
-% cross-referencing) since that environment changes the catcodes of
-% several characters from being problematic to being unproblematic and
-% vice versa.\footnote{As the entire \texttt{macrocode} environment is
-% tokenized by the expansion of \cs{xmacro@code} one could alternatively
-% solve this problem by reimplementing the \texttt{macrocode}
-% environment so that normal catcodes are in force when the contents are
-% being typeset.} As furthermore harmless character strings should be
-% possible to move to completely different parts of the document, the
-% test used for determining whether a character is problematic should
-% yield the same result throughout the document.
-%
-% Because of this, I have chosen a brute strength solution: build a
-% table (indexed by character code) that gives the harmless form of
-% every character. This table is stored in the
-% \describecsfamily{XD@harmless@\meta{code}}^^A
-% |\XD@harmless@|\meta{code} family of control sequences, where the
-% \meta{code} is in the range |0|--|255|. Assignments to this table are
-% global. In principle, the table should not change after the preamble,
-% but there is a command |\SetHarmState| which can be used at any time
-% for setting a single table entry. This could be useful for documents
-% which, like for example~\cite{fontinst}, have nonstandard settings of
-% |\catcode|s.
-%
-% \begin{macro}{\SetHarmState}
-% The |\SetHarmState| command takes three arguments:
-% \begin{quote}
-% |\SetHarmState|\marg{type}\marg{char}\marg{harm}
-% \end{quote}
-% \meta{char} is the character whose entry should be set. \meta{type}
-% is a flag which specifies what format \meta{char} is given in. If
-% \meta{type} is |\BooleanTrue| then \meta{char} is the \TeX\
-% \meta{number} of the table entry to set, and if \meta{type} is
-% |\BooleanFalse| then \meta{char} is something which expands to a
-% single character token whose entry should be set. The expansion is
-% carried out by an |\edef|, so it needs not be only one level.
-% \meta{harm} is |\BooleanTrue| if the character is problematic and
-% |\BooleanFalse| if it is not.
-%
-% The \meta{type} and \meta{harm} arguments are currently not subject
-% to any expansion. In the future they probably should be, but I
-% don't want to make assumptions about the actual definitions of
-% |\BooleanTrue| and |\BooleanFalse| at this point.
-% \begin{macrocode}
-\begingroup
- \catcode\z@=12
- \@ifdefinable\SetHarmState{
- \gdef\SetHarmState#1#2#3{%
- \begingroup
- \ifx #1\BooleanTrue
- \count@=#2\relax
- \else
- \protected@edef\@tempa{#2}%
- \count@=\expandafter`\@tempa\relax
- \fi
- \ifx #3\BooleanTrue
- \edef\@tempa{\noexpand\PrintChar{\the\count@}}%
- \else
- \uccode\z@=\count@
- \uppercase{\def\@tempa{^^@}}%
- \fi
- \global\expandafter\let
- \csname XD@harmless@\the\count@ \endcsname \@tempa
- \endgroup
- }%
- }
-\endgroup
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{trivlist}\item[]\leavevmode ^^A Just for the look of it
-% \GenericDescribePrint{\small\cs{XD@harmless@}\meta{code}}^^A
-% ^^A There should have been a "main" index entry here as well,
-% ^^A but generating that with \package{doc} commands is more than I
-% ^^A bother to do right now.
-% Initializing the |\XD@harmless@|\meta{code} table is a
-% straightforward exercise of |\loop| \dots\ |\repeat|.
-% \begin{macrocode}
-%<*!economical>
-\count@=\z@
-\loop
- \expandafter\xdef \csname XD@harmless@\the\count@ \endcsname
- {\noexpand\PrintChar{\the\count@}}%
- \advance \count@ \@ne
-\ifnum 33>\count@ \repeat
-%</!economical>
-%<economical>\count@=\@xxxii
-\begingroup
- \catcode\z@=12\relax
- \@firstofone{%
-\endgroup
- \loop
- \if \ifnum 11=\catcode\count@ 1\else \ifnum 12=\catcode\count@
- 1\else 0\fi\fi 1%
- \uccode\z@=\count@
- \uppercase{\def\@tempa{^^@}}%
- \else
- \edef\@tempa{\noexpand\PrintChar{\the\count@}}%
- \fi
- \global\expandafter\let
- \csname XD@harmless@\the\count@ \endcsname \@tempa
- \advance \count@ \@ne
- \ifnum 127>\count@ \repeat
-}
-%<*!economical>
-\loop
- \expandafter\xdef \csname XD@harmless@\the\count@ \endcsname
- {\noexpand\PrintChar{\the\count@}}%
-\ifnum \@cclv>\count@
- \advance \count@ \@ne
-\repeat
-%</!economical>
-% \end{macrocode}
-% Marking the \package{makeindex} metacharacters as harmful is
-% deferred until |\begin|\nolinebreak[2]|{document}|, since it is not
-% unreasonable that these are changed in the preamble.
-% \begin{macrocode}
-\AtBeginDocument{%
- \SetHarmState\BooleanFalse\actualchar\BooleanTrue
- \SetHarmState\BooleanFalse\encapchar\BooleanTrue
- \SetHarmState\BooleanFalse\levelchar\BooleanTrue
- \SetHarmState\BooleanFalse\quotechar\BooleanTrue
-}
-% \end{macrocode}
-% \package{doc}'s |\verbatimchar| is not harmful, since it isn't used
-% at all in \package{xdoc}.
-% \end{trivlist}
-%
-%
-% \begin{macro}{\MakeHarmless}
-% To render a character string harmless, you do
-% \begin{quote}
-% |\MakeHarmless|\marg{macro}\marg{string}
-% \end{quote}
-% This locally assigns to \meta{macro} the harmless character string
-% which corresponds to \meta{string}. During the conversion the converted
-% part of the string is stored in |\toks@|, but that is local to
-% |\MakeHarmless|.
-% \begin{macrocode}
-\def\MakeHarmless#1#2{%
- \begingroup
- \toks@={}%
- \escapechar=`\\%
- \XD@harmless@#2\XD@harmless@
- \expandafter\endgroup \expandafter\def \expandafter#1%
- \expandafter{\the\toks@}%
-}
-% \end{macrocode}
-%
-% \begin{macro}{\XD@harmless@iii}
-% \begin{macro}{\XD@harmless@iv}
-% \begin{macro}{\XD@harmless@v}
-% \changes{prot2}{2000/07/27}{Moved code for adding to \cs{toks@} here
-% and changed it to append the contents of \cs{XD@harmless@32}, not
-% necessarily a \cs{PrintChar}. (LH)}
-% \begin{macro}{\XD@harmless@vi}
-% What one has to be most careful about when rendering strings
-% harmless are the space tokens, since many of \TeX's primitives gladly
-% snatches an extra space (or more) where you don't want them to in
-% this case. Macro parameters can be particularly dangerous, as \TeX\
-% will skip any number of spaces while looking for the replacement
-% text for an undelimited macro argument. Therefore the algorithm for
-% rendering a character token harmless begins
-% (|\XD@|\B|harmless@iii|) with |\string|ing the next token in the
-% string---this preserves the character code and sets the category to
-% 12 for all characters except the ASCII space, which gets category 10
-% (space)---and then |\futurelet| is used to peek at the next token. If
-% it is a space token (|\XD@|\B|harmless@iv|) then the character code
-% is 32 and the actual space can be gobbled (|\XD@|\B|harmless@v|), and
-% if it isn't then the next token can be grabbed in an undelimited macro
-% argument (|\XD@|\B|harmless@vi|). In either case, the harmless form
-% is given by the |\XD@|\B|harmless@|\meta{code} table entry
-% (in |\XD@|\B|harmless@v| or |\XD@|\B|harmless@vi|).
-% \begin{macrocode}
-\def\XD@harmless@iii{%
- \expandafter\futurelet \expandafter\@let@token
- \expandafter\XD@harmless@iv \string
-}
-% \end{macrocode}
-% \begin{macrocode}
-\def\XD@harmless@iv{%
- \ifx \@let@token\@sptoken
- \expandafter\XD@harmless@v
- \else
- \expandafter\XD@harmless@vi
- \fi
-}
-% \end{macrocode}
-% ^^A Hack:
-% \begingroup
-% \expandafter\def \expandafter\MakePrivateLetters \expandafter{^^A
-% \MakePrivateLetters
-% \catcode`3=11
-% \catcode`2=11
-% }
-% \begin{macrocode}
-\begingroup
- \catcode`3=\catcode`a
- \catcode`2=\catcode`a
- \@firstofone{\gdef\XD@harmless@v} {%
- \toks@=\expandafter{\the \expandafter\toks@ \XD@harmless@32}%
- \XD@harmless@
- }
-\endgroup
-% \end{macrocode}
-% \endgroup
-% In the \Module{economical} (with hash table space) variant
-% implementation the |\XD@harmless@|\meta{code} table has entries only
-% for the characters in visible ASCII. Thus the harmless forms of
-% characters outside visible ASCII must be constructed on the fly.
-% \begin{macrocode}
-\def\XD@harmless@vi#1{%
-%<*economical>
- \if \ifnum `#1<\@xxxii 1\else \ifnum `#1>126 1\else 0\fi\fi 1%
- \toks@=\expandafter{\the\expandafter\toks@
- \expandafter\PrintChar \expandafter{\number`#1}%
- }%
- \else
-%</economical>
- \toks@=\expandafter{\the\expandafter\expandafter\expandafter\toks@
- \csname XD@harmless@\number`#1\endcsname}%
-%<economical> \fi
- \XD@harmless@
-}
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{macro}
-%
-% \begin{macro}{\XD@harmless@}
-% \begin{macro}{\XD@harmless@i}
-% \begin{macro}{\XD@harmless@ii}
-% But that is not all |\MakeHarmless| can do. In some cases (as for
-% example when one is describing a family of control sequences) one
-% might want to include things in the string that are not simply
-% characters, but more complex items---such as for example |\meta|
-% constructions like \meta{code}. To accommodate for this,
-% |\XD@harmless@| (which is the first step in converting a token)
-% always begins by checking whether the next token to render harmless
-% is a control sequence. If it is then it is checked (in
-% |\XD@harmless@ii|) whether the control sequence
-% \describecsfamily{XD@harmless\Bslash\meta{cs-name}}^^A
-% |\XD@harmless\|\meta{cs-name}, where \meta{cs-name} is the name
-% without |\| of the control sequence encountered, is defined. If it
-% isn't then the encountered control sequence is |\string|ed and
-% conversion continues as above, but if it is defined then the
-% encountered control sequence begins such a more complex item.
-% \begin{macrocode}
-\def\XD@harmless@{\futurelet\@let@token \XD@harmless@i}
-% \end{macrocode}
-% \begin{macrocode}
-\def\XD@harmless@i{%
- \ifcat \noexpand\@let@token \noexpand\XD@harmless@
- \expandafter\XD@harmless@ii
- \else
- \expandafter\XD@harmless@iii
- \fi
-}
-% \end{macrocode}
-% \begin{macrocode}
-\def\XD@harmless@ii#1{%
- \@ifundefined{XD@harmless\string#1}{%
- \expandafter\XD@harmless@vi \string#1%
- }{\csname XD@harmless\string#1\endcsname}%
-}
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}
-%
-% \begin{macro}{\XD@harmless\XD@harmless@}
-% A control sequence |\XD@harmless\|\meta{cs-name} is responsible for
-% interpreting the string item that begins with the control sequence
-% |\|\meta{cs-name} and appending a harmless representation of it to
-% |\toks@|. Harmless representations should only contain robust
-% control sequences and they must not rely on changing any catcodes.
-% Normal |\XD@harmless\|\meta{cs-name} control sequences must also
-% end by inserting |\XD@harmless@| in front of what remains of the
-% string after the complex string item has been removed. This sees to
-% that the rest of the string is also rendered harmless. The only such
-% control sequence which does not insert |\XD@harmless@| is
-% |\XD@harmless\XD@harmless@|, but that is as it should be since
-% |\MakeHarmless| itself appends a |\XD@harmless@| to every character
-% string it should convert to mark the end of it.
-% \begin{macrocode}
-\expandafter\let
- \csname XD@harmless\string\XD@harmless@\endcsname \@empty
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\XD@harmless\PrintChar}
-% It is occasionally convenient to use a |\PrintChar| command as part
-% of a string that is to be rendered harmless instead of using the raw
-% character. The definition is very similar to that of
-% |\XD@harmless@vi|.
-% \begin{macrocode}
-\@namedef{XD@harmless\string\PrintChar}#1{%
-%<*economical>
- \if \ifnum #1<\@xxxii 1\else \ifnum #1>126 1\else 0\fi\fi 1%
- \toks@=\expandafter{\the\expandafter\toks@
- \expandafter\PrintChar \expandafter{\number#1}%
- }%
- \else
-%</economical>
- \toks@=\expandafter{\the\expandafter\expandafter\expandafter\toks@
- \csname XD@harmless@\number#1\endcsname}%
-%<economical> \fi
- \XD@harmless@
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{Interaction with mechanisms that make characters
-% problematic}
-%
-% If additional visible characters are made problematic after the
-% initial |\XD@harmless@|\meta{code} table is formed then problems may
-% indeed arise, because some character which is expected to be
-% unproblematic when read from (for example) an \texttt{.ind} file will
-% actually not be. In fortunate cases this will only lead to that
-% characters will print strangely or not at all, but it can quite
-% conceivably lead to errors that prevent further typesetting and it
-% should therefore be prevented if possible.
-%
-% Right now, I can think of two mechanisms that make characters
-% problematic, and both do that by making them active. One is the
-% shorthand mechanism of \package{babel}, but I think I'll delay
-% implementing any interaction with that until some later prototype; I
-% don't know it well enough and anyway I don't think it is that likely
-% to cause any problems. The other mechanism is the short verb mechanism
-% of \package{doc} itself, and this should be taken care of right away.
-%
-% The main difficulty is that the |\XD@harmless@|\meta{code} table should
-% be the same throughout the document body (otherwise you may get more
-% than one index entry for the same thing, with index references
-% arbitrarily distributed between the two) whereas short verb characters
-% can be made and deleted at any time. It would actually be wrong to
-% always have the |\XD@harmless@|\meta{code} table entry mirroring the
-% current state of the character! Instead a character will be considered
-% as problematic even if it is only made problematic temporarily (with
-% the exception for characters that are made problematic in
-% \texttt{verbatim} environments and the like---the index file isn't
-% being read in while those catcodes are active). Since it is impossible
-% to know in the beginning of a document whether a character will be made
-% a short verb character at some later point, the modifications to the
-% |\XD@harmless@|\meta{code} table that will be made because of short verb
-% characters will (at least partially) be based on which characters were
-% made short verbs on the previous run.
-%
-% \begin{macro}{\SetCharProblematic}
-% \changes{prot2}{2000/07/26}{Command added. (LH)}
-% The |\SetCharProblematic| command should be called by commands which
-% make a character problematic (e.g.\ makes it active) in the general
-% context (commands which make some character problematic only in some
-% very special context, such as the \texttt{verbatim} environment,
-% need not call |\Set|\-|Char|\-|Problematic|). The syntax is
-% \begin{quote}
-% |\SetCharProblematic|\marg{code}
-% \end{quote}
-% and it sets the ``harm state'' of the character whose code is
-% \meta{code} to problematic.
-%
-% When |\SetCharProblematic| is called in the preamble, it sets the
-% harm state on the current run. When it is called in the document
-% body however, it sets the harm state on the next run by writing a
-% |\SetHarmState| command to the \texttt{.aux} file. This is done to
-% ensure that the contents of the |\XD@harmless@|\meta{code} table
-% doesn't change during the body of a document.
-% \begin{macrocode}
-\newcommand\SetCharProblematic[1]{%
- \SetHarmState\BooleanTrue{#1}\BooleanTrue
-}
-\AtBeginDocument{%
- \gdef\SetCharProblematic#1{%
- \if@filesw
- \immediate\write\@auxout{\string\SetHarmState
- \string\BooleanTrue {\number#1}\string\BooleanTrue}%
- \fi
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\add@specials}
-% \changes{prot2}{2000/07/26}{Redefinition added. (LH)}
-% |\MakeShortVerb|'s call to |\SetCharProblematic| is put in the
-% |\add@|\B|specials| macro, which anyway already adds the character
-% to the |\dospecials| and |\@sanitize| lists. Only familiar
-% definitions of |\add@special| are changed.
-% \begin{macrocode}
-\def\@tempa#1{%
- \rem@special{#1}%
- \expandafter\gdef\expandafter\dospecials\expandafter
- {\dospecials \do #1}%
- \expandafter\gdef\expandafter\@sanitize\expandafter
- {\@sanitize \@makeother #1}}
-\ifx \@tempa\add@special
- \def\add@special#1{%
- \rem@special{#1}%
- \expandafter\gdef\expandafter\dospecials\expandafter
- {\dospecials \do #1}%
- \expandafter\gdef\expandafter\@sanitize\expandafter
- {\@sanitize \@makeother #1}%
- \SetCharProblematic{`#1}%
- }
-\else
- \PackageWarningNoLine{xdoc2}{Unfamiliar definition of
- \protect\add@special;\MessageBreak the macro was not patched}
-\fi
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-% \section{Indexing}
-% \label{Sec:Indexing}
-%
-% Each type of index entry \package{doc} produces is implemented through
-% a different indexing command.\footnote{Sometimes there are
-% even more than one command per entry type---the \cs{SpecialIndex},
-% \cs{LeftBraceIndex}, \cs{RightBraceIndex}, and \cs{PercentIndex}
-% commands all generate entries of the same type.} This might be
-% manageable when there are only \texttt{macro}s and
-% \texttt{environment}s to distinguish between, but it soon gets
-% unmanageable if more environments of this type are added. Therefore
-% all \package{xdoc} index entries are made with a single
-% command---|\IndexEntry|.
-%
-%
-% \subsection{New basic indexing commands}
-% \label{Ssec:IndexEntry}
-%
-% \begin{macro}{\IndexEntry}
-% \begin{macro}{\LevelSame}
-% \changes{prot2.1}{2000/11/18}{New name for \cs{levelsame}. (LH)}
-% \begin{macro}{\LevelSorted}
-% \changes{prot2.1}{2000/11/18}{New name for \cs{levelsorted}. (LH)}
-% \begin{macro}{\XD@if@index}
-% The |\IndexEntry| command writes one index entry to the \texttt{.idx}
-% file. It takes three arguments:
-% \begin{quote}
-% |\IndexEntry|\marg{entry text}\marg{encap}\marg{thenumber}
-% \end{quote}
-% The \meta{entry text} contains the text for the entry. It is a
-% nonempty sequence of commands in which each item is one of
-% \begin{quote}
-% |\LevelSame|\marg{text}\\
-% |\LevelSorted|\marg{sort key}\marg{text}
-% \end{quote}
-% Each such item specifies one level of the entry that is to be
-% written. In the case of |\LevelSorted|, the \meta{text} is what will
-% be written in the sorted index at that level and \meta{sort key} is
-% a key which the index-sorting program should use for sorting that
-% entry at that level. In the case of |\LevelSame|, the \meta{text} is
-% used both as sort key and contents of entry in the sorted index.
-% The first item is for the topmost level and each subsequent item is
-% for the next sublevel. The \meta{entry text} will be fully expanded
-% by the |\IndexEntry| command.
-%
-% \meta{thenumber} is the number (if any) that the index entry refers
-% to. It can consist of explicit characters, but it can also be a
-% |\the|\meta{counter} control sequence or a macro containing such
-% control sequences. \meta{thenumber} is fully expanded by the
-% |\IndexEntry| command, with the exception for occurrences of
-% |\thepage|---expansion of |\thepage| will instead be delayed until
-% the page is shipped out, so that the page numbers will be right.
-% \textbf{Note:} \meta{thenumber} must not contain any formatting that
-% will upset the index-sorting program. \package{doc}'s default
-% definition of |\theCodelineNo| contains such formatting, so one
-% must instead use |\thecodelineno| as \meta{thenumber} in that case.
-%
-% \meta{encap} is the name of the encapsulation scheme that should be
-% applied to \meta{thenumber}. All encapsulation schemes that have been
-% implemented instruct the index sorting program to wrap up
-% \meta{thenumber} in some code that gives it special formatting when
-% the sorted index is written, but one could also use the \meta{encap}
-% to specify `beginning of range' and `end of range' index entries.
-% Use \GenericDescribePrint{\small\texttt{none}}^^A
-% \SortIndex{none}{\texttt{none}\encapchar usage}\texttt{none} as
-% \meta{encap} if you don't want any special formatting.
-%
-% \textbf{Note:} |\IndexEntry| uses |\@tempa| internally, so you
-% cannot use that in argument \#2 or \#3. Using it in argument \#1
-% presents no problems, though.
-% \begin{macrocode}
-\newcommand\IndexEntry[3]{%
- \@bsphack
- \begingroup
- \def\LevelSame##1{\levelchar##1}%
- \def\LevelSorted##1##2{\levelchar##1\actualchar##2}%
- \protected@edef\@tempa{#1}%
- \protected@edef\@tempa{\expandafter\@gobble\@tempa\@empty}%
- \@ifundefined{XD@idxencap@#2}{%
- \PackageError{xdoc2}{Index entry encap `#2' unknown}\@eha
- }{%
- \XD@if@index{%
- \csname XD@idxencap@#2\endcsname\@tempa{#3}%
- }{}%
- }%
- \endgroup
- \@esphack
-}
-% \end{macrocode}
-% |\IndexEntry| does (like |\index|) not contribute any material to the
-% current list if indices aren't being made.
-%
-% |\XD@if@index| is |\@firstoftwo| if index entries are being written
-% and |\@second|\-|of|\-|two| if they are not.
-% \begin{macrocode}
-\let\XD@if@index=\@secondoftwo
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{macro}
-%
-% In \LaTeXplus, the \cs{IndexEntry} command should probably be
-% implemented using templates, e.g. the \meta{encap}s could be names of
-% instances.
-%
-% \begin{macro}{\levelsame}
-% \begin{macro}{\levelsorted}
-% These names were used for |\LevelSame| and |\LevelSorted|
-% respectively in prototype version~2.0, but the macros should belong
-% to the same capitalization class as |\IndexEntry| so their names
-% were changed in prototype version~2.1. The old names |\levelsame|
-% and |\levelsorted| will continue to work in \package{xdoc2}, though.
-% \begin{macrocode}
-%<*xdoc2>
-\newcommand*\levelsame{\LevelSame}
-\newcommand*\levelsorted{\LevelSorted}
-%</xdoc2>
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% \describecsfamily{XD@idxencap@\meta{encap}}^^A
-% Macros in the family |\XD@idxencap@|\meta{encap} takes two
-% arguments as follows
-% \begin{quote}
-% |\XD@idxencap@|\meta{encap}\,\marg{entry}\,\marg{thenumber}
-% \end{quote}
-% They should write an entry with the \meta{encap} encapsulation of the
-% \meta{thenumber} to the index file. They need not check whether index
-% generation is on or not, but they must be subject to the \LaTeX\ kernel
-% \texttt{@filesw} switch. They must expand both arguments fully at the
-% time of the command, with the exception for the control sequence
-% |\thepage|, which should not be expanded until the page on which the
-% write appears is output. Both these conditions are met if the macro
-% is implemented using |\protected@write|.
-%
-% \begin{macro}{\XD@idxencap@none}
-% \begin{macro}{\XD@idxencap@main}
-% \begin{macro}{\XD@idxencap@usage}
-% These macros implement the encapsulation schemes that are used in
-% \package{doc}.
-% \begin{macrocode}
-\def\XD@idxencap@none#1#2{%
- \protected@write\@indexfile{}{\XD@index@keyword{#1}{#2}}%
-}
-% \end{macrocode}
-% \begin{macrocode}
-\def\XD@idxencap@main#1#2{%
- \protected@write\@indexfile{}%
- {\XD@index@keyword{#1\encapchar main}{#2}}%
-}
-% \end{macrocode}
-% \begin{macrocode}
-\def\XD@idxencap@usage#1#2{%
- \protected@write\@indexfile{}%
- {\XD@index@keyword{#1\encapchar usage}{#2}}%
-}
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}
-%
-% \begin{macro}{\XD@index@keyword}
-% \changes{prot2.2}{2001/02/13}{Macro added and \meta{encap} macros
-% changed to use it. (LH)}
-% The |\XD@index@keyword| is a hook for changing the index entry
-% keyword (the text that is put in front of every index entry in the
-% \texttt{.idx} file). It is changed by e.g.\ the \package{docindex}
-% package~\cite{docindex}.
-% \begin{macrocode}
-\@ifundefined{XD@index@keyword}{%
- \edef\XD@index@keyword{\@backslashchar indexentry}%
-}{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\CodelineIndex}
-% \changes{prot2.1}{2000/10/08}{Using \cs{thecodelineno}. (LH)}
-% \begin{macro}{\PageIndex}
-% \begin{macro}{\TheXDIndexNumber}
-% The |\CodelineIndex| and |\PageIndex| commands do the same things as
-% in \package{doc}, but work with the \package{xdoc} internals instead
-% of the \package{doc} ones. |\TheXDIndexNumber| is used as
-% \meta{thenumber} argument to |\IndexEntry| by all indexing commands
-% that would have used |\special@index| in \package{doc}.
-% \begin{macrocode}
-\renewcommand\CodelineIndex{%
- \makeindex
- \let\XD@if@index=\@firstoftwo
- \codeline@indextrue
- \def\TheXDIndexNumber{\thecodelineno}%
-}
-% \end{macrocode}
-% \begin{macrocode}
-\renewcommand\PageIndex{%
- \makeindex
- \let\XD@if@index=\@firstoftwo
- \codeline@indexfalse
- \def\TheXDIndexNumber{\thepage}%
-}
-% \end{macrocode}
-% \begin{macrocode}
-\def\TheXDIndexNumber{??}
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}
-%
-%
-% \subsection{Making good sort keys}
-%
-% \changes{prot2.1}{2000/11/15}{Sort key making commands added. (LH)}
-% A common nuisance in \package{doc} indices is that many macros are
-% sorted by parts of the name that do not carry any interesting
-% information. In the \LaTeX\ kernel many macro names begin with a
-% silent |@|, whereas the names of private macros in many packages
-% (including this one) begin with some fixed abbreviation of the
-% package name. Since such prefixes usually are harder to remember than
-% the rest of the macro name, it is not uncommon that the index position
-% one thinks of first isn't the one where the macro actually is put.
-% Hence a mechanism for removing such annoying prefixes from the macro
-% names might be useful, and that is presicely what is defined below.
-%
-% The actual mechanism is based on having a set of macros called
-% \emph{operators} which operate on the harmless character string that
-% is to become the sort key. Each operator has a specific prefix string
-% which it tries to match against the beginning of the to-be sort key,
-% and if they match then the prefix is moved to the end of the sort key.
-% Automatically constructed operators (see below) have names of the form
-% \describecsfamily{XD@operatorA@\meta{prefix}}|\XD@operatorA@|^^A
-% \meta{prefix}, but operators can be given arbitrary names.
-%
-% \begin{macro}{\XD@operators@list}
-% The |\XD@operators@list| macro contains the list of all currently
-% active operators.
-% \begin{macrocode}
-\let\XD@operators@list\@empty
-% \end{macrocode}
-% \end{macro}
-%
-% The operators do all their work at expand-time. When an operator
-% macro is expanded, it is in the context
-% \begin{quote}
-% \meta{operator} \meta{subsequent operators} |\@firstofone|
-% \meta{sort key text} |\@empty|
-% \end{quote}
-% There may not be any |\@empty|s or |\@firstofone|s amongst the
-% \meta{subsequent operators} or in the \meta{sort key text}. This should
-% expand to
-% \begin{quote}
-% \meta{subsequent operators} |\@firstofone| \meta{operated-on sort
-% key text} |\@empty|
-% \end{quote}
-% The purpose of the |\@firstofone| after the \meta{subsequent
-% operators} is to remove any spaces that some operator might have put
-% in front of the sort key. This happens if the entire sort key text has
-% been ignored by some operator.
-%
-% \begin{macro}{\MakeSortKey}
-% The |\MakeSortKey| command is called to make the acutal sort key.
-% The syntax of this command is
-% \begin{quote}
-% |\MakeSortKey|\marg{macro}\marg{text}\marg{extras}
-% \end{quote}
-% This locally defines \meta{macro} to be the sort key that the
-% currently active operators manufacture from \meta{text}. The
-% \meta{extras} argument can contain additional assignments needed for
-% handling macros with special harmless forms, such as |\meta|.
-% \begin{macrocode}
-\newcommand\MakeSortKey[3]{%
- \begingroup
- \def\PrintChar{\string\PrintChar\XD@threedignum}%
- #3%
- \unrestored@protected@xdef\@gtempa{#2}%
- \endgroup
- \protected@edef#1{%
- \expandafter\XD@operators@list \expandafter\@firstofone
- \@gtempa\@empty
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\XD@make@operator}
-% The |\XD@make@operator| macro takes a harmless character sequence as
-% argument, constructs the corresponding operator, and returns the
-% operator control sequence in the |\toks@| token list register.
-%
-% More precisely, given a harmless character string \meta{string},
-% |\XD@make@operator| will construct a sequence of other tokens
-% \meta{text} from \meta{string} by replacing all |\PrintChar|
-% commands in the same way as |\MakeSortKey| does. Then it defines the
-% macro |\XD@operatorA@|\meta{text} to be
-% \begin{quote}
-% \raggedright \spaceskip=0.16666em
-% \#1\,|\@firstofone|\,\#2\,|\@empty| \ $\rightarrow$ \ %
-% |\XD@operatorB@|\meta{text} |\@firstofone| \#2
-% |\@firstofone| \meta{text} |\@firstofone| |\relax| \#1 |\@empty|
-% \end{quote}
-% and the macro |\XD@operatorB@|\meta{text} to do
-% \begin{quote}
-% \raggedright
-% \#1\,|\@firstofone|\,\meta{text}\,\#2\,|\@firstofone|\,\#3\,^^A
-% |\relax|\,\#4\,|\@empty| $\rightarrow$
-% \#4\,\( \left\{ \begin{array}{ll}
-% \mbox{\cs{@firstofone}\,\#2\,\textvisiblespace\,\meta{text}\,^^A
-% \cs{@empty}}& \mbox{if \#1 is empty}\\
-% \mbox{\#1\,\cs{@empty}}& \mbox{otherwise}
-% \end{array} \right.\)
-% \end{quote}
-%
-% \begin{macrocode}
-\def\XD@make@operator#1{%
- \begingroup
- \def\PrintChar{\string\PrintChar\XD@threedignum}%
- \let\protect\@gobble
- \xdef\@gtempa{#1}%
- \endgroup
- \expandafter\edef \csname XD@operatorA@\@gtempa\endcsname
- ##1\@firstofone##2\@empty{%
- \expandafter\noexpand \csname XD@operatorB@\@gtempa\endcsname
- \noexpand\@firstofone ##2\noexpand\@firstofone \@gtempa
- \noexpand\@firstofone \relax##1\noexpand\@empty
- }%
- \expandafter\edef \csname XD@operatorB@\@gtempa \expandafter\endcsname
- \expandafter##\expandafter1\expandafter\@firstofone \@gtempa
- ##2\@firstofone##3\relax##4\@empty{%
- \noexpand\ifx $##1$%
- \noexpand\expandafter \noexpand\@firstoftwo
- \noexpand\else
- \noexpand\expandafter \noexpand\@secondoftwo
- \noexpand\fi{%
- ##4\noexpand\@firstofone ##2 \@gtempa
- }{##4##1}%
- \noexpand\@empty
- }%
- \toks@=\expandafter{\csname XD@operatorA@\@gtempa\endcsname}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\DoNotIndexBy}
-% The |\DoNotIndexBy| command has the syntax
-% \begin{quote}
-% |\DoNotIndexBy|\marg{morpheme}
-% \end{quote}
-% It causes the \meta{morpheme} to be put \emph{last} in the index
-% sort key for each macro name which begins by \meta{morpheme}. This
-% can be used to ignore e.g.\ ``silent'' |@|s at the beginning of a
-% macro name.
-% \begin{macrocode}
-\newcommand\DoNotIndexBy[1]{%
- \MakeHarmless\@tempa{#1}%
- \XD@make@operator\@tempa
- \expandafter\def \expandafter\XD@operators@list \expandafter{%
- \the\expandafter\toks@ \XD@operators@list
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-%
-% \subsection{Reimplementations of \package{doc} indexing commands}
-%
-% The \package{doc} indexing commands aren't that interesting in
-% \package{xdoc}, since they take `raw' control sequences as
-% arguments rather than the harmless strings that the \package{xdoc}
-% commands will want to put in the index. But it can be instructive to
-% see how they would be implemented in this context.
-%
-% \begin{macro}{\SortIndex}
-% \changes{prot2.2}{2001/02/13}{Redefinition added. (LH)}
-% The |\SortIndex| takes a sort key and an entry text as argument, and
-% writes a one-level index entry for that.
-% \begin{macrocode}
-\renewcommand*\SortIndex[2]{%
- \IndexEntry{\LevelSorted{#1}{#2}}{none}{\thepage}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\SpecialIndex}
-% \begin{macro}{\SpecialMainIndex}
-% \begin{macro}{\SpecialUsageIndex}
-% The |\SpecialIndex|, |\SpecialMainIndex|, and |\SpecialUsageIndex|
-% commands take a control sequence (or more often something which looks
-% like a |\string|ed control sequence) as their only argument. The
-% entry text is that item verbatim, and the initial backslash is
-% ignored in sorting (|\Special|\-|Index| always ignores the first
-% character regardless of whether it is a backslash or not, the other
-% two checks first). |\Special|\-|Index| has \texttt{none} formatting,
-% |\Special|\-|Main|\-|Index| has \texttt{main} formatting, and
-% |\Special|\-|Usage|\-|Index| has \texttt{usage} formatting of the
-% index number.
-%
-% Although these definitions will (or at least are supposed to) yield
-% the same typeset results as the \package{doc} definitions in the
-% mainstream cases, I doubt that they will do so in all cases. At any
-% rate, they shouldn't perform worse.
-% \begin{macrocode}
-\renewcommand\SpecialIndex[1]{%
- \expandafter\MakeHarmless \expandafter\@tempa
- \expandafter{\string#1}%
- \IndexEntry{%
- \LevelSorted{%
- \expandafter\XD@unbackslash \@tempa\@empty
- }{\texttt{\@tempa}}%
- }{none}{\TheXDIndexNumber}%
-}
-% \end{macrocode}
-% \begin{macrocode}
-\renewcommand\SpecialMainIndex[1]{%
- \expandafter\MakeHarmless \expandafter\@tempa
- \expandafter{\string#1}%
- \IndexEntry{%
- \LevelSorted{%
- \expandafter\XD@unbackslash \@tempa\@empty
- }{\texttt{\@tempa}}%
- }{main}{\TheXDIndexNumber}%
-}
-% \end{macrocode}
-% \begin{macrocode}
-\renewcommand\SpecialUsageIndex[1]{%
- \expandafter\MakeHarmless \expandafter\@tempa
- \expandafter{\string#1}%
- \IndexEntry{%
- \LevelSorted{%
- \expandafter\XD@unbackslash \@tempa\@empty
- }{\texttt{\@tempa}}%
- }{usage}{\thepage}%
-}
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}
-%
-% \begin{macro}{\XD@unbackslash}
-% \begin{macro}{\XD@unbackslash@}
-% |\XD@unbackslash| is a utility macro which removes the first
-% character from a harmless character string if that character is a
-% backslash (i.e., if it is |\PrintChar{92}|). The \package{doc}
-% commands have traditionally used |\@gobble| for doing this, but the
-% \cs{@SpecialIndexHelper@} macro that was comparatively recently added
-% tries to do better.
-% \begin{macrocode}
-\def\XD@unbackslash#1{%
- \ifx \PrintChar#1%
- \expandafter\XD@unbackslash@
- \else
- \expandafter#1%
- \fi
-}
-\def\XD@unbackslash@#1{\ifnum #1=92 \else \PrintChar{#1}\fi}
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% \begin{macro}{\SpecialMainEnvIndex}
-% \begin{macro}{\SpecialEnvIndex}
-% These are similar to the above, but \package{doc} thinks that the
-% arguments don't need any special care, and it produces two index
-% entries per command. |\Special|\-|Env|\-|Index| should really have
-% been called |\Special|\-|Usage|\-|Env|\-|Index|.
-% \begin{macrocode}
-\renewcommand\SpecialMainEnvIndex[1]{%
- \IndexEntry{\LevelSorted{#1}{\texttt{#1} (environment)}}{main}%
- {\TheXDIndexNumber}%
- \IndexEntry{\LevelSame{environments:}\LevelSorted{#1}{\texttt{#1}}}%
- {main}{\TheXDIndexNumber}%
-}
-% \end{macrocode}
-% \begin{macrocode}
-\renewcommand\SpecialEnvIndex[1]{%
- \IndexEntry{\LevelSorted{#1}{\texttt{#1} (environment)}}{usage}%
- {\thepage}%
- \IndexEntry{\LevelSame{environments:}\LevelSorted{#1}{\texttt{#1}}}%
- {usage}{\thepage}%
-}
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% \begin{macro}{\it@is@a}
-% \begin{macro}{\XD@special@index}
-% The |\it@is@a| macro is a specialized version of |\SpecialIndex|,
-% but the format of its argument is quite different. After full
-% expansion the argument will become a single category 12 token
-% (\meta{t}, say), and the control sequence for which an entry should
-% be made is |\|\meta{t}. \package{doc} uses |\it@is@a| for control
-% sequences with one-character names. Note: The following
-% definition should really have special code for the \Module{economical}
-% \package{docstrip} module, but I don't think that is necessary
-% since the \package{doc} macros which used |\it@is@a| will be
-% redefined so that they don't.
-%
-% |\XD@special@index| does the same thing as |\SpecialIndex|, but it
-% does it with \package{xdoc} datatypes---the argument must be a
-% harmless character string that does not include the initial escape
-% (backslash).
-% \changes{prot2.1}{2000/11/15}{Using \cs{MakeSortKey} to make the
-% sort key. (LH)}
-% \begin{macrocode}
-\def\it@is@a#1{%
- \edef\@tempa{#1}%
- \XD@special@index{\csname XD@harmless@\number
- \expandafter`\@tempa\endcsname}%
-}
-% \end{macrocode}
-% \begin{macrocode}
-\def\XD@special@index#1{%
- \MakeSortKey\@tempa{#1}{}%
- \IndexEntry{\LevelSorted{\@tempa}{\texttt{\Bslash#1}}}{none}%
- {\TheXDIndexNumber}%
-}
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% \begin{macro}{\LeftBraceIndex}
-% \begin{macro}{\RightBraceIndex}
-% \begin{macro}{\PercentIndex}
-% \begin{macro}{\OldMakeIndex}
-% More specialised forms of |\SpecialIndex|. The |\OldMakeIndex|
-% command can safely be made a no-op.
-% \begin{macrocode}
-\renewcommand\LeftBraceIndex{\XD@special@index{\PrintChar{123}}}
-\renewcommand\RightBraceIndex{\XD@special@index{\PrintChar{125}}}
-\renewcommand\PercentIndex{\XD@special@index{\PrintChar{37}}}
-\let\OldMakeIndex\relax
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{macro}
-%
-% \begin{macro}{\@wrindex}
-% \changes{prot2.2}{2001/02/13}{Redefinition added. (LH)}
-% Finally, while we're at redefining indexing commands, let's redefine
-% |\@wrindex| as well to ensure that the index entry keyword is the
-% same for all indexing commands.
-% \begin{macrocode}
-\def\@wrindex#1{%
- \protected@write\@indexfile{}{\XD@index@keyword{#1}{\thepage}}%
- \endgroup
- \@esphack
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \section{Cross-referencing}
-%
-% \subsection{Scanning \texttt{macrocode} for \TeX\ control sequences}
-% \label{Ssec:Scanning macrocode}
-%
-% The cross-referencing mechanism in \package{doc} isn't problematic in
-% the same way as the indexing mechanism is, so one could pretty much
-% leave it as it is, but there are things that are better done
-% differently when the basic indexing commands are based on harmless
-% character strings. Rather than storing control sequence names (without
-% escape character) as sequences of category 11 tokens, they will be
-% stored as the equivalent harmless character strings.
-%
-% \begin{macro}{\macro@switch}
-% As in \package{doc}, |\macro@switch| determines whether the control
-% sequence name that follows consists of letters (call |\macro@name|)
-% or a single non-letter (call |\short@macro|). Unlike \package{doc},
-% \package{xdoc} accumulates the characters from a multiple-letter
-% control sequence name in a token register (|\@toks|), which is why
-% that is cleared here.
-% \begin{macrocode}
-\def\macro@switch{%
- \ifcat\noexpand\next a%
- \toks@={}%
- \expandafter\macro@name
- \else
- \expandafter\short@macro
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\scan@macro}
-% Since |\macro@namepart| isn't used as in \package{doc}, I might as
-% well remove the command that cleared it from |\scan@macro|.
-% \begin{macrocode}
-\def\scan@macro{%
- \special@escape@char
- \step@checksum
- \ifscan@allowed
- \def\next{\futurelet\next\macro@switch}%
- \else \let\next\@empty \fi
- \next}
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-% \begin{macro}{\short@macro}
-% This macro will be invoked (with a single character as parameter)
-% when a single-character macro name has been spotted whilst
-% scanning within the \texttt{macrocode} environment. It will produce
-% an index entry for that macro, unless that macro has been excluded
-% from indexing, and it will also typeset the character that
-% constitutes the name of the macro.
-% \begin{macrocode}
-\def\short@macro#1{%
- \protected@edef\macro@namepart{%
-%<*economical>
- \ifnum `#1<\@xxxii
- \noexpand\PrintChar{\number`#1}%
- \else\ifnum `#1>126
- \noexpand\PrintChar{\number`#1}%
- \else
-%</economical>
- \csname XD@harmless@\number`#1\endcsname
-%<economical> \fi\fi
- }%
- \ifnot@excluded \XD@special@index{\macro@namepart}\fi
-% \end{macrocode}
-% The cross-referencing mechanism is disabled for when the actual
-% character is printed, as it could be the escape character. The index
-% entry must be generated before the character is printed to ensure
-% that no page break intervenes (recall that a |^^M| will start a new
-% line).
-% \begin{macrocode}
- \scan@allowedfalse #1\scan@allowedtrue
-}
-% \end{macrocode}
-% \end{macro}
-%
-% There is one mechanism in |\TeX|'s control sequence tokenization that
-% |\short@|\B|macro| doesn't cover, and that is the |^^| sequence
-% substitution---|\^^M| is (with default catcodes) seen as the three
-% tokens |\^|, |^|, and |M|, not as the single control
-% sequence token that \TeX\ will make out of it. But this is the way it
-% is done in \package{doc}.
-%
-%
-% \begin{macro}{\macro@name}
-% \begin{macro}{\more@macroname}
-% \begin{macro}{\macro@finish}
-% Then there's the macros for assembling a control sequence name which
-% consists of one or more letters (category 11 tokens). (This includes
-% both the characters which are normally letters in the document and
-% those that are made letters by |\MakePrivateLetters|.) They're
-% pretty straightforward.
-% \begin{macrocode}
-\def\macro@name#1{%
-%<*economical>
- \if \ifnum `#1<\@xxxii 1\else \ifnum `#1>126 1\else 0\fi\fi 1%
- \toks@=\expandafter{\the\expandafter\toks@
- \expandafter\PrintChar \expandafter{\number`#1}%
- }%
- \else
-%</economical>
- \toks@=\expandafter{\the\expandafter\expandafter\expandafter\toks@
- \csname XD@harmless@\number`#1\endcsname}%
-%<economical> \fi
- \futurelet\next\more@macroname}
-% \end{macrocode}
-% \begin{macrocode}
-\def\more@macroname{%
- \ifcat\noexpand\next a%
- \expandafter\macro@name
- \else
- \macro@finish
- \fi
-}
-% \end{macrocode}
-% \begin{macrocode}
-\def\macro@finish{%
- \edef\macro@namepart{\the\toks@}%
- \ifnot@excluded \XD@special@index{\macro@namepart}\fi
- \macro@namepart
-}
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}
-%
-%
-%
-% \subsection{The index exclude list}
-% \label{Ssec:Index-exclude}
-%
-% The index exclude list mechanisms are not quite as simple to convert
-% for use with harmless character strings as the construction of macro
-% names are. This is because the trick used for searching the exclude
-% list for a certain string doesn't work if the string one is looking
-% for contains tokens with category 1 or 2 (beginning and end of group),
-% as the \meta{parameter text} of a |\def| cannot contain such tokens.
-% On the other hand the only groups that can appear in the harmless
-% character strings one will be looking for are the ones around the
-% argument of some |\PrintChar|, and these can easily be converted to
-% something else. Therefore an item in the index exclude list of
-% \package{xdoc} will have the format
-% \begin{quote}
-% |\do|\,\meta{string}
-% \end{quote}
-% where the \meta{string} is different from a harmless character string
-% only in that all |\PrintChar|\marg{num} have been replaced by
-% |\PrintChar|\parg{num}. The \meta{string} does not include an escape
-% character. The |\do| serves only to separate the item from the one
-% before, but it could in principle be used for other purposes as well
-% (such as in typesetting the entire exclude list).
-%
-% \begin{macro}{\XD@paren@PrintChar}
-% |\XD@paren@PrintChar| is a definition of |\PrintChar| which, when it
-% is used in an |\edef|, merely replaces the group around the argument
-% by a parenthesis and normalizes the number in the argument.
-% \changes{prot2.1}{2000/09/16}{\cs{number} added. (LH)}
-% \begin{macrocode}
-\def\XD@paren@PrintChar#1{\noexpand\PrintChar(\number#1)}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\DoNotIndex}
-% \changes{prot2.1}{2000/09/16}{Also changing catcode of \%. (LH)}
-% \begin{macro}{\do@not@index}
-% \begin{macro}{\XD@do@not@index}
-% These are the macros which add elements to the index exclude list.
-% |\DoNotIndex| is pretty much as in \package{doc}, but I have added
-% resetting of the catcodes of `|,|' (since |\XD@do@not@index| relies
-% on it) and `|#|' (since it can otherwise mess things up for the
-% |\def\@tempa| in |\do@not@index|).
-% \begin{macrocode}
-\renewcommand\DoNotIndex{%
- \begingroup
- \MakePrivateLetters
- \catcode`\#=12\catcode`\\=12\catcode`,=12\catcode`\%=12
- \expandafter\endgroup \do@not@index
-}
-% \end{macrocode}
-%
-% |\do@not@index|, on the other hand, is quite different, as it more
-% or less has to convert the argument from the format used in
-% \package{doc} to that of \package{xdoc}. The bulk of the work is
-% done by |\XD@do@not@index|, which grabs one of the elements in the
-% argument of |\do@not@index| and converts it (minus the initial
-% backslash) to a harmless character string. That harmless character
-% string is then converted by |\XD@paren@PrintChar|, so that the
-% string can be searched for using |\expanded@notin|.
-%
-% The reason for using a special loop structure here, as opposed to
-% using for example |\@for|, is that one cannot use either of |\|
-% or |,| alone as item separators, as they may both be part of control
-% sequence names (consider for example |\DoNotIndex{\a,\\,\b,\,,\c}|),
-% but they should be sufficient when combined.
-%
-% The reason for storing new elements in |\toks@| until the end of
-% the loop and only then inserting them into the index exclude list
-% is speed; the index exclude list can get rather large, so you don't
-% want to expand it more often than you have to. I don't know if the
-% difference is noticeable, though.
-% \begin{macrocode}
-\begingroup
- \catcode`\|=0
- \catcode`\,=12
- \catcode`\\=12
-% \end{macrocode}
-% \SpecialEscapechar{\|}
-% \begin{macrocode}
- |gdef|do@not@index#1{%
- |def|@tempa{#1}%
- |ifx |@empty|@tempa |else
- |toks@={}%
- |expandafter|XD@do@not@index |@gobble #1,\|XD@do@not@index,\%
- |fi
- }
- |gdef|XD@do@not@index#1,\{%
- |ifx |XD@do@not@index#1%
- |index@excludelist=|expandafter{%
- |the|expandafter|index@excludelist |the|toks@
- }%
- |expandafter|@gobble
- |else
- |MakeHarmless|@tempa{#1}%
- |begingroup
- |let|PrintChar|XD@paren@PrintChar
- |unrestored@protected@xdef|@gtempa{|noexpand|do|@tempa}%
- |endgroup
- |toks@=|expandafter{|the|expandafter|toks@ |@gtempa}%
- |fi
- |XD@do@not@index
- }
-|endgroup
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}
-%
-% \begin{macro}{\DoNotIndexHarmless}
-% The |\DoNotIndexHarmless| command takes a harmless character string
-% as argument and locally adds the control sequence whose name is that
-% character string to the index exclude list.
-% \begin{macrocode}
-\newcommand\DoNotIndexHarmless[1]{%
- \begingroup
- \let\PrintChar\XD@paren@PrintChar
- \unrestored@protected@xdef\@gtempa{\noexpand\do#1}%
- \endgroup
- \index@excludelist=\expandafter{%
- \the\expandafter\index@excludelist \@gtempa
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\index@excludelist}
-% In case the index exclude list is not empty, its contents are
-% converted to \package{xdoc} format.
-% \begin{macrocode}
-\edef\@tempa{\the\index@excludelist}
-\index@excludelist{}
-\ifx \@tempa\@empty \else
- \def\@tempb#1,\@nil{\do@not@index{#1}}
- \expandafter\@tempb \@tempa \@nil
- \let\@tempa\@empty
- \let\@tempb\@empty
-\fi
-% \end{macrocode}
-% The fact that the |\XD@|\B|harmless@|\B\meta{code} table has not
-% yet reached its final form means that some of these control sequences
-% listed in the exclude list might get a different form here than they
-% actually should, but there isn't much that can be done about that. It
-% is furthermore unusual that control sequence are given such names
-% that they would be affected by this.
-% \end{macro}
-%
-% \begin{macro}{\ifnot@excluded}
-% The |\ifnot@excluded| macro ultimately boils down to an
-% \texttt{if}, which evaluates to true if and only if the string in
-% |\macro@namepart| is not one of the items in the index exclude
-% list. Before |\expanded@notin| gets to carry out the actual test,
-% the |\PrintChar| calls in |\macro@namepart| are converted by
-% |\XD@paren@PrintChar| (it's OK to use an unprotected |\edef| for
-% this, since |\PrintChar| is the only control sequence that can
-% appear in |\macro@namepart|) so that |\expanded@notin| can be used
-% to test for its presence.
-% \begin{macrocode}
-\def\ifnot@excluded{%
- \begingroup
- \let\PrintChar\XD@paren@PrintChar
- \edef\@tempa{\macro@namepart}%
- \expandafter\endgroup \expandafter\expanded@notin
- \expandafter{\expandafter\do \@tempa\do}%
- {\the\index@excludelist}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{External cross-referencing}
-% \label{Ssec:XXR}
-%
-% (This subsection is a bit speculatory, but I think the structures it
-% describes may come in handy.)
-%
-% \changes{prot2}{2000/07/31}{I finally decided that it would be better
-% to make the XXR-commands look like comments to \TeX. (LH)}
-%
-% It's rather easy to write macros for scanning \TeX\ code for the names
-% of control sequences---just look for the escape (category 0)
-% character, and whatever follows is the name of a control sequence.
-% Doing the same thing for other languages may lay anywhere between
-% ``a~tricky exercise in advanced \TeX\ programming'' and ``possible in
-% theory'',\footnote{I.e., you know it can be implemented as a computer
-% program (in some language), you know that any computer program can be
-% translated to a Turing machine (or if you prefer that, expressed in
-% lambda calculus), and you know that a Turing machine can be emulated
-% by \TeX, but that's the closest thing to a solution you've managed to
-% come up with.} but in most cases the available solutions turn out to be
-% too complicated and\slash or slow to be of practical use. When that
-% happens, one might instead want to use some external piece of software
-% for doing the cross-referencing.
-%
-% The commands in this subsection implement basic support for such an
-% external cross-referencing program (or XXR,\footnote{Maybe not the
-% most logical name, but it looks much cooler than ECR.} for short). The
-% idea is that an XXR should communicate with \LaTeX\ like \BibTeX\
-% does---scan the \texttt{.aux} file (or files, if we're |\include|ing
-% things) for certain ``commands'' and use them to locate the files to
-% cross-reference, get parameter settings (like for example entries for
-% the index exclude list), and so on. It should then cross-reference the
-% file(s) and write the index entries in a suitable format to some file
-% (appending them to the \texttt{.idx} file is probably the easiest
-% solution). This way, it is (almost) as simple to use as the built-in
-% cross-referencing and the extra work for supporting it is (in
-% comparison to not supporting it) negligible.
-%
-% \begin{xrefcmd}{ExternalXRefMsg}
-% \begin{macro}{\SendExternalXRefMsg}
-% \changes{prot2}{2000/07/28}{Added \cs{if@filesw} test. (LH)}
-% It's hardly possible to predict all kinds of information that one
-% might want to give to an XXR, and neither can one assume that
-% there is only one XXR program that will read the \texttt{.aux}
-% file. A complicated project might involve code in several languages,
-% and each language might have its own XXR.
-% Therefore the general XXR-command (text in an \texttt{.aux} file which
-% is used for communicating information to an XXR) simply has the syntax
-% \begin{quote}
-% \verb*|%%ExternalXRefMsg |\marg{who}\verb*| |\marg{what}
-% \end{quote}
-% \meta{who} identifies the XXR this message is meant for. It must be
-% balanced text to \TeX\ and may not contain any whitespace, but can
-% otherwise be rather arbitrary. \meta{what} is the actual message. It
-% too must be balanced text to \TeX\ and it may not contain any
-% newlines, but it is otherwise arbitrary.
-% \index{whitespace restrictions}^^A
-% The reason for these restrictions on the contents of \meta{who} and
-% \meta{what} is that many (maybe even most) scripting languages
-% (which is what at least the \texttt{.aux}-scanning part of an
-% XXR will probably be written in) are much better at recognising
-% words on a line than they are at recognising a brace-delimited group.
-% By accepting these restrictions, one can make sure that all XXRs can
-% correctly determine whether a message is for them, even if they see
-% the \texttt{.aux} file as a sequence of lines composed of
-% whitespace-delimited words.
-%
-% |\SendExternalXRefMsg| is the basic command for writing
-% |ExternalXRefMsg|s to the \texttt{.aux} file, but it might be
-% recommendable that XXR writers provide users with a set of commands
-% that have more specific purposes. The syntax of the
-% |\Send|\-|External|\-|XRef|\-|Msg| command is (hardly surprising)
-% \begin{quote}
-% |\SendExternalXRefMsg|\marg{who}\marg{what}
-% \end{quote}
-% |\SendExternalXRefMsg| does a protected full expansion (like
-% |\protected@edef|) of its arguments at the time it is called.
-% \begin{macrocode}
-\newcommand\SendExternalXRefMsg[2]{%
- \begingroup
- \if@filesw
- \let\protect\@unexpandable@protect
- \immediate\write\@auxout{\@percentchar\@percentchar
- ExternalXRefMsg {#1} {#2}}%
- \fi
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}\end{xrefcmd}
-%
-% The remaining commands in this subsection address complications that
-% exist because of how \texttt{.dtx} files are generally written, and
-% thus constitutes difficulties that all XXRs will have to face.
-%
-% \begin{xrefcmd}{ExternalXRefFile}
-% The usual way to write \texttt{.dtx} files is to include a
-% driver---a~short piece of uncommented \LaTeX\ code which contains
-% the necessary preamble material and a document body which mainly
-% contains a |\DocInput| for the \texttt{.dtx} file itself---but it
-% is also usually understood that this driver may be copied to another
-% file if necessary and larger projects usually have a completely
-% separate driver file. Therefore an XXR cannot be expected to be
-% able to find the file(s) to cross-reference simply by changing
-% suffix on the name of the \texttt{.aux} file it reads its commands
-% from. A more intricate method must be used.
-%
-% To tell the XXR that ``here I input the file \dots'', one includes
-% an |External|\-|XRef|\-|File| XXR-command in the \texttt{.aux} file.
-% Its syntax is
-% \begin{quote}
-% \verb*|%%ExternalXRefFile |\marg{cmd}\verb*| |\marg{file}^^A
-% \verb*| |\marg{what}
-% \end{quote}
-% \meta{file} is the name (as given to |\input| or the like) of the
-% file to input. \meta{cmd} is either \texttt{begin} (begin of
-% \meta{file}) or \texttt{end} (end of \meta{file}). \meta{what} is a
-% declaration of what is in the file; XXRs should use it to determine
-% whether they should process this file or not. \meta{what} is empty
-% if all XXRs should process the file, but for example |\IndexInput|
-% will put \texttt{TeX} here to declare that the contents of this file
-% are \TeX\ code and only XXRs that cross-reference \TeX\ code need to
-% process this file.
-%
-% In connection to this, it should be mentioned that XXRs must also look
-% for (and act on) |\@input|\penalty\hyphenpenalty\marg{auxfile} commands
-% that |\include| or |\DocInclude| has written to the \texttt{.aux} file,
-% since these \meta{auxfile}s can also contain commands for the XXR
-% that should result in output to the same \texttt{.idx} file. In
-% particular, the |ExternalXRefFile| XXR-commands that are written
-% because of a |\DocInclude| will be written to such an \meta{auxfile}.
-% \end{xrefcmd}
-%
-% \begin{xrefcmd}{ExternalXRefSync}
-% Most XXRs will probably find it an unreasonable task to keep exact
-% track of all codelines in all documents, i.e., they will sometimes
-% think that a piece of code contains more or fewer numbered
-% codelines than it actually does. If for example a document contains
-% code such as\iffalse
-%<*example>
-% \fi
-%\begin{verbatim}
-%% \iffalse
-%% \begin{macrocode}
-%Etaoin Shrldu
-%% \end{macrocode}
-%% \fi
-%\end{verbatim}\iffalse
-%</example>
-%\fi
-% then all reasonable XXRs will probably be fooled into thinking that
-% the \texttt{Etaoin Shrldu} line is a numbered codeline. This would
-% of course be very bad if an XXR thought it should cross-reference
-% the contents of this line, but that shouldn't usually be a problem
-% since the specifications\footnote{I imagine these specifications
-% will consist of a list of \package{docstrip} options (modules),
-% possibly used in combination with restrictions on the names of
-% surrounding environments.} of what code should be cross-referenced
-% will probably make it clear that the above line should not be
-% cross-referenced. Code such as the above will still be problematic
-% however, as it will cause the XXR to believe that the
-% \texttt{codelineno} counter has another value on any following
-% line that is indexed than it actually has in the typeset
-% document. This will cause index entries to refer to another line
-% than it actually should.
-%
-% To overcome this, the |ExternalXRefSync| XXR-command can be used to
-% tell the XXR what the corresponding values of |\inputlineno| and
-% \texttt{codelineno} are. Its syntax is
-% \begin{quote}
-% \verb*|%%ExternalXRefSync |\marg{inputlineno}\verb*| |^^A
-% \marg{codelineno}
-% \end{quote}
-% where \meta{inputlineno} is the expansion of |\the\inputlineno| and
-% \meta{codelineno} is the expansion of |\thecodelineno|, both
-% expanded at the same point in the program. Note here that the first
-% line of a file is line number 1, that line number 0 is used to
-% denote ``just before the first line'', and that \texttt{codelineno}
-% gets increased immediately before the number is typeset (i.e.,
-% \texttt{codelineno} contains the number of the last numbered
-% codeline).
-% \end{xrefcmd}
-%
-% This doesn't support external cross-referencing by pages, since doing
-% that requires that the document outputs a lot more information to the
-% \texttt{.aux} file. In principle, one could put a |\mark|\penalty0
-% |{\thecodelineno}| in |\PrintCodelineNo| and a |\write| in the page
-% header which outputs to the \texttt{.aux} file which range of
-% codelines correspond to a given page, but the \LaTeXe\ sectioning
-% commands' use of marks tends to interfere with this. The \LaTeXplus\
-% package \package{xmarks} will probably solve that problem, though.
-%
-% \begin{macro}{\syncexternalxref}
-% \changes{prot2}{2000/07/28}{New name for \cs{SendExternalXRefSync}.
-% Also added \cs{if@filesw} test. (LH)}
-% ^^A Johann Sebastian Bach: 1685/03/21--1750/07/28
-% The |\syncexternalxref| command writes an |ExternalXRefSync|
-% XXR-command for the current line number and value of the
-% \texttt{codelineno} counter to \texttt{.aux} file. It is used for
-% synchronizing the numbered codeline counter that an XXR maintains with
-% the \texttt{codelineno} counter that is used for numbering codelines
-% in the typeset document after a piece of code in the document that
-% some XXR is likely to misinterpret. |\sync|\-|external|\-|xref|
-% shouldn't be used inside \texttt{macrocode} environments (or the
-% like) as they tend to read ahead in the file---instead it is best
-% placed shortly after such an environment. |\sync|\-|external|\-|xref|
-% has no arguments.
-% \begin{macrocode}
-\newcommand\syncexternalxref{%
- \if@filesw
- \immediate\write\@auxout{\@percentchar\@percentchar
- ExternalXRefSync {\the\inputlineno} {\thecodelineno}%
- }%
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{xrefcmd}{ExternalXRefWrap}
-% The |\DocInclude| command complicates matters for XXRs by redefining
-% things so that the \texttt{codelineno} counter only makes up a part
-% of the line numbers appearing in the index. The purpose of the
-% |External|\-|XRef|\-|Wrap| XXR-command is to inform XXRs about such
-% changes. The command
-% \begin{quote}
-% \verb*|%%ExternalXRefWrap {|\meta{prefix}\verb*|} {|^^A
-% \meta{suffix}|}|
-% \end{quote}
-% means that codeline numbers written to the index should have the form
-% \begin{quote}
-% \meta{prefix}\meta{codelineno}\meta{suffix}
-% \end{quote}
-% This setting takes effect from the next |External|\-|XRef|\-|Sync|
-% and stays in effect until the end of the document or until another
-% |External|\-|XRef|\-|Wrap| overrides it. The state at the beginning
-% of the document is to have both \meta{prefix} and \meta{suffix}
-% empty.
-% \end{xrefcmd}
-%
-%
-% \begin{macro}{\XD@input}
-% The |\XD@input| command is a version of |\input| which takes care
-% to inform XXRs that another file is being |\input|ted. Its syntax is
-% \begin{quote}
-% |\XD@input|\marg{file}\marg{what}
-% \end{quote}
-% where \meta{file} is the name of the file to |\input| and \meta{what}
-% is the contents of the file, as specified in
-% |External|\-|XRef|\-|File| commands.
-% \begin{macrocode}
-\def\XD@input#1#2{%
- \if@filesw
- \immediate\write\@auxout{\@percentchar\@percentchar
- ExternalXRefFile {begin} {#1} {#2}%
- }%
- \immediate\write\@auxout{\@percentchar\@percentchar
- ExternalXRefSync {0} {\thecodelineno}%
- }%
- \fi
- \input{#1}%
- \if@filesw
- \immediate\write\@auxout{\@percentchar\@percentchar
- ExternalXRefFile {end} {#1} {#2}%
- }%
- \immediate\write\@auxout{\@percentchar\@percentchar
- ExternalXRefSync {\the\inputlineno} {\thecodelineno}%
- }%
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\DocInput}
-% The |\DocInput| command is redefined so that it writes
-% |External|\-|XRef|\-|File| and |External|\-|XRef|\-|Sync| XXR-commands
-% to the \texttt{.aux} file. Furthermore, with \package{xdoc} one
-% should always use the |\DocInput| command (or some command based on
-% it, like |\DocInclude|) for inputting a file where percent is an
-% `ignore' character---even when one such file inputs another. (Doing
-% that didn't work with the \package{doc} definition, as it always
-% called |\MakePercentComment| upon return, but the \package{xdoc}
-% definition contains code for dealing with that.)
-% \begin{macrocode}
-\renewcommand\DocInput[1]{%
- \relax
- \ifnum \catcode`\%=14
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi{%
- \MakePercentIgnore\XD@input{#1}{}\MakePercentComment
- }{\XD@input{#1}{}}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\IndexInput}
-% The |\IndexInput| command also needs to be redefined to write
-% XXR-commands to the \texttt{.aux} file. It would
-% probably be enough here to write an |External|\-|XRef|\-|Sync|
-% after the file has been |\input| since no external
-% cross-referencing of |\IndexInput|ted files is needed, but I do the
-% more verbose variant here just to exemplify how these things would
-% look for other languages.
-% \begin{macrocode}
-\renewcommand\IndexInput[1]{%
- \begingroup
- \macro@code
- \frenchspacing
- \@vobeyspaces
- \XD@input{#1}{TeX}%
- \endmacrocode
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-% \section{Two-sided printing}
-% \label{Sec:Twoside}
-%
-% The main problem one faces when reimplementing \package{doc} so that
-% the marginal material always appears in the outer margin in two-sided
-% documents is that the justification of \package{doc}'s marginal
-% material is asymmetric; it always extends outwards. This means that
-% the justification to use when typesetting the marginal material must
-% depend on whether it is to be put on a left or a right
-% page---something which cannot be determined for sure when the
-% material is typeset! This is a minor difficulty if the marginal material
-% is put in place using \LaTeX's |\marginpar| command, as that allows the
-% user to supply different versions of the marginal paragraph for left and
-% right margin placements. It is however a major difficulty if the
-% marginal material is displaced out into the margin from within the main
-% galley (like the \texttt{macro} environment of \package{doc} does),
-% since the output routine is never involved.
-%
-% Even though this difficulty provides arguments for using a |\marginpar|
-% mechanism for all text that is put in the margin, that will not be
-% done in \package{xdoc} (but maybe it will in some successor).
-% Instead \package{xdoc} contains a general mechanism which uses data
-% written to the \texttt{.aux} file for determining whether a piece of
-% text was put on an odd or even numbered page the \emph{last} time the
-% document was typeset. By the usual convergence of page breaks in a
-% \LaTeX\ document, this will eventually produce a typeset document
-% with the marginal material consistently in the outer margin.
-%
-% The mechanism works as follows. The places in the document (the
-% document source) at which it is necessary to determine whether
-% something is going to appear on an even (left) or an odd (right) page
-% are called ``page situations''\footnote{I know it's not a particularly
-% good name. Suggestions for better names are gracefully accepted.} or
-% just ``situations''. In each situation, a relatively simple test (is
-% the \texttt{page} counter currently even or odd?) which is right more
-% often than not is used as a first guess, and both the guess, the
-% placement actually used, and the correct answer (determined from the
-% value of \texttt{page} when the piece of text is shipped out) are
-% recorded in the \texttt{.aux} file. If the guess (for the current
-% situation) coincided with the correct answer the last time the
-% document was typeset then the guess determined now is used, otherwise
-% the opposite of the guess determined now is used. Finally, when at
-% |\end{document}| the \texttt{.aux} file is inputted to check for
-% changed labels, the placements used are also checked and the user is
-% given a suitable warning if there was an incorrect one.
-%
-% \begin{macro}{\IfOddPageSituation}
-% The |\IfOddPageSituation| macro is the user level test for whether
-% the current page situation appears on an odd or an even page. It
-% has the syntax
-% \begin{quote}
-% |\IfOddPageSituation|\marg{odd}\marg{even}
-% \end{quote}
-% and this will expand to \meta{odd} if the current situation is
-% expected to end up on an odd page (based on how correct it was to
-% look at the value of \texttt{page} last time) and to \meta{even}
-% otherwise. In single-sided mode, it always expands to \meta{even}.
-% In two-sided mode, |\IfOddPageSituation| is redefined for the new
-% situation each time |\StepPageSituation| is called.
-% \begin{macrocode}
-\let\IfOddPageSituation=\@secondoftwo
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\StepPageSituation}
-% \changes{prot2.1}{2000/12/19}{Now also setting
-% \cs{IfOddPageSituation}, instead of having that macro performing
-% the test each time it is used. This fixes a rarely occuring bug
-% which occurs when a page is shipped out between
-% \cs{StepPageSituation} and a corresponding
-% \cs{IfOddPageSituation}. (LH)}
-% \begin{macro}{\macro@cnt}
-% \begin{macro}{\XD@next@wrong}
-% \begin{macro}{\XD@wrongs@list}
-% The |\StepPageSituation| command is called to inform the page
-% situation mechanism that a new situation has begun. The rule for
-% when you need to use |\Step|\-|Page|\-|Situation| is simple: if you
-% use |\IfOdd|\-|Page|\-|Situation| in two places which may end up on
-% different pages, then there must be a |\Step|\-|Page|\-|Situation|
-% between them. There is no code which automatically calls
-% |\Step|\-|Page|\-|Situation|---not even |\clearpage| or other
-% macros which force page breaks do this---hence macros which use
-% the page situation mechanism must always call |\Step|\-|Page|\-^^A
-% |Situation| explicitly when a new situation begins.
-%
-% Since the |\macro@cnt| count register isn't used for stacking
-% marginal headings (``macro'' names) anymore (see below), it is
-% employed for enumerating page situation. |\XD@next@wrong| is a macro
-% which contains the number of the next situation in which the guess
-% was wrong last time. Unless |\XD@next@wrong|${}={}$|\macro@cnt|, the
-% guess was right last time. All assignments to |\macro@cnt| and
-% |\XD@next@wrong| are global.
-%
-% |\XD@wrongs@list| is a list of all the wrong guesses. It has the
-% syntax
-% \begin{quote}
-% |\@elt|\marg{guess no.}|\@elt|\marg{guess no.}\dots
-% |\@elt|\marg{guess no.}
-% \end{quote}
-% where the \meta{guess no.}s are the numbers of the wrong guesses, in
-% increasing order. The contents of |\XD@wrongs@list| are collected
-% when the \texttt{.aux} file is inputted at |\begin|\B|{document}|,
-% and they are removed again as \TeX\ passes the situation in the
-% document that they apply to. All assignments to |\XD@wrong@list| are
-% global.
-%
-% Calling |\StepPageSituation| increases |\macro@cnt| by one,
-% updates |\XD@|\B|next@|\B|wrong| and |\XD@|\B|wrong@|\B|list|
-% appropriately, and sets |\IfOdd|\B|Page|\B|Situation| to
-% |\@firstoftwo| or |\@secondoftwo| (whichever is correct for this
-% situation). |\@next| is a list management macro from the \LaTeX\
-% kernel.
-% \begin{macrocode}
-\if@twoside
- \def\StepPageSituation{%
- \global\advance \macro@cnt \@ne
- \ifnum \XD@next@wrong<\macro@cnt
- \global\@next\XD@next@wrong\XD@wrongs@list{}{%
- \let\XD@next@wrong\maxdimen
- }%
- \fi
- \ifnum \ifodd\c@page -\fi \@ne=%
- \ifnum \XD@next@wrong=\macro@cnt -\fi \@ne
- \global\let\IfOddPageSituation\@secondoftwo
- \else
- \global\let\IfOddPageSituation\@firstoftwo
- \fi
- }
- \def\XD@next@wrong{-\maxdimen}
- \let\XD@wrongs@list\@empty
-\else
- \let\StepPageSituation=\relax
-\fi
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{macro}
-%
-%
-% \begin{macro}{\RecordPageSituation}
-% The |\RecordPageSituation| command generates a |\write| whatsit node
-% which records the outcome of the current page situation. It is the
-% location of this whatsit node that determines on which page a
-% certain situation is considered to occur. If you don't execute this
-% macro for a certain page situation, the first guess will always be
-% used for that situation and no warnings will be given if that guess
-% is incorrect. In single-sided mode, this is a no-op (thus you should
-% better place it somewhere where it doesn't affect spacing).
-% Furthermore you must make sure that \TeX\ does not change the value
-% of the \texttt{page} counter between a |\StepPageSituation| and its
-% corresponding |\RecordPageSituation|, since the |\ifodd| test must
-% yield the same result in both cases.
-%
-% \begin{macrocode}
-\if@twoside
- \def\RecordPageSituation{%
- \if@filesw
- \edef\@tempa{%
- \string\XD@situation{\the\macro@cnt}{%
- \ifodd\c@page 1\else 0\fi
- }{\IfOddPageSituation{1}{0}}%
- }%
- \write\@auxout\expandafter{\@tempa{\ifodd\c@page 1\else 0\fi}}%
- \fi
- }%
-\else
- \let\RecordPageSituation=\relax
-\fi
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\XD@situation}
-% \changes{prot2}{2000/07/13}{Changed to allow multiple
-% \cs{XD@situation} commands for the same situation. This is
-% necessary for coping with documents which \cs{include} files. (LH)}
-% \changes{prot2}{2000/07/26}{Made redefinition at begin document
-% global. (LH)}
-% \begin{macro}{\XD@check@situation}
-% |\XD@situation| is the command that will be written to the
-% \texttt{.aux} file with the data about how the situation turned out.
-% Its syntax is
-% \begin{quote}
-% |\XD@situation|\marg{number}\marg{guess}\marg{did}\marg{correct}
-% \end{quote}
-% where \meta{number} is the number of the situation, and
-% \meta{guess}, \meta{did}, and \meta{correct} describe what the
-% guess, the actual action done, and what the correct action to do
-% respectively was. \meta{guess}, \meta{did}, and \meta{correct} are
-% either |0| (denoting even page) or |1| (denoting odd page).
-%
-% The definition for |\XD@situation| set here is the one which will
-% be in force when the \texttt{.aux} file is inputted at |\begin|\B
-% |{document}|; its purpose is to build the |\XD@wrongs@list|.
-% |\XD@check@situation| is the definition for |\XD@situation| which
-% will be in force when the \texttt{.aux} file is inputted at
-% |\end|\B|{document}|; its purpose is to check if anything was
-% incorrectly placed.
-%
-% The main problem |\XD@situation| has to face is that text in the
-% \texttt{.dvi} file needs not appear in exactly the same order as it
-% was typeset, and it is therefore possible that |\XD@situation|s in
-% the \texttt{.aux} file do not appear in increasing \meta{number}
-% order. Because of this, |\XD@situation| must sort the
-% |\XD@wrongs@list| while constructing it. The only reasonable
-% algorithm for this seems to be insertion sort, but as the items to
-% insert are almost surely almost sorted, a special check is done in
-% the beginning to see if that is the case. |\XD@next@wrong| is used
-% in this to store the number of the last item so far inserted into
-% the |\XD@wrongs@list|. By only assigning |\XD@next@wrong| locally
-% here, one is relieved of having to reset it in |\AtBeginDocument|
-% code.
-%
-% When sorting is actually applied, a new item |\@elt|\marg{insert}
-% is inserted through expanding the list. When doing that, the |\@elt|
-% macro has the syntax
-% \begin{quote}
-% |\@elt|\,\meta{flag}\,\marg{number}\,\meta{next}
-% \end{quote}
-% where \meta{flag} is |\BooleanTrue| or |\BooleanFalse|, \meta{number}
-% is the item that the |\@elt| belong to, and \meta{next} is either the
-% next |\@elt| or |\@gobble| (if this is the last). The \meta{flag}
-% specifies whether the item has been inserted; |\Boolean|\B|True| means
-% that it has. The above |\@elt|-sequence will expand to
-% \begin{quote}
-% |\noexpand|\,|\@elt|\,\marg{number}\,\meta{next}\,|\BooleanTrue|
-% \end{quote}
-% if \meta{flag} is |\BooleanTrue|, or \meta{flag} is |\BooleanFalse|
-% and \meta{number} is equal to \meta{insert}. It will expand to
-% \begin{quote}
-% |\noexpand|\,|\@elt|\,\marg{number}\,\meta{next}\,|\BooleanFalse|
-% \end{quote}
-% if \meta{flag} is |\BooleanFalse| and \meta{number} is less than
-% \meta{insert}. It expands to
-% \begin{quote}
-% |\noexpand|\,|\@elt|\,\marg{insert}\,|\noexpand|\,|\@elt|^^A
-% \,\marg{number}\\
-% \meta{next}\,|\BooleanTrue|
-% \end{quote}
-% if \meta{flag} is |\BooleanFalse| and \meta{number} is greater than
-% \meta{insert}.
-%
-% \begin{macrocode}
-\if@twoside
- \def\XD@situation#1#2#3#4{%
- \if #2#4\else
- \ifnum #1<\XD@next@wrong
- \begingroup
- \def\@elt##1##2##3{%
- \noexpand\@elt
- \ifcase
- \ifx ##1\BooleanTrue 0%
- \else\ifnum ##2<#1 1%
- \else\ifnum ##2>#1 2%
- \else 0%
- \fi\fi\fi
- \space
- {##2}\expandafter\@secondoftwo
- \or
- {##2}\expandafter\@firstoftwo
- \else
- {#1}\noexpand\@elt{##2}\expandafter\@secondoftwo
- \fi{##3\BooleanFalse}{##3\BooleanTrue}%
- }%
- \xdef\XD@wrongs@list{%
- \expandafter\expandafter \expandafter\@elt
- \expandafter\@firstoftwo \expandafter\BooleanFalse
- \XD@wrongs@list \@gobble
- }%
- \endgroup
- \else\ifnum #1>\XD@next@wrong
- \def\XD@next@wrong{#1}%
- \expandafter\gdef \expandafter\XD@wrongs@list
- \expandafter{\XD@wrongs@list \@elt{#1}}%
- \fi\fi
- \fi
- }
- \def\XD@check@situation#1#2#3#4{%
- \if #3#4\else
- \PackageWarningNoLine{xdoc2}{Page breaks may have changed.%
- \MessageBreak Rerun to get marginal material right}%
- \let\XD@situation\@gobblefour
- \fi
- }
- \AtBeginDocument{\global\let\XD@situation\XD@check@situation}
-\else
- \let\XD@situation\@gobblefour
-\fi
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-%
-% \begin{macro}{\XD@set@situation}
-% \begin{macro}{\XD@write@situation@ckpt}
-% \begin{macro}{\cl@@ckpt}
-% The page situation counter |\macro@cnt| is closely related to the
-% \texttt{page} counter and it needs to be among the counters whose
-% values are recorded in |\include| checkpoints, since the enumeration
-% of situations will otherwise change when files are added to or
-% removed from the |\@partlist|. It is not sufficient to simply set
-% the value of |\macro@cnt| however; one must also advance to the
-% correct position in the |\XD@wrongs@list| list and set
-% |\XD@next@wrong| accordingly. The |\XD@set@situation| command has
-% the syntax
-% \begin{quote}
-% |\XD@set@situation|\marg{number}
-% \end{quote}
-% It sets |\macro@cnt| to \meta{number} and updates |\XD@wrongs@list|
-% and |\XD@|\B|next@|\B|wrong| accordingly.
-% \begin{macrocode}
-\if@twoside
- \def\XD@set@situation#1{%
- \global\macro@cnt=#1\relax
- \loop \ifnum \XD@next@wrong<\macro@cnt
- \global\@next\XD@next@wrong\XD@wrongs@list{}{%
- \let\XD@next@wrong\maxdimen
- }%
- \repeat
- }
-\else \let\XD@set@situation=\@gobble \fi
-% \end{macrocode}
-%
-% The |\XD@write@situation@ckpt| macro writes an |\XD@set@situation|
-% command to the \texttt{.aux} file in the way that |\@wckptelt|
-% writes |\setcounter| commands for normal counters. A problem for
-% |\XD@write@situation@ckpt| is that it will have to appear in a
-% macro which is regularly subjected to the |\xdef| in |\@cons|. For
-% that reason, it will simply expand to itself whenever |\@elt| isn't
-% |\@wckptelt|.
-% \begin{macrocode}
-\if@twoside
- \def\XD@write@situation@ckpt{%
- \ifx \@elt\@wckptelt
- \immediate\write\@partaux{%
- \string\XD@set@situation{\the\macro@cnt}%
- }%
- \else
- \noexpand\XD@write@situation@ckpt
- \fi
- }
- \expandafter\def \expandafter\cl@@ckpt
- \expandafter{\cl@@ckpt \XD@write@situation@ckpt}
-\fi
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}
-%
-%
-%
-% \section{The list of changes}
-% \label{Sec:Changes}
-%
-% Reimplementations elsewhere have required a few modifications related
-% to the |\changes| command. There are a lot of other things that could
-% and perhaps should be done with these mechanisms, though.
-%
-% \begin{macro}{\saved@macroname}
-% The contents of the |\saved@macroname| macro now have the syntax
-% \begin{quote}
-% \marg{sort key}\marg{text}
-% \end{quote}
-% i.e., exactly like the argument sequence of |\LevelSorted|. It's not
-% fed to that macro right now, but it is not unlikely that it will in
-% the future. The default definition corresponds to the default
-% definition in \package{doc}.
-% \begin{macrocode}
-\def\saved@macroname{{ }{\generalname}}
-% \end{macrocode}
-% Unlike the case in \package{doc}, the formatting of the text in
-% |\saved@macroname| must be included.
-% \end{macro}
-%
-% \begin{macro}{\if@version@key@}
-% The |@version@key@| switch is used for supporting intelligent
-% sorting of version numbers. It is normally false, but at times
-% where the version number argument of |\changes| is being expanded
-% because it will be used as a sort key then it is true. This is used
-% by the |\uintver| macro. Assignments to this switch are as a rule
-% global, since it is never true for any longer time.
-% \changes{prot2.4}{2002/11/01}{Switch added. (LH)}
-% \begin{macrocode}
-\newif\if@version@key@
-\@version@key@false
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\uintver}
-% The |\uintver| command can be used in the \meta{version} argument
-% of |\changes| to ensure that (unsigned) integers are sorted in
-% mathematical rather than ASCII order by \package{makeindex}. Thus
-% if for example version |1.10| is later than version |1.9| then one
-% should write this as
-% \begin{quote}
-% |\changes{1.\uintver{10}}{|\dots
-% \end{quote}
-% The general syntax is
-% \begin{quote}
-% |\uintver|\marg{number}
-% \end{quote}
-% and this expands completely in \TeX's mouth.
-% \changes{prot2.4}{2002/11/01}{Command added. (LH)}
-%
-% The idea is that 0--9 are compared as 0--9, whereas 10--99 are
-% compared as A10--A99, 100--999 are compared as B100-B999, and so on.
-% The comparisons are correct up to 99999, but it could easily be
-% extended further.
-% \begin{macrocode}
-\newcommand*\uintver[1]{%
- \if@version@key@
- \ifnum #1>9
- \ifnum #1<100
- A%
- \else\ifnum #1<\@m
- B%
- \else\ifnum #1<\@M
- C%
- \else
- D%
- \fi\fi\fi
- \fi
- \fi
- \expandafter\@firstofone \expandafter{\number#1}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\changes@}
-% This |\changes@| is a simple redefinition of the \package{doc}
-% macro with the same name. The main difference is that all
-% formatting of the second entry level has been taken out---it is
-% supposed to be provided in |\saved@macroname|---but in addition to
-% that the date is being used as a third level sort key and |\uintver|
-% may be used in the version number to correct the data.
-% \changes{prot2.4}{2002/11/01}{Added support for \cs{uintver}. (LH)}
-%
-% The former makes more sense for projects where the date is
-% increased faster than the version number and it doesn't change
-% anything relevant in the remaining cases. The latter is necessary
-% if version numbers are assigned for example by CVS.
-% \begin{macrocode}
-\def\changes@#1#2#3{%
- \global\@version@key@true
- \protected@edef\@tempa{#1}%
- \global\@version@key@false
- \protected@edef\@tempa{%
- \noexpand\glossary{%
- \@tempa\actualchar#1\levelchar
- \expandafter\@firstoftwo\saved@macroname\actualchar
- \expandafter\@secondoftwo\saved@macroname:\levelchar
- #2\actualchar#3%
- }%
- }%
- \@tempa
- \endgroup
- \@esphack
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@wrglossary}
-% \changes{prot2.2}{2001/02/13}{Redefinition added. (LH)}
-% \begin{macro}{\XD@glossary@keyword}
-% \changes{prot2.2}{2001/02/13}{Macro added. (LH)}
-% The |\@wrglossary| macro is the one which actually writes entries
-% to the \texttt{.glo} file. It is redefined by \package{xdoc} to put
-% the contents of |\XD@glossary@keyword|, rather than a hardwired
-% |\glossaryentry|, in front of the glossary entry.
-% |\XD@glossary@keyword| is redefined by the \package{docindex}
-% package~\cite{docindex}.
-% \begin{macrocode}
-\def\@wrglossary#1{%
- \protected@write\@glossaryfile{}%
- {\XD@glossary@keyword{#1}{\thepage}}%
- \endgroup
- \@esphack
-}
-\@ifundefined{XD@glossary@keyword}{%
- \edef\XD@glossary@keyword{\@backslashchar glossaryentry}%
-}{}
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% \begin{macro}{\definechange}
-% \begin{macro}{\XD@definechange}
-% The |\definechange| command has the syntax
-% \begin{quote}
-% |\definechange|\marg{name}\marg{version}\marg{date}\marg{text}
-% \end{quote}
-% The three last arguments are precisely like the arguments of
-% |\changes|, but |\definechange| doesn't write the change to the
-% \texttt{.glo} file; instead it stores them away as the ``named
-% change'' \meta{name}, for later use in the |\usechange| command.
-% \begin{macrocode}
-\newcommand\definechange{%
- \begingroup\@sanitize
- \catcode`\\\z@ \catcode`\ 10 \MakePercentIgnore
- \expandafter\endgroup \XD@definechange
-}
-\def\XD@definechange#1#2#3#4{\@namedef{XD@ch-#1}{{#2}{#3}{#4}}}
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% The named changes are stored in the
-% \describecsfamily{XD@ch-\meta{name}}|\XD@ch-|\meta{name} family of
-% control sequences. These are parameterless macros with replacement
-% texts of the form
-% \begin{quote}
-% \marg{version}\marg{date}\marg{text}
-% \end{quote}
-%
-% \begin{macro}{\usechange}
-% \begin{macro}{\XD@usechange}
-% \changes{prot2.4}{2002/11/01}{Added support for \cs{uintver}. (LH)}
-% To use a named change defined earlier, one of course uses the
-% command |\usechange|, which has the syntax
-% \begin{quote}
-% |\usechange|\marg{name}
-% \end{quote}
-% The effect of this is similar to that of a general |\changes|
-% (i.e., it appears outside all \texttt{macro}-like environments) with
-% the arguments specified in the |\definechange|, but this also
-% includes the macro (or whatever) name with the page number, using
-% the encapsulation mechanism in \package{makeindex}.
-% \begin{macrocode}
-\newcommand*\usechange[1]{%
- \@ifundefined{XD@ch-#1}{%
- \PackageError{xdoc2}{Named change `#1' undefined}\@eha
- }{%
- \expandafter\expandafter \expandafter\XD@usechange
- \csname XD@ch-#1\endcsname
- }%
-}
-\def\XD@usechange#1#2#3{%
- \def\@tempa{{ }{\generalname}}%
- \ifx \@tempa\saved@macroname
- \let\@tempa\@empty
- \else
- \protected@edef\@tempa{%
- \encapchar labelednumber%
- {\expandafter\@secondoftwo\saved@macroname}%
- }
- \fi
- \global\@version@key@true
- \protected@edef\@tempb{#1}%
- \global\@version@key@false
- \glossary{%
- \@tempb\actualchar #1\levelchar
- \space\actualchar\generalname:\levelchar
- #2\actualchar#3\@tempa
- }%
-}
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% \begin{macro}{\labelednumber}
-% The |\labelednumber| macro belongs to the same category as the
-% |\main| and |\usage| macros, but it takes an extra argument. The
-% syntax is
-% \begin{quote}
-% |\labelednumber|\marg{extra}\marg{number}
-% \end{quote}
-% which typesets as
-% \begin{quote}
-% \meta{number} (\meta{extra})
-% \end{quote}
-% \begin{macrocode}
-\newcommand*\labelednumber[2]{#2\nolinebreak[2] (#1)}
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-% \section{\texttt{macro}-like environments}
-% \label{Sec:Macro-environments}
-%
-% There are several reasons one might want to improve the \texttt{macro}
-% and \texttt{environment} environments.
-% \begin{itemize}
-% \item
-% The code in them cannot be reused if you want to define other
-% things than \TeX\ macros or \LaTeX\ environments. (During the
-% last year or so, I have defined \texttt{macro}-like environments
-% for over a dozen different things.)
-% \item
-% They always put the macro\slash environment name to the left of
-% the current column. This is inappropriate for two-sided printing,
-% as there should be a symmetry over an entire spread in that case.
-% \item
-% The vertical extent of a macro\slash environment name must not
-% exceed that of the |\strut|, since they will otherwise overprint
-% each other when stacked. In particular this makes it impossible to
-% make line breaks in macro names---something which would otherwise
-% be of interest in projects (such as for example \cite{fontinst})
-% where some names are very long and obvious breakpoints are
-% available.
-% \end{itemize}
-% (I'm quite sure there are more things that have annoyed me, but I can't
-% remember which they are right now.) The redefinitions below take care
-% of the all these problems.
-%
-%
-% \subsection{Grabbing arguments}
-%
-% A special feature of the \texttt{macro}-like environments is that (at
-% least some) of their arguments must be given rather special treatment.
-% This special treatment usually consists of making temporary |\catcode|
-% changes for the time these arguments are tokenized---since the standard
-% |\catcode|s for some important characters tend to be unsatisfactory in
-% these cases---but there are other possibilities as well. For that
-% reason, the \package{xdoc} package employs a mechanism that is very
-% similar to that used in the Mittelbach--Rowley--Carlisle
-% \package{xparse} package~\cite{xparse}, although it does not share
-% any code with that. I call this mechanism the argument grabber.
-%
-% The heart of the argument grabber is the macro |\XD@grab@arguments|,
-% which has the following syntax:
-% \begin{quote}
-% |\XD@grab@arguments|\marg{call}\marg{grabber sequence}^^A
-% \meta{arguments to grab}
-% \end{quote}
-% \meta{call} is something which will eventually be placed in front of
-% all the arguments grabbed. It can simply be a single macro, but it
-% can also contain some arguments for that macro. \meta{grabber sequence}
-% is a sequence of grabbers. A \emph{grabber} is typically a macro which
-% grabs the next argument and stores it in a token list together with the
-% arguments that were grabbed before. A grabber could however be some
-% more complex piece of code that performs a similar action.
-%
-% \begin{table}
-% \begin{minipage}{\columnwidth}
-% \begin{center}\small
-% \begin{tabular}{lll>{\raggedright}p{0.3\linewidth}}
-% \textbf{Grabber}& \textbf{Arg.\ type}&
-% \textbf{Catcodes\footnote[1]{Catcode settings key:
-% --- = no change, PL = changes made by \cs{MakePrivateLetters},
-% OB = set the catcode of backslash to ordinary.}}&
-% \textbf{Post-processing}\tabularnewline
-% |\XD@grab@marg|& Mandatory& ---& None\tabularnewline
-% |\XD@grab@oarg|& Optional& ---& None\tabularnewline
-% |\XD@grab@sarg|\marg{char}& 1-char optional&
-% ---& Returns |\BooleanTrue| if the character was present
-% and |\BooleanFalse| otherwise.\tabularnewline
-% |\XD@grab@withprivate|& Mandatory& PL& None\tabularnewline
-% |\XD@grab@asmacro|\footnote[2]{This grabber is probably obsolete;
-% it is included because it grabs the argument in precisely the
-% way that the \texttt{macro} environment of \package{doc} does.}&
-% Mandatory& OB+PL& None\tabularnewline
-% |\XD@grab@harmless|\meta{proc}& Mandatory& ---&
-% |\MakeHarmless| followed by \meta{proc}\tabularnewline
-% |\XD@grab@harmless@oarg|& Optional& ---&
-% |\MakeHarmless|\tabularnewline
-% \multicolumn{3}{l}{\cs{XD@grab@harmless@asmacro}}\tabularnewline
-% & Mandatory& OB+PL&
-% |\MakeHarmless| followed by |\XD@unbackslash|\tabularnewline
-% |\XD@grab@harmless@cs|& Mandatory\footnote[3]{The argument is
-% normally precisely one control sequence.}& PL&
-% |\string| whilst |\escapechar| is set to \textminus1,
-% followed by |\MakeHarmless|\tabularnewline
-% \multicolumn{3}{l}{^^A
-% \cs{XD@grab@harmless@withprivate}\marg{proc}}\\
-% & Mandatory& PL& |\MakeHarmless| followed by \meta{proc}
-% \end{tabular}
-% \end{center}
-% \end{minipage}
-%
-% \caption{Grabbers currently defined by \package{xdoc}}
-% \label{Tab:Grabbers}
-% \end{table}
-%
-% When arguments are being grabbed, the \meta{call} is stored in |\toks@|
-% and the arguments are appended to |\toks@| as they are grabbed. For
-% that reason, a grabber may not itself call |\XD@grab@arguments|, nor
-% may it use a command defined through \package{xparse}'s
-% |\Declare|\-|Document|\-|Command| or anything else which uses this
-% token register in a bad way.
-%
-% When a grabber is expanded, it is in the context
-% \begin{quote}
-% \meta{grabber}\,\meta{following grabbers}\,|\XD@endgrab|\penalty0
-% \thinspace\meta{ungrabbed arguments}
-% \end{quote}
-% After it has grabbed its argument, everything of the above should be
-% put back except for the \meta{grabber} and the argument it grabbed.
-% The argument itself should be wrapped in a group and appended to
-% |\toks@|.
-%
-% \textbf{Note:} In prototype~2 the format in which the argument grabber
-% returns the grabbed arguments was changed so that it can now be
-% unified with argument grabbing mechanisms of \package{xparse}. I
-% think this should be done some time in the future, but for the moment
-% it seems best not to rely on \LaTeXplus\ packages like \package{xparse}.
-%
-% \begin{macro}{\XD@grab@arguments}
-% \begin{macro}{\XD@endgrab}
-% \changes{prot2}{2000/07/13}{The grabbed arguments are no longer
-% returned wrapped up in a group. There is no longer a need for
-% storing the base call separately in \cs{toks}\,\texttt{2}. (LH)}
-% The |\XD@grab@arguments| and |\XD@endgrab| macros set up and finish
-% off argument grabbing.
-% \begin{macrocode}
-\def\XD@grab@arguments#1#2{%
- \toks@={#1}%
- #2\XD@endgrab
-}
-% \end{macrocode}
-% \begin{macrocode}
-\def\XD@endgrab{\the\toks@}
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% \begin{macro}{\XD@grab@marg}
-% A grabber for ordinary arguments, like the \texttt{m} arguments of
-% \package{xparse}.
-% \begin{macrocode}
-\long\def\XD@grab@marg#1\XD@endgrab#2{%
- \addto@hook\toks@{{#2}}%
- #1\XD@endgrab
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\XD@grab@oarg}
-% \begin{macro}{\XD@grab@oarg@}
-% A grabber for optional arguments (\texttt{o} arguments in
-% \package{xparse}). It looks ahead for an optional argument and
-% grabs that argument if there was one. If it doesn't find anything
-% which looks like an optional argument (i.e., if the next character
-% isn't a |[|), then the grabber will not grab anything (although it
-% may have tokenized the next argument), but it will still append
-% |\NoValue| to |\toks@|.
-%
-% \begin{macrocode}
-\def\XD@grab@oarg#1\XD@endgrab{%
- \@ifnextchar[{\XD@grab@oarg@{#1}}{%
- \addto@hook\toks@\NoValue
- #1\XD@endgrab
- }%
-}
-% \end{macrocode}
-% |\XD@grab@oarg@| is a helper to remove the brackets around the
-% optional argument.
-% \begin{macrocode}
-\long\def\XD@grab@oarg@#1[#2]{%
- \addto@hook\toks@{{#2}}%
- #1\XD@endgrab
-}
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% \begin{macro}{\XD@grab@sarg}
-% A grabber for `star'-type arguments (\texttt{s} arguments in
-% \package{xparse}). The syntax is
-% \begin{quote}
-% |\XD@grab@sarg|\marg{char}
-% \end{quote}
-% It looks ahead to see if the next character is the \meta{char}. In
-% that case it gobbles it and adds a |\BooleanTrue| to the grabbed
-% arguments, otherwise it adds a |\BooleanFalse| to the grabbed
-% arguments.
-% \changes{prot2.3}{2001/11/03}{Macro added. (LH)}
-% \begin{macrocode}
-\def\XD@grab@sarg#1#2\XD@endgrab{%
- \@ifnextchar#1{%
- \addto@hook\toks@\BooleanTrue
- \@firstoftwo{#2\XD@endgrab}%
- }{%
- \addto@hook\toks@\BooleanFalse
- #2\XD@endgrab
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\XD@grab@withprivate}
-% |\XD@grab@withprivate| is like |\XD@grab@marg| but grabs the
-% argument when the catcodes are as set by |\MakePrivateLetters|.
-% \begin{macrocode}
-\def\XD@grab@withprivate{%
- \begingroup\MakePrivateLetters\relax\expandafter\endgroup
- \XD@grab@marg
-}
-% \end{macrocode}
-% To think about: Perhaps things like |\XD@grab@withprivate| should
-% rather be considered a modifier for a grabber? Instead of having
-% |\XD@grab@withprivate| be the entire grabber, one could let the
-% grabber be something like
-% \begin{quote}
-% |\XD@grab@withprivate\XD@grab@marg|
-% \end{quote}
-% where the |\XD@grab@withprivate| should only expand to
-% \begin{quote}
-% |\begingroup\MakePrivateLetters\relax\expandafter\endgroup|
-% \end{quote}
-% \end{macro}
-%
-% \begin{macro}{\XD@grab@asmacro}
-% |\XD@grab@asmacro| is very similar to |\XD@grab@withprivate|, but it
-% sees to that the catcode settings are exactly those used by
-% \package{doc}'s \texttt{macro} environment.
-% \begin{macrocode}
-\def\XD@grab@asmacro{%
- \begingroup
- \catcode`\\=12 \MakePrivateLetters\relax
- \expandafter\endgroup
- \XD@grab@marg
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\XD@grab@harmless}
-% \begin{macro}{\XD@grab@harmless@oarg}
-% \changes{prot2.1}{2000/09/30}{Macro added. (LH)}
-% \begin{macro}{\XD@grab@harmless@oarg@}
-% \changes{prot2.1}{2000/09/30}{Macro added. (LH)}
-% The |\XD@grab@harmless| grabber grabs one mandatory argument and
-% converts it to a harmless character string, which it contributes to
-% the list of arguments. The syntax is
-% \begin{quote}
-% |\XD@grab@harmless|\marg{post-processing}
-% \end{quote}
-% where \meta{post-processing} are commands that will be performed
-% after the grabbed argument has been made harmless, but before it is
-% contributed to the list of arguments. Thus the
-% \meta{post-processing} can modify the argument some more, but
-% \meta{post-processing} can just as well be empty.
-% \begin{macrocode}
-\def\XD@grab@harmless#1#2\XD@endgrab#3{%
- \MakeHarmless\@tempa{#3}%
- #1%
- \toks@=\expandafter{\the\expandafter\toks@ \expandafter{\@tempa}}%
- #2\XD@endgrab
-}
-% \end{macrocode}
-%
-% The |\XD@grab@harmless@oarg| grabber grabs one optional argument and
-% converts it to a harmless character string. This string is
-% contributed to the list of arguments if the optional argument, or
-% else the token |\NoValue| is contributed instead.
-% \begin{macrocode}
-\def\XD@grab@harmless@oarg#1\XD@endgrab{%
- \@ifnextchar[{\XD@grab@harmless@oarg@{#1}}{%
- \addto@hook\toks@\NoValue
- #1\XD@endgrab
- }%
-}
-% \end{macrocode}
-% |\XD@grab@harmless@oarg@| is a helper to remove the brackets around
-% the optional argument.
-% \begin{macrocode}
-\long\def\XD@grab@harmless@oarg@#1[#2]{%
- \MakeHarmless\@tempa{#2}%
- \toks@=\expandafter{\the\expandafter\toks@ \expandafter{\@tempa}}%
- #1\XD@endgrab
-}
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}
-%
-% \begin{macro}{\XD@grab@harmless@asmacro}
-% \begin{macro}{\XD@grab@harmless@cs}
-% \begin{macro}{\XD@grab@harmless@cs@}
-% The |\XD@grab@harmless@asmacro| grabber combines the features of
-% |\XD@grab@|\B|asmacro| and |\XD@grab@harmless|, since when the
-% argument to grab is tokenized the catcode of |\| is set to 12 and
-% the catcode assignments in |\MakePrivateLetters| are made. Then the
-% grabbed argument is converted to a harmless character sequence, and
-% finally the first character is removed if it is a backslash.
-% \begin{macrocode}
-\def\XD@grab@harmless@asmacro{%
- \begingroup
- \catcode`\\=12 \MakePrivateLetters\relax
- \expandafter\endgroup
- \XD@grab@harmless{%
- \protected@edef\@tempa{%
- \expandafter\XD@unbackslash\@tempa\@empty
- }%
- }%
-}
-% \end{macrocode}
-%
-% The |\XD@grab@harmless@cs| grabber is for use with commands like
-% \package{doc}'s |\Describe|\-|Macro|, which take an actual control
-% sequence as the argument. It grabs one argument while having
-% catcodes changed as indicated by |\Make|\-|Private|\-|Letters|,
-% |\string|s the argument while |\escapechar| is |-1| (so that there
-% is no escape character inserted), and continues as
-% |\XD@grab@harmless|.
-% \begin{macrocode}
-\def\XD@grab@harmless@cs{%
- \begingroup
- \MakePrivateLetters\relax
- \expandafter\endgroup \XD@grab@harmless@cs@
-}
-% \end{macrocode}
-% \begin{macrocode}
-\long\def\XD@grab@harmless@cs@#1\XD@endgrab#2{%
- \begingroup
- \escapechar=\m@ne
- \expandafter\endgroup
- \expandafter\MakeHarmless \expandafter\@tempa
- \expandafter{\string#2}%
- \toks@=\expandafter{\the\expandafter\toks@ \expandafter{\@tempa}}%
- #1\XD@endgrab
-}
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}
-%
-% \begin{macro}{\XD@grab@harmless@withprivate}
-% |\XD@grab@harmless@withprivate| is like |\XD@grab@harmless| but
-% grabs the argument when the catcodes are as set by
-% |\Make|\-|Private|\-|Letters|.
-% Like |\XD@|\B|grab@|\B|harmless|, |\XD@grab@|\B|harmless@|\B
-% |withprivate| takes an argument which can contain code that
-% modifies the harmless character string after it has been formed.
-% \begin{macrocode}
-\def\XD@grab@harmless@withprivate{%
- \begingroup\MakePrivateLetters\relax\expandafter\endgroup
- \XD@grab@harmless
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{The \cs{XD@m@cro} and \cs{NewMacroEnvironment} commands}
-%
-% In \package{doc} the macro that contains most of the code for the
-% \texttt{macro} and \texttt{environment} environments is called
-% |\m@cro@|. In \package{xdoc} the corresponding macro is |\XD@m@cro|.
-%
-% At this point, it is helpful to recall what |\m@cro@| actually does.
-% It can be summarized in the following four points:
-% \begin{itemize}
-% \item It starts a |\trivlist|.\footnote{Seriously, can someone
-% explain to me why it seems just about every non-math \LaTeX\
-% environment that doesn't start a \cs{list} starts a \cs{trivlist}?
-% What good does all these \cs{trivlist}s do? Is it (a)~that people
-% just like the basic design, (b)~that there's some deep technical
-% reason, or (c)~that people in general doesn't have a clue but all
-% other environments do that so it's best to include it just in
-% case?}
-% \item It prints the name of the macro\slash environment that is
-% about to be defined in the margin.
-% \item It writes an index entry (and inhibits cross-referencing of
-% the macro inside the environment).
-% \item It sets |\saved@macroname| to the name of the macro\slash
-% environment (for use by |\changes|).
-% \end{itemize}
-%
-% The first and fourth points are simple, and commands for the third
-% were defined in Section~\ref{Sec:Indexing}, but the second point
-% needs a few helper macros.
-%
-%
-% \begin{macro}{\XDStackItemLabels}
-% \changes{prot2}{2000/07/28}{Made it work like a \cs{vtop} (but hide
-% the height) if \cs{XD@macro@dimen} is \texttt{-}\cs{maxdimen}.
-% (LH)}
-% \begin{macro}{\XD@macro@dimen}
-% The |\XDStackItemLabels| macro is a definition of |\makelabel| which
-% is used in the \texttt{macro}-like environments for stacking the
-% names printed by subsequent environments under each other. It makes
-% a box which has zero height and depth (it should have zero width as
-% well, but that is left as a restriction on the argument) and the
-% printed names will be stacked if the reference points of the
-% subsequent boxes generated by |\XD|\-|Stack|\-|Item|\-|Labels|
-% coincide.
-%
-% |\XD@macro@dimen| (always assigned globally) stores the vertical
-% distance from the reference point of the box that
-% |\XD|\-|Stack|\-|Item|\-|Labels| makes to the (bottommost) baseline
-% of the previous printed name. |\XD@macro@dimen| is updated by each
-% new |\XD|\-|Stack|\-|Item|\-|Labels|. The baseline of the next printed
-% name will be put one |\baselineskip| lower than that of the previous
-% printed name, except for when |\XD@macro@dimen| is |-\maxdimen| (see
-% below). To avoid that printed names clash into each other, this
-% additional |\baselineskip| is generated as normal interline glue
-% where the upper box has the same depth as a strut and the new value
-% of |\XD@macro@dimen| is measured in such a way that the printed
-% name's depth below the nominal baseline will not exceed the depth of
-% a strut (that's what the |\boxmaxdepth| assignment is for).
-% When |\XD@macro@dimen| is |-\maxdimen| the (topmost) baseline of the
-% printed name will instead go through the reference point of the box.
-% This case is intended for the first item label in a stack.
-%
-% The reason |\everypar| is cleared is that that is where the list
-% environments put the commands which actually insert the item label
-% into the paragraph. If that code gets executed inside |\makelabel|,
-% the list environments get seriously confused with not at all nice
-% consequences.
-% \begin{macrocode}
-\def\XDStackItemLabels#1{%
- \setbox\z@=\vbox{%
- \ifdim \XD@macro@dimen=-\maxdimen
- \setbox\z@=\vtop{%
- \color@begingroup
- \everypar={}%
- #1%
- \color@endgroup
- }%
- \kern-\ht\z@
- \unvbox\z@
- \else
- \color@begingroup
- \everypar={}%
- \kern\XD@macro@dimen
- \setbox\z@=\copy\strutbox \ht\z@=\z@ \box\z@
- #1%
- \color@endgroup
- \fi
- \boxmaxdepth=\dp\strutbox
- }%
- \global\XD@macro@dimen=\ht\z@
- \vtop to\z@{\unvbox\z@ \vss}%
-}
-% \end{macrocode}
-% \begin{macrocode}
-\newdimen\XD@macro@dimen
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% \begin{macro}{\XDToMargin}
-% \changes{prot2.1}{2000/11/26}{New name for \cs{XD@to@margin}. (LH)}
-% The |\XDToMargin| macro takes one argument, which is assumed to be
-% some horizontal material, and puts that material in a |\hbox| of
-% width zero, horizontally shifted out into the the outer margin, in
-% such a way that longer arguments extend further out. |\marginparsep|
-% is used as the distance between the argument and the main galley. All
-% these placements assume that the |\hbox| will be put |\labelsep| to
-% the left of the beginning of a nonindented paragraph, since that is
-% where it will be put by the |\item| of a |\trivlist|.
-%
-% A question is where the margin should be considered to start if the
-% |\@total|\-|left|\-|margin| isn't zero. The corresponding
-% \package{doc} action would be to consider the margin as everything
-% outside the |\linewidth| width, but I don't think that would be
-% appropriate here (especially not since \package{doc} always puts the
-% codeline numbers at the edge of the |\textwidth| width).
-% \begin{macrocode}
-\newcommand\XDToMargin[1]{%
- \hb@xt@\z@{%
- \IfOddPageSituation{%
- \dimen@=-\@totalleftmargin
- \advance \dimen@ \labelsep
- \advance \dimen@ \textwidth
- \advance \dimen@ \marginparsep
- \kern\dimen@
- }\hss
- #1%
- \IfOddPageSituation\hss{%
- \dimen@=\@totalleftmargin
- \advance \dimen@ -\labelsep
- \advance \dimen@ \marginparsep
- \kern\dimen@
- }%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\XDParToMargin}
-% The |\XDParToMargin| command is in syntax and use similar to the
-% |\XDToMargin| command, but it will try to linebreak an argument
-% that is too long rather than letting it extend outside the paper.
-%
-% The implementation first tries to break the argument without
-% considering justification or positioning, but with a rather high
-% |\linepenalty|. If the result of that try is a single line paragraph
-% then |\XDToMargin| will be called to actually typeset the argument.
-% Otherwise the argument is typeset as a paragraph which gets
-% displaced out into the outer margin by giving |\leftskip| and
-% |\rightskip| nonzero natural widths. The practical line width in
-% the paragraph is the |\marginparwidth|, but the hboxes containing
-% the individual lines will have width zero. The first line of the
-% paragraph will be set flush outwards, the last line of the paragraph
-% will be set flush inwards, and the remaining lines will be centered.
-%
-% \changes{prot2.1}{2000/11/26}{Command added. (LH)}
-% \begin{macrocode}
-\newcommand\XDParToMargin[1]{%
- \parindent=\z@
- \setbox\z@=\vbox{%
- \leftskip=\z@skip
- \rightskip=\z@\@plus 1fil%
- \parfillskip=\z@skip
- \hsize=\marginparwidth
- \linepenalty=1000%
- \color@begingroup
- \noindent\ignorespaces #1\@@par
- \color@endgroup
- \expandafter}%
- \expandafter\ifnum \the\prevgraf<\tw@
- \XDToMargin{#1}%
- \else
- \hsize=\z@
- \leftskip=\z@ \@plus \marginparwidth
- \rightskip=\leftskip
- \IfOddPageSituation{%
- \dimen@=-\@totalleftmargin
- \advance \dimen@ \labelsep
- \advance \dimen@ \textwidth
- \advance \dimen@ \marginparsep
- \advance \leftskip \dimen@
- \advance \rightskip -\dimen@ \@minus \p@
- \advance \rightskip -\marginparwidth
- \parfillskip=\z@ \@plus 1fil%
- }{%
- \dimen@=\@totalleftmargin
- \advance \dimen@ -\labelsep
- \advance \dimen@ \marginparsep
- \advance \leftskip -\dimen@ \@minus \p@
- \advance \leftskip -\marginparwidth
- \advance \rightskip \dimen@
- \parfillskip=\z@ \@plus -\marginparwidth%
- }
- \noindent\nobreak\hskip\parfillskip
- \ignorespaces #1\@@par
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% In the following I exploit the implementation of the |\item| command
-% in a slightly hackish way. Instead of starting a new paragraph with
-% the item label (which is what one at first would believe |\item|
-% does), |\item| actually puts the label in the box |\@labels| register,
-% and stores code in |\everypar| that inserts that box into the new
-% paragraph. Therefore I can make sure that various |\write| whatsits
-% that need to be as the same page as an |\item| label will be there by
-% adding them to the contents of the |\@labels| box. This seems more
-% reliable to me than putting them on the vertical list followed by a
-% |\nobreak| as \package{doc} does, but that would probably work as
-% well.
-%
-% [A funny thing in that which confused me a while was the question of
-% whether the |\box| command that inserts the box into the paragraph and
-% simultaneously clears the register acted globally or locally. It turns
-% out that the question was ill-posed, as the distinction between local
-% and global assignments is determined by what restore items they put
-% on \TeX's save stack. The |\box| command doesn't put anything there,
-% so the assignment it makes will essentially appear at the same
-% grouping level as the |\setbox| command that set the contents of the
-% box register. As all |\setbox|es for the |\@labels| box register are
-% global, the box register will be globally void after |\box\@labels|.]
-%
-%
-% \begin{macro}{\XD@m@cro}
-% \changes{prot2}{2000/07/24}{Put the \meta{changes} argument before
-% the \meta{assign} argument. Executing the \meta{assign} code
-% after the \meta{changes} \cs{edef}. Changed the descriptions of
-% these arguments a little. (LH)}
-% \changes{prot2.1}{2000/11/26}{Removed \cs{XDToMargin} from the
-% argument of \cs{item}. It should now be included in \#1
-% instead. (LH)}
-% This is the workhorse of all the \texttt{macro}-like environments.
-% It calls |\trivlist| and sets related parameters, prints the
-% ``macro'' name in the proper place, updates the representation of
-% the ``macro'' name that |\changes| will use, and writes appropriate
-% index entries (possibly making temporary changes in
-% cross-referencing). Exactly what these tasks consist of can vary
-% quite a lot between different \texttt{macro}-like environments, and
-% therefore the |\XD@m@cro| macro has the following syntax:
-% \begin{quote}
-% |\XD@m@cro|\marg{print}\marg{index}\marg{changes}\marg{assign}
-% \end{quote}
-% \meta{print}, \meta{index}, and \meta{assign} are simply the
-% commands for printing the ``macro'' name as it should appear in the
-% margin, generating the index entries for this \texttt{macro}-like
-% environment, and making whatever additional local assignments that
-% are needed for this environment (usually a couple of
-% |\Do|\-|Not|\-|Index|\-|Harmless| commands, if anything at all)
-% respectively. At the time \meta{index} is executed,
-% \texttt{codelineno} holds the number of the \emph{next} codeline.
-% \meta{changes}, finally, is code that will be put in the context
-% \begin{quote}
-% |\protected@edef\saved@macroname{|\meta{changes}|}|
-% \end{quote}
-% to set the |\saved@macroname| macro (for |\changes|).
-% \begin{macrocode}
-\def\XD@m@cro#1#2#3#4{%
- \topsep\MacroTopsep
- \trivlist
- \global\setbox\@labels=\hbox{%
- \unhbox\@labels
- \if@inlabel \else
- \global\XD@macro@dimen=-\maxdimen
- \StepPageSituation
- \RecordPageSituation
- \fi
- \advance \c@codelineno \@ne
- #2%
- }%
- \let\makelabel\XDStackItemLabels
- \item[#1]%
- \protected@edef\saved@macroname{#3}%
- #4%
- \ignorespaces
-}
-% \end{macrocode}
-% \end{macro}
-%
-% In the first \package{xdoc} prototype, the \texttt{macro}-like
-% environments were implemented so that each new environment only used
-% two control sequences (|\|\meta{env} and |\end|\meta{env}), which is
-% the absolute minimum. This implementation worked fine for
-% single argument environments, but the number of helper macros that
-% would have to be introduced to deal with multiple argument
-% environments exceeded what could be considered reasonable. Therefore
-% the second prototype claims a third control sequence for the
-% implementation of a \texttt{macro}-like environment \meta{env}, namely
-% |\\|\meta{env}, which is also used by normal \LaTeXe\ environments
-% which take an optional argument.
-%
-% It should also be mentioned that the implementation in the first
-% prototype required that most of the code in |\|\meta{env} had to be
-% written in a very special way. Instead of using the |#|\meta{digit}
-% notation for the arguments and write straightforward \LaTeX\ code, one
-% had to express everything using macros which operate on arguments ``up
-% ahead'' (immediately after the code you can specify). This curious
-% coding model made it out of the question to create a class designer
-% interface for defining new \texttt{macro}-like environments, but in
-% the second \package{xdoc} prototype it is quite simple to do something
-% of that sort: the command name is |\New|\-|Macro|\-|Environment|.
-%
-% \begin{macro}{\NewMacroEnvironment}
-% \changes{prot2}{2000/07/13}{Command added. (LH)}
-% \changes{prot2}{2000/07/24}{Changed syntax in conformity with the
-% syntax change in \cs{XD@m@cro}. (LH)}
-% \changes{prot2.1}{2000/11/26}{Introduced star form with different
-% semanics for the \meta{print} argument. This uses the helper
-% macros \cs{XD@NewMacroEnvironment} and
-% \cs{XD@NewMacroEnvironment@}. (LH)}
-% \begin{macro}{\XD@NewMacroEnvironment}
-% \begin{macro}{\XD@NewMacroEnvironment@}
-% The |\NewMacroEnvironment| command is used for defining new
-% \texttt{macro}-like environments. It has the syntaxes
-% \begin{quote}
-% |\NewMacroEnvironment|\marg{name}\marg{grabbers}\marg{numargs}\\
-% \vadjust{}\hfill\marg{unjust-print}\marg{index}\marg{changes}^^A
-% \marg{assign}\\
-% |\NewMacroEnvironment*|\marg{name}\marg{grabbers}\marg{numargs}\\
-% \vadjust{}\hfill\marg{print}\marg{index}\marg{changes}\marg{assign}
-% \end{quote}
-% where \meta{name} is the name of the environment to define,
-% \meta{grabbers} is a sequence of argument grabbers, \meta{numargs}
-% is the number of arguments that the grabbers will grab, and
-% \meta{print}, \meta{index}, \meta{changes}, and \meta{assign} are
-% code that will be put in the respective arguments of |\XD@m@cro|.
-% In the four last arguments, argument specifiers |#1| to
-% |#|\meta{numargs} inclusive can be used do mean the arguments that
-% were grabbed by the sequence of grabbers.
-%
-% The argument grabbers that are currently made available by the
-% \package{xdoc} package are listed in Table~\ref{Tab:Grabbers} on
-% page~\pageref{Tab:Grabbers}.
-%
-% The \meta{print} code will be executed while \TeX\ is in internal
-% vertical mode and it should put one or several hboxes of width zero
-% onto the vertical list. The contents of these boxes should be some
-% amount of text which will appear displaced out into the outer margin
-% on the page when the reference point of the box appears |\labelsep|
-% to the left of the left edge of the line. The easiest way of
-% achieveing this is to use a \meta{print} of the form
-% \begin{quote}
-% |\XDToMargin|\marg{unjust-print}
-% \end{quote}
-% and this is exactly what the non-star form of |\NewMacroEnvironment|
-% does by default.
-%
-% \begin{macrocode}
-\newcommand\NewMacroEnvironment{%
- \@ifstar\XD@NewMacroEnvironment\XD@NewMacroEnvironment@
-}
-\def\XD@NewMacroEnvironment@#1#2#3#4{%
- \XD@NewMacroEnvironment{#1}{#2}{#3}{\XDToMargin{#4}}%
-}
-\def\XD@NewMacroEnvironment#1#2#3#4#5#6#7{%
- \expandafter\@ifdefinable\csname#1\endcsname{%
- \expandafter\def \csname#1\expandafter\endcsname
- \expandafter{\expandafter\XD@grab@arguments
- \csname\@backslashchar#1\endcsname{#2}}%
- \let\l@ngrel@x\relax
- \expandafter\@yargdef \csname\@backslashchar#1\endcsname \@ne
- {#3}{\XD@m@cro{#4}{#5}{#6}{#7}}%
- \expandafter\let \csname end#1\endcsname \endtrivlist
- }%
-}
-% \end{macrocode}
-% The \meta{grabbers} argument---in which one specifies a list of
-% internal macros---is not how the interface should really look, but I
-% think it will have to do for now. The final interface will probably
-% use something like the argument specifications of
-% |\Declare|\-|Document|\-|Command|, but there is little point in
-% implementing that before \package{xparse} has gotten its final form.
-% \end{macro}\end{macro}\end{macro}
-%
-% The macro |\@yargdef| used above should perhaps be checked so that its
-% syntax hasn't changed, but since |\@yargdef| quite recently
-% (\texttt{ltdefn.dtx} v\,1.3c, 1999/01/18) was completely reimplemented
-% without any change in the syntax (despite the fact that the syntax is
-% afterwards rather peculiar), I think it can be assumed that the syntax
-% will not change in \LaTeXe.
-%
-%
-%
-% \subsection{Reimplementing \texttt{macro} and \texttt{environment}}
-% \label{Ssec:Macro&environment}
-%
-% Well, then how does one reimplement the \texttt{macro} and
-% \texttt{environment} environments using |\XD@m@cro|? We shall soon
-% see, but first it is convenient to define a utility macro.
-%
-% \changes{prot2}{2000/07/14}{Lots of utility macros were removed:
-% \cs{XDWrapText}, \cs{XDAltWrapText}, \cs{XDSortAndText},
-% \cs{MultipleApply}, \cs{ApplicableUsageIndex}, and
-% \cs{XD@index@family}. (LH)}
-%
-% \begin{macro}{\XDMainIndex}
-% \changes{prot2}{2000/07/14}{New name and syntax for
-% \cs{ApplicableMainIndex}. (LH)}
-% The |\XDMainIndex| macro is an abbreviation to save a couple of
-% tokens in a very frequent call to |\IndexEntry|. It has the syntax
-% \begin{quote}
-% |\XDMainIndex|\marg{argument}
-% \end{quote}
-% and that expands to
-% \begin{quote}
-% |\IndexEntry|\marg{argument}|{main}{\TheXDIndexNumber}|
-% \end{quote}
-% \begin{macrocode}
-\newcommand\XDMainIndex[1]{\IndexEntry{#1}{main}{\TheXDIndexNumber}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{environment}{macro}
-% \changes{prot2.1}{2000/11/15}{Using \cs{MakeSortKey} to make index
-% entry. (LH)}
-% \begin{environment}{environment}
-% It is very easy to implement \texttt{macro} and \texttt{environment}
-% environments which behave pretty much as in \package{doc} using the
-% |\New|\-|Macro|\-|Environment| command. The important difference
-% is that in \package{doc} everything that distinguished the two
-% environments was to be found in various helper macros, but here all
-% that code is in the |\\macro| and |\\environment| macros. Thus to
-% define one new \texttt{macro}-like environment, one doesn't have to
-% define six or so new macros---everything can be handled in one
-% definition.
-%
-% The reason for the |\let| commands below is of course that
-% \texttt{macro} and \texttt{environment} are already defined, and
-% there is no |\Renew|\-|Macro|\-|Environment| command. It could
-% perhaps have been better if |\New|\-|Macro|\-|Environment| had
-% behaved like |\Declare|\-|Robust|\-|Command|, but I don't think that
-% is an important problem for the moment.
-% \begin{macrocode}
-\let\macro=\relax
-\let\endmacro=\relax
-\NewMacroEnvironment{macro}{\XD@grab@harmless@asmacro}{1}
- {\MacroFont\Bslash#1}
- {\MakeSortKey\@tempa{#1}{}%
- \XDMainIndex{\LevelSorted{\@tempa}{\texttt{\Bslash#1}}}}
- {{#1}{\texttt{\Bslash#1}}}
- {\DoNotIndexHarmless{#1}}
-% \end{macrocode}
-% \begin{macrocode}
-\let\environment=\relax
-\let\endenvironment=\relax
-\NewMacroEnvironment{environment}{\XD@grab@harmless@asmacro}{1}
- {\MacroFont#1}
- {\XDMainIndex{\LevelSorted{#1}{\texttt{#1} (environment)}}%
- \XDMainIndex{%
- \LevelSame{environments:}\LevelSorted{#1}{\texttt{#1}}%
- }}%
- {{#1}{\texttt{#1}}}
- {}%
-% \end{macrocode}
-% \end{environment}\end{environment}
-%
-%
-% \subsection{Further examples of \texttt{macro}-like environments}
-% \label{Ssec:More macros}
-%
-% \begin{environment}{option}
-% The \texttt{option} environment is for class\slash package options.
-% IMHO, something like this environment should have been added to
-% \package{doc} years ago!
-%
-% \begin{macrocode}
-\NewMacroEnvironment{option}{\XD@grab@harmless\relax}{1}
- {\MacroFont#1 \normalfont option}
- {\XDMainIndex{\LevelSorted{#1}{\texttt{#1} option}}%
- \XDMainIndex{%
- \LevelSame{options:}\LevelSorted{#1}{\texttt{#1}}%
- }}%
- {{#1 option}{\texttt{#1} option}}
- {}%
-% \end{macrocode}
-% \end{environment}
-%
-% \begin{environment}{switch}
-% \changes{prot2.1}{2000/11/18}{Using \cs{MakeSortKey}. (LH)}
-% The \texttt{switch} environment is for switches created by
-% |\newif| (\PlainTeX\ style).
-% \begin{macrocode}
-\NewMacroEnvironment{switch}{\XD@grab@harmless\relax}{1}
- {\MacroFont#1 \normalfont switch}%
-% \end{macrocode}
-% What makes switches different from the other \texttt{macro}-like
-% environments defined here is the large number of index entries it
-% makes. For a switch \meta{sw} it first makes one under the `switches:'
-% heading:
-% \begin{macrocode}
- {%
- \MakeSortKey\XD@last@key{#1}{}%
- \XDMainIndex{%
- \LevelSame{switches:}\LevelSorted{\XD@last@key}{\texttt{#1}}%
- }%
-% \end{macrocode}
-% Second it makes a `\meta{sw} switch' entry:
-% \begin{macrocode}
- \XDMainIndex{\LevelSorted{\XD@last@key}{\texttt{#1} switch}}%
-% \end{macrocode}
-% Third it makes an entry for the macro |\if|\meta{sw}. The sort key
-% for this entry is \emph{not} subjected to |\MakeSortKey| because
-% no reasonable operator will act on the |if| prefix (an operator
-% which acts on |if| could do rather strange things to e.g. |\ifnum|).
-% \begin{macrocode}
- \XDMainIndex{\LevelSorted{if#1}{\texttt{\Bslash if#1}}}%
-% \end{macrocode}
-% Fourth it makes an entry for the macro |\|\meta{sw}|false|:
-% \begin{macrocode}
- \MakeSortKey\@tempa{#1false}{}%
- \XDMainIndex{\LevelSorted{\@tempa}{\texttt{\Bslash#1false}}}%
-% \end{macrocode}
-% Finally it makes an entry for the macro |\|\meta{sw}|true|:
-% \begin{macrocode}
- \MakeSortKey\@tempa{#1true}{}%
- \XDMainIndex{\LevelSorted{\@tempa}{\texttt{\Bslash#1true}}}%
- }%
-% \end{macrocode}
-% The |\changes| heading, on the other hand, is trivial.
-% \begin{macrocode}
- {{#1}{\texttt{#1} switch}}
-% \end{macrocode}
-% Finally, \texttt{switch} should turn off indexing of the three macros
-% it makes \texttt{main} entries for, since \package{makeindex} will
-% otherwise complain.
-% \begin{macrocode}
- {\DoNotIndexHarmless{if#1}%
- \DoNotIndexHarmless{#1false}%
- \DoNotIndexHarmless{#1true}}%
-%</pkg>
-% \end{macrocode}
-% \end{environment}
-%
-%
-% To end this section, there now follows two examples which are not
-% part of the package as they are very specific, but which have been
-% included here because they illustrate that \texttt{macro}-like
-% environments may have several arguments.
-%
-% \begin{environment}{enccommand}
-% \begin{environment}{enccomposite}
-% The \texttt{enccommand} and \texttt{enccomposite} environments can
-% be used for marking up sources for encoding definition files and the
-% like. \texttt{enccommand} is for encoding-specific commands and has
-% the syntax
-% \begin{quote}
-% |\begin{enccommand}|\marg{command}\oarg{encoding}
-% \end{quote}
-% where \meta{command} is the encoding-specific command and
-% \meta{encoding} is the encoding that this definition is for. If the
-% \meta{encoding} is omitted then the \texttt{enccommand} is assumed
-% to be for the default definition of the command.
-%
-% \texttt{enccomposite} is for composites of encoding-specific
-% commands (defined for example using |\Declare|\-|Text|\-|Composite|).
-% It has the syntax
-% \begin{quote}
-% |\begin{enccomposite}|\marg{command}\marg{encoding}\marg{argument}
-% \end{quote}
-% where \meta{command} and \meta{encoding} are as for
-% \texttt{enccommand} and \meta{argument} is the argument with which
-% the command is being composed.
-%
-% The marginal headings these commands print are the actual control
-% sequences in which the definitions are stored.
-% \begin{macrocode}
-%<*enccmds>
-\NewMacroEnvironment{enccommand}{%
- \XD@grab@harmless@asmacro \XD@grab@oarg
-}{2}{\MacroFont\Bslash \ifx\NoValue#2?\else#2\fi \Bslash #1}{%
- \XDMainIndex{%
- \LevelSorted{#1}{\texttt{\Bslash#1}}%
- \ifx \NoValue#2%
- \LevelSame{default}%
- \else
- \LevelSorted{#2}{\texttt{#2} encoding}%
- \fi
- }%
-}{{#1}{\texttt{\Bslash#1}}}{\DoNotIndexHarmless{#1}}
-% \end{macrocode}
-% \begin{macrocode}
-\NewMacroEnvironment{enccomposite}{%
- \XD@grab@harmless@asmacro \XD@grab@marg \XD@grab@harmless\relax
-}{3}{\MacroFont\Bslash#2\Bslash#1-#3}{%
- \XDMainIndex{%
- \LevelSorted{#1}{\texttt{\Bslash#1}}%
- \LevelSorted{#2}{\texttt{#2} encoding}%
- \LevelSorted{\XD@unbackslash#3\@empty}{\texttt{#3} composite}%
- }%
-}{{#1}{\texttt{\Bslash#1}}}{\DoNotIndexHarmless{#1}}
-%</enccmds>
-% \end{macrocode}
-% In the file \texttt{cyoutenc.dtx} the definitions of many
-% encoding-specific commands are written so that the same line of
-% code can work is all four files \texttt{t2aenc.def},
-% \texttt{t2benc.def}, \texttt{t2cenc.def}, and \texttt{x2enc.def}.
-% Therefore the \meta{encoding} argument of the \texttt{enccommand}
-% and \texttt{enccomposite} environments should perhaps rather be a
-% comma-separated list of encodings than a single encoding, but that
-% would make this example unnecessarily complicated.
-% \end{environment}\end{environment}
-%
-%
-%
-% \section{Describing macros and the like}
-% \label{Sec:Describing}
-%
-% \begin{macro}{\if@mparswitch}
-% \begin{macro}{\if@reversemargin}
-% In two-sided mode, marginal notes should appear in the outer
-% margin. The following code takes care of that.
-% \begin{macrocode}
-%<*pkg>
-\if@twoside
- \@mparswitchtrue
- \normalmarginpar
-\fi
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% \begin{macro}{\GenericDescribePrint}
-% \changes{prot2}{2000/07/14}{\cs{leavevmode} and \cs{ignorespaces}
-% moved to \cs{NewDescribeCommand}. (LH)}
-% \changes{prot2}{2000/07/20}{Added \cs{strut}. Removed it from
-% arguments passed to \cs{GenericDescribePrint}. (LH)}
-% \changes{prot2.3}{2001/06/24}{Changed formatting to match that of
-% \cs{XDParToMargin}. (LH)}
-% The |\GenericDescribePrint| macro is a utility macro for use in
-% commands like |\Describe|\-|Macro|. Its syntax is
-% \begin{quote}
-% |\GenericDescribePrint|\marg{text}
-% \end{quote}
-% and it puts \meta{text} in a marginal paragraph, giving it the
-% appropriate justification for appearing in that margin.
-%
-% The first part simply tests whether the argument fits on a single
-% line.
-% \begin{macrocode}
-\newcommand\GenericDescribePrint[1]{%
- \setbox\z@=\vbox{%
- \parindent=\z@
- \leftskip=\z@skip
- \rightskip=\z@\@plus 1fil%
- \parfillskip=\z@skip
- \hsize=\marginparwidth
- \linepenalty=\@m
- \color@begingroup
- \noindent\ignorespaces #1\@@par
- \color@endgroup
- \expandafter}%
- \expandafter\ifnum \the\prevgraf<\tw@
-% \end{macrocode}
-% Then comes the actual typesetting. First the single-line format.
-% The braces in the optional argument are there to prevent trouble
-% in case |#1| contains a right brace; they will be stripped off when
-% the argument is grabbed.
-% \begin{macrocode}
- \if@twoside
- \marginpar[{\raggedleft\strut #1}]{\raggedright\strut #1}%
- \else
- \marginpar{\raggedleft\strut#1}%
- \fi
- \else
- \if@twoside
- \marginpar[{%
- \leftskip=\z@ \@plus \marginparwidth
- \rightskip=\leftskip
- \parfillskip=\z@ \@plus -\marginparwidth
- \noindent\nobreak\hskip\parfillskip
- \ignorespaces #1%
- }]{%
- \leftskip=\z@ \@plus \marginparwidth
- \rightskip=\leftskip
- \parfillskip=\z@ \@plus 1fil%
- \noindent\nobreak\hskip\parfillskip
- \ignorespaces #1%
- }%
- \else
- \marginpar{%
- \leftskip=\z@ \@plus \marginparwidth
- \rightskip=\leftskip
- \parfillskip=\z@ \@plus -\marginparwidth
- \noindent\nobreak\hskip\parfillskip
- \ignorespaces #1%
- }%
- \fi
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% The \texttt{describe}-commands are supposed to be invisible---only
-% leave a single space even when there are spaces both before and after
-% them---but there are problems with the mechanisms for this. I get the
-% impression that they have never worked perfectly, but that seems to
-% be mainly due to that certain macros in the \LaTeX\ kernel never did
-% either, and I suspect that the general problem has been thrashed over
-% many times before.
-%
-% \package{doc}'s |\DescribeMacro| and |\DescribeEnv| are wrapped up in
-% a |\@bsphack| \dots\ |\@esphack| ``group'' to become invisible, but
-% the |\marginpar| and various index commands they are built on are
-% themselves already invisible, so one would suspect that there is no
-% need for additional invisibility. There are however two factors which
-% create this need. One is that it doesn't do the right thing at
-% beginning of lines; here it seems like what the
-% \texttt{describe}-commands would need is the |\@vbsphack| macro
-% (whose definition appears in \texttt{ltspace.dtx}, but which has been
-% commented out) since they should start a new paragraph and leave no
-% following space if they are used in vertical mode. The other factor is
-% that the standard |\@bsphack|--|\@esphack| can only suppress every
-% second intermediate space if several invisible commands appear in
-% sequence, as is quite common for the
-% \texttt{describe}-commands.\footnote{It would seem that a simple fix
-% for this is to have \cs{@esphack} insert \cs{nobreak}
-% \cs{hskip}\texttt{-}\cs{@savsk} \cs{hskip}\cs{@savsk} before it
-% executes \cs{ignorespaces}, but since that fix hasn't been
-% incorporated into the kernel or the \package{fixltx2e} package there
-% probably is some problem with it.}
-%
-% Instead the \package{doc} implementations of |\DescribeMacro| and
-% |\DescribeEnv| begin with |\leavevmode| and end with |\ignorespaces|,
-% which means that they are only ``invisible'' if they appear on on the
-% left of visible material, but that's how it has been for over a decade
-% now.
-%
-% \begin{macro}{\NewDescribeCommand}
-% \changes{prot2}{2000/07/14}{Command added. (LH)}
-% The |\NewDescribeCommand| command is a relative to the
-% |\New|\-|Macro|\-|Environment| command which defines commands
-% analogous to |\Describe|\-|Macro| rather than \texttt{macro}-like
-% environments. Its syntax is
-% \begin{quote}
-% |\NewDescribeCommand|\marg{command}\marg{grabbers}\B
-% \marg{numargs}\B\marg{definition}
-% \end{quote}
-% \meta{command} is the control sequence to define. \meta{grabbers}
-% and \meta{numargs} are as for the |\NewMacroEnvironment| command.
-% \meta{definition} is the command definition.
-% In addition to the definition given in the \meta{definition}
-% argument and the code for grabbing the arguments, the command
-% actually defined by |\New|\-|Describe|\-|Command| will contain a
-% |\leavevmode| at the start and an |\ignorespaces| at the end.
-%
-% The |\NewDescribeCommand| command should really just be a call to
-% \package{xparse}'s |\Declare|\-|Document|\-|Command|, but that will
-% have to wait until \package{xdoc} becomes based on the
-% \package{xparse} package.
-% \begin{macrocode}
-\newcommand\NewDescribeCommand[4]{%
- \@ifdefinable#1{%
- \expandafter\def \expandafter#1\expandafter{%
- \expandafter\XD@grab@arguments \csname\string#1\endcsname{#2}%
- }%
- \let\l@ngrel@x\relax
- \expandafter\@yargdef \csname\string#1\endcsname \@ne {#3}%
- {\leavevmode#4\ignorespaces}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\DescribeMacro}
-% \changes{prot2.1}{2000/11/18}{Using \cs{MakeSortKey}. (LH)}
-% \begin{macro}{\DescribeEnv}
-% The |\DescribeMacro| and |\DescribeEnv| commands are as in
-% \package{doc}. The argument of |\DescribeMacro| is supposed to be
-% the actual control sequence to describe (not as with the
-% \texttt{macro} environment something which looks like the control
-% sequence after being |\string|ed).
-% \begin{macrocode}
-\let\DescribeMacro=\relax
-\NewDescribeCommand\DescribeMacro{\XD@grab@harmless@cs}{1}{%
- \GenericDescribePrint{\MacroFont\Bslash#1}%
- \MakeSortKey\@tempa{#1}{}%
- \IndexEntry{%
- \LevelSorted{\@tempa}{\texttt{\Bslash#1}}%
- }{usage}{\thepage}%
-}
-% \end{macrocode}
-% The argument of |\DescribeEnv|, on the other hand, is treated like
-% that of the \texttt{environment} environment, but backslash isn't
-% given catcode 12---only the catcode assignments in
-% |\Make|\-|Private|\-|Letters| are made.
-% \begin{macrocode}
-\let\DescribeEnv=\relax
-\NewDescribeCommand\DescribeEnv{%
- \XD@grab@harmless@withprivate\relax
-}{1}{%
- \GenericDescribePrint{\MacroFont#1}%
- \IndexEntry{%
- \LevelSame{environments:}\LevelSorted{#1}{\texttt{#1}}%
- }{usage}{\thepage}%
- \IndexEntry{%
- \LevelSorted{#1}{\texttt{#1} (environment)}%
- }{usage}{\thepage}%
-}
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% \begin{macro}{\describeoption}
-% \changes{prot2}{2000/07/31}{Command added---I realised that the need
-% to describe options is probably as large as that to mark out
-% their definition. (LH)}
-% The |\describeoption| command is the \texttt{describe}-companion to
-% the \texttt{option} environment.
-% \begin{macrocode}
-\NewDescribeCommand\describeoption{\XD@grab@harmless\relax}{1}{%
- \GenericDescribePrint{\MacroFont#1 \normalfont option}%
- \IndexEntry{%
- \LevelSame{options:}\LevelSorted{#1}{\texttt{#1}}%
- }{usage}{\thepage}%
- \IndexEntry{%
- \LevelSorted{#1}{\texttt{#1} option}%
- }{usage}{\thepage}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\describecsfamily}
-% \changes{prot2}{2000/07/14}{Renamed \cs{DescribeCSFamily} and
-% incorporated the code from \cs{XD@index@family}. (LH)}
-% \changes{prot2.1}{2000/11/18}{Using \cs{MakeSortKey}. (LH)}
-% The |\describecsfamily| command is for marking out sections in text
-% where a particular family of control sequences is described---just
-% like |\DescribeMacro| does for individual commands. To clarify what
-% I mean by a control sequence family, here are a couple of examples:
-% \begin{longtable}{l >{\raggedright}p{0.55\linewidth}}
-% |\c@|\meta{counter}\label{Tab:CS-families}&
-% countdef token for the |\count| register storing the
-% \LaTeX\ counter \meta{counter}\tabularnewline
-% |\ps@|\meta{pagestyle}&
-% macro storing settings for the pagestyle \meta{pagestyle}^^A
-% \tabularnewline
-% |\|\meta{enc}|/|\meta{fam}|/|\meta{ser}|/|\meta{sh}|/|\meta{sz}&
-% the fontdef token for the font which has encoding \meta{enc},
-% family \meta{fam}, series \meta{ser}, shape \meta{sh}, and
-% size \meta{sz} under NFSS\tabularnewline
-% |\|\meta{enc}|\|\meta{cmd}&
-% the macro containing the definition for encoding \meta{enc} of
-% the encoding-specific \LaTeX\ command |\|\meta{cmd}^^A
-% \tabularnewline
-% |\fps@|\meta{type}&
-% the default placement specifier for \LaTeX\ floats of type
-% \meta{type}\tabularnewline
-% |\l@|\meta{name}&
-% a macro which formats table of contents entries for items of
-% type \meta{name} (\texttt{chapter}, \texttt{section}, etc.)^^A
-% \tabularnewline
-% |\l@|\meta{language}&
-% the |\language| number \package{babel} has allocated for the
-% language \meta{language} (\texttt{english}, \texttt{french},
-% etc.)\tabularnewline
-% |\i-|\meta{int}&
-% the control sequence (either a mathchardef token or a macro)
-% which stores the value of the \package{fontinst} integer
-% \meta{int}
-% \end{longtable}
-%
-% The syntax for |\describecsfamily| is
-% \begin{quote}
-% |\describecsfamily|\marg{cs-fam specification}
-% \end{quote}
-% The \meta{cs-fam specification} includes only what would be put
-% between |\csname| and |\endcsname|; the |\describecsfamily| command
-% will add a backslash when printing the name. No special catcodes
-% will be in force in the argument, but the |#|, |$|, |&|, |_|, |^|,
-% and |~| characters present no problems even if they have their
-% ordinary catcodes. All spaces are seen as ASCII space and \TeX\ is
-% skipping spaces as usual. Characters with catcode 0, 1, 2, 5, 9, 14,
-% or 15 may however be problematic.
-% If you need to specify such a problematic character then you can do
-% so by writing |\PrintChar|\marg{code}, where \meta{code} is the
-% ASCII code for the character, as a valid \TeX\ number in the range
-% 0--255. In case you do not remember the ASCII code for some
-% character \meta{c}, there is no harm in specifying it as
-% |`\|\meta{c}, e.g. |\PrintChar{`\}}| for a right brace. It is even
-% possible to write |\PrintChar| commands for characters outside
-% visible ASCII (but those are typeset as |^^|-sequences).
-%
-% The variant parts in the control sequence names are specified as
-% \begin{quote}
-% |\meta|\marg{text}
-% \end{quote}
-% and these will be typeset exactly as in normal text. The arguments
-% of |\meta|s appearing in a \meta{cs-fam specification} are moving.
-% All control sequences other than |\PrintChar| and |\meta| in a
-% \meta{cs-fam specification} (and which do not appear in the argument
-% of a |\PrintChar| or |\meta|) are essentially treated as if they
-% had been |\string|ed.
-%
-% Apart from the above differences in treatment of the argument, the
-% |\describe|\-|cs|\-|family| command is similar to
-% |\DescribeMacro|---it prints the control sequence name in the margin
-% and makes a \texttt{usage} index entry.
-% \begin{macrocode}
-\NewDescribeCommand\describecsfamily{\XD@grab@harmless{}}{1}{%
- \GenericDescribePrint{%
- \MetaNormalfont\MacroFont\Bslash#1%
- }%
- \MakeSortKey\@tempa{#1}{\def\meta##1{(##1)}}%
- \IndexEntry{%
- \LevelSorted{\@tempa}{\texttt{\protect\MetaNormalfont\Bslash#1}}%
- }{usage}{\thepage}%
-}
-%</pkg>
-% \end{macrocode}
-% \end{macro}
-%
-%
-% As for |\NewMacroEnvironment|, I also give an example of an
-% application of |\NewDescribeCommand| which is much too special for
-% including in \package{xdoc} in general and therefore the code is
-% placed in a special module. I had originally written the code as part
-% of another package, but I removed it because I thought it was a bit
-% too special even for that context. The commentry below is kept
-% unchanged.\changes{prot2.1}{2000/09/16}{Additional
-% \cs{NewDescribeCommand} code example added. (LH)}
-%
-% \begin{quotation}
-%
-% I believe this feature is primarily of interest for MacOS programs,
-% but there might be sufficiently similar structures in other operating
-% systems to make it useful even in other contexts. Be as it may, what
-% the feature described here does is that it allows the user to put an
-% entry in the index for each resource in the code. This gives an easy
-% way of checking that no two resources are assigned the same id, even
-% though there is no mechanism for especially warning for such
-% collisions.
-%
-% \begin{macro}{\DescribeResource}
-% The main command available is
-% \begin{quote}
-% |\DescribeResource|\marg{type}\marg{id}\marg{text}
-% \end{quote}
-% \meta{type} is a four-character string. Most special characters are
-% treated as ordinary ones (very useful for |#|s), but the visible
-% ASCII characters |%|, |{|, |\|, and |}| retain their usual meaning.
-% To use such a troublesome character \meta{c} in a resource type,
-% write it as |\PrintChar{`\|\meta{c}|}|. \meta{id} is a \TeX\ number;
-% it will be used as the number of the resource. \meta{text} is normal
-% text that will be put in the index entry to describe the resource; it
-% seems a good idea to use the name of the resource for this. \meta{id}
-% and \meta{text} are read with normal \LaTeX\ catcodes. Note that
-% \meta{text} is a moving argument.
-%
-% |\DescribeResource| does two things---it prints the \meta{type} and
-% \meta{id} of the resource in the margin, and it writes an entry
-% \begin{quote}
-% \meta{type} resources:\\
-% \vadjust{}\qquad\meta{id}\\
-% \vadjust{}\qquad\qquad\meta{text}
-% \end{quote}
-% (plus a lot of formatting not shown here) to the \texttt{.idx} file.
-% The reference is for the page.
-%
-% The idea with advancing |\count@| like that when constructing the
-% index entry is to get a sort key for which lexicographic order equals
-% the wanted order. This would not be the case if the number was simply
-% written down. The current code maps numbers to six-digit positive
-% integers, but five-digits integers would be sufficient (a resource
-% \meta{id} is a signed 16-bits integer). The construction chosen
-% here furthermore puts the negative numbers after the positive ones.
-% \begin{macrocode}
-%<*rsrccmd>
-\NewDescribeCommand\DescribeResource{%
- \XD@grab@harmless\relax \XD@grab@marg \XD@grab@marg
-}{3}{%
- \GenericDescribePrint{#1%
- \textnormal{:\ifnum#2<\z@ \textminus\number-\else\number\fi#2}%
- }%
- \count@=#2\relax
- \advance \count@ 100000\ifnum \count@<\z@ 0\fi \relax
- \protected@edef\@tempa{%
- \noexpand\LevelSorted{\the\count@}{%
- \ifnum #2<\z@ \string\textminus \number-\else\number\fi#2%
- }%
- }%
- \IndexEntry{%
- \LevelSorted{#1 resources:}{\texttt{#1} resources:}%
- \@tempa
- \LevelSame{#3}%
- }{usage}{\thepage}%
-}
-%</rsrccmd>
-% \end{macrocode}
-% \end{macro}
-%
-% \end{quotation}
-%
-%
-% \section{The \cs{DocInclude} command}
-% \label{Sec:DocInclude}
-%
-% The code in this section is based on code from the \package{ltxdoc}
-% document class~\cite{ltxdoc} and it implements a command called
-% |\DocInclude|. Two implementations of this command are given: one
-% which is essentially that of \package{ltxdoc} (preserving all its
-% peculiarities), and one which is a reimplementation from scratch. The
-% default is to use the latter, but passing the \texttt{olddocinclude}
-% option to \package{xdoc} selects the former.
-%
-%
-% \subsection{Old implementation}
-%
-% It should be observed that this is not a complete implementation of the
-% |\Doc|\-|Include| command---it only redefines the \package{ltxdoc}
-% macros that need to be changed if the |\Doc|\-|Include| command is to
-% work with \package{xdoc} (it doesn't for example change the definition
-% of |\Doc|\-|Include| itself). Furthermore it doesn't define anything if
-% the \package{ltxdoc} document class hasn't been loaded, since then the
-% details of the definition of |\Doc|\-|Include| (even if it would be
-% defined) are unknown.
-%
-% \begin{macro}{\CodelineIndex}
-% \changes{prot2.1}{2000/10/08}{Using \cs{thecodelineno}. (LH)}
-% \begin{macro}{\filesep}
-% \changes{prot2.2}{2001/02/13}{Redefined to use
-% \cs{XD@page@compositor}. (LH)}
-% \begin{macro}{\@docinclude}
-% \package{ltxdoc} redefines |\codeline@wrindex| so that |\filesep| is
-% prepended to each codeline number that is written to the index file.
-% That redefinition has no effect unless the |\Codeline|\-|Index|
-% command is executed afterwards however, so there is no harm in having
-% |\Codeline|\-|Index| itself apply the corresponding change.
-% \begin{macrocode}
-%<*pkg>
-\@ifpackagewith{xdoc2}{olddocinclude}{%
- \@ifclassloaded{ltxdoc}{%
- \renewcommand\CodelineIndex{%
- \makeindex
- \let\XD@if@index=\@firstoftwo
- \codeline@indextrue
- \def\TheXDIndexNumber{\filesep\thecodelineno}%
- }%
-% \end{macrocode}
-% The |\filesep| macro is redefined so that the \package{docindex}
-% package~\cite{docindex} can use a |page_compositor| string different
-% from the default |-| simply by redefining |\XD@page@compositor|.
-% This redefinition has to be put in |\docincludeaux| since that macro
-% redefines |\filesep| too.
-% \begin{macrocode}
- \expandafter\def \expandafter\docincludeaux \expandafter{%
- \docincludeaux
- \gdef\filesep{\thepart\XD@page@compositor}%
- }
-% \end{macrocode}
-% The change to |\@docinclude| merely consists of inserting code for
-% writing an |External|\-|XRef|\-|Wrap| to the \texttt{.aux} file to
-% record the new value of the \texttt{part} counter.
-% \begin{macrocode}
- \def\@docinclude#1 {%
- \clearpage
- \if@filesw
- \immediate\write\@mainaux{\string\@input{#1.aux}}%
- \fi
- \@tempswatrue
- \if@partsw
- \@tempswafalse
- \edef\@tempb{#1}%
- \@for\@tempa:=\@partlist\do{%
- \ifx\@tempa\@tempb\@tempswatrue\fi
- }%
- \fi
- \if@tempswa
- \let\@auxout\@partaux
- \if@filesw
- \immediate\openout\@partaux #1.aux
- \immediate\write\@partaux{\relax}%
- \fi
- \part{#1.dtx}%
- \if@filesw
- \immediate\write\@partaux{\@percentchar\@percentchar
- ExternalXRefWrap {\filesep} {}%
- }%
- \fi
- {%
- \let\ttfamily\relax
- \xdef\filekey{%
- \filekey, \thepart={\ttfamily\currentfile}%
- }%
- }%
- \DocInput{#1.dtx}%
- \clearpage
- \@writeckpt{#1}%
- \if@filesw \immediate\closeout\@partaux \fi
- \else
- \@nameuse{cp@#1}%
- \fi
- \let\@auxout\@mainaux
- }
- }{}
-}{}
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}
-%
-%
-% \subsection{New implementation}
-% \label{Ssec:New DocInclude}
-%
-% The default action of the second implementation is to be precisely an
-% |\include| variant of |\DocInput|, but in addition to that it also
-% has a (one-argument) hook called |\docincludeaux| which is executed
-% before a file is actually |\DocInput|ted, but after it has been
-% determined that it should be included, and this hook is only executed
-% for the files which should be |\include|d. This hook is normally
-% |\@gobble|, but passing the \texttt{fileispart} option to
-% \package{xdoc} redefines it to start a new part and set the pagestyle.
-%
-% \begin{macro}{\DocInclude}
-% \begin{macro}{\@docinclude}
-% Most of the code for the |\DocInclude| command is put in the
-% |\@docinclude| macro; |\DocInclude| simply checks that it hasn't
-% been nested. The main difference to |\include| is that a nested
-% |\DocInclude| becomes an error plus the corresponding |\DocInput|,
-% whereas a nested |\include| simply becomes an error. The rationale
-% for this is that it is probably closer to what was intended.
-%
-% The argument of |\@docinclude| is, oddly enough, space-delimited.
-% This is inherited from the |\@include| macro in the \LaTeX\ kernel,
-% where it is a hack to make sure that the part \texttt{.aux} file
-% that is opened for writing really gets the suffix \texttt{.aux} (in
-% the worst case, \TeX\ could start overwriting a \texttt{.tex} file
-% instead).
-% \begin{macrocode}
-\@ifpackagewith{xdoc2}{olddocinclude}{}{%
- \def\DocInclude#1{%
- \ifnum\@auxout=\@partaux
- \@latexerr{\string\include\space cannot be nested}{%
- Your \protect\DocInclude\space will be reduced to a
- \protect\DocInput.%
- }%
- \DocInput{#1.dtx}%
- \else \@docinclude#1 \fi
- }%
-% \end{macrocode}
-% The only things in this |\@docinclude| that are not precisely as in
-% |\@include| are the |\docincludeaux| and |\DocInput| commands.
-% \begin{macrocode}
- \def\@docinclude#1 {%
- \clearpage
- \if@filesw
- \immediate\write\@mainaux{\string\@input{#1.aux}}%
- \fi
- \@tempswatrue
- \if@partsw
- \@tempswafalse
- \edef\@tempb{#1}%
- \@for\@tempa:=\@partlist\do{%
- \ifx\@tempa\@tempb \@tempswatrue \fi
- }%
- \fi
- \if@tempswa
- \let\@auxout\@partaux
- \if@filesw
- \immediate\openout\@partaux #1.aux
- \immediate\write\@partaux{\relax}%
- \fi
- \docincludeaux{#1.dtx}%
- \DocInput{#1.dtx}%
- \clearpage
- \@writeckpt{#1}%
- \if@filesw \immediate\closeout\@partaux \fi
- \else
- \deadcycles\z@
- \@nameuse{cp@#1}%
- \fi
- \let\@auxout\@mainaux
- }%
-}{}
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% \begin{option}{fileispart}
-% \begin{macro}{\docincludeaux}
-% The \texttt{fileispart} option works by (re)defining a couple of
-% macros, of which the |\doc|\-|include|\-|aux| macro is the most
-% important. Its syntax is
-% \begin{quote}
-% |\docincludeaux|\marg{filename}
-% \end{quote}
-% where \meta{filename} is the name of a file that will be inputted.
-% The \texttt{fileispart} definition of this is to set |\currentfile|
-% to the harmless character string of \meta{filename}, produce a
-% |\part| heading whose text is that \meta{filename}, add the
-% \meta{filename} to the |\filekey| macro, set the page style to
-% \texttt{docpart}, clear the |\filedate|, |\fileversion|, and
-% |\fileinfo| macros, and write an |External|\-|XRef|\-|Wrap|
-% XXR-command to the \texttt{.aux} file to record the new codeline
-% number prefix.
-% \begin{macrocode}
-\@ifpackagewith{xdoc2}{olddocinclude}{\iffalse}{
- \@ifpackagewith{xdoc2}{fileispart}{\iftrue}{
- \let\docincludeaux=\@gobble
- \iffalse
- }
-} % If fileispart and not olddocinclude then
- \def\docincludeaux#1{%
- \MakeHarmless\currentfile{#1}%
- \part{\texttt{\currentfile}}%
- \pagestyle{docpart}%
- \let\filedate\@empty
- \let\fileversion\@empty
- \let\fileinfo\@empty
- \protected@xdef\filekey{%
- \filekey, \thepart=\texttt{\currentfile}%
- }%
- \if@filesw
- \immediate\write\@partaux{\@percentchar\@percentchar
- ExternalXRefWrap {\thepart\XD@page@compositor} {}%
- }%
- \fi
- }%
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\CodelineIndex}
-% \changes{prot2.1}{2000/10/08}{Using \cs{thecodelineno}. (LH)}
-% The \texttt{fileispart} option also adds the \texttt{codelineno}
-% counter to the reset list for \texttt{part} and changes the format
-% of codeline numbers written to the index.
-% \begin{macrocode}
- \@ifclassloaded{ltxdoc}{}{\@addtoreset{codelineno}{part}}%
- \renewcommand\CodelineIndex{%
- \makeindex
- \let\XD@if@index=\@firstoftwo
- \codeline@indextrue
- \def\TheXDIndexNumber{\thepart\XD@page@compositor\thecodelineno}%
- }%
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\partname}
-% \begin{macro}{\thepart}
-% \begin{macro}{\IndexParms}
-% Finally there are a couple of macros which are redefined for
-% aesthetic rather than technical reasons. Passing the
-% \texttt{fileispart} option sets |\partname| to \texttt{File}, sets
-% |\thepart| to |\aalph{part}|, and adds a setting of pagestyle to
-% |\IndexParms|. (The pagestyle setting is added to
-% |\index@|\B|prologue| by \package{ltxdoc}, but I think
-% |\Index|\-|Parms| is more appropriate.)
-% \begin{macrocode}
- \def\partname{File}
- \def\thepart{\aalph{part}}
- \expandafter\def \expandafter\IndexParms
- \expandafter{\IndexParms \pagestyle{docindex}}
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}
-%
-% In case the index formatting is handled by the \package{docindex}
-% package~\cite{docindex} (or its \LaTeXe\ incarnation
-% \package{docidx2e}), the above addition to |\Index|\-|Parms| won't
-% have any effect. Therefore \package{xdoc} also passes the
-% \texttt{use}\-\texttt{doc}\-\texttt{index}\-\texttt{ps} option on
-% to these packages.
-% \begin{macrocode}
- \PassOptionsToPackage{usedocindexps}{docindex}
- \PassOptionsToPackage{usedocindexps}{docidx2e}
-\fi
-% \end{macrocode}
-% \end{option}
-%
-% \begin{macro}{\ps@docpart}
-% \begin{macro}{\setfileinfo}
-% \begin{macro}{\XD@set@file@info}
-% The \texttt{docpart} pagestyle is for pages made from the
-% |\DocInclude|d files. The page footers contain the page number, the
-% part (file) number, and the current file name. It also contains the
-% file date and version if that information is available.
-%
-% \package{ltxdoc} uses |\GetFileInfo| to get the date and version
-% information, but that's a very peculiar practice. The data one wants
-% to present are about the file being typeset---typically the version
-% of the package that is documented in this file---whereas the
-% |\GetFileInfo| command really extracts information about
-% \emph{unpacked} classes, packages, and similar files---files that
-% contribute to the typesetting by defining commands, not by containing
-% text. Such information may be of interest for documents which contain
-% alternative code for incompatible versions of for example a package,
-% but it is of no use for printing version information as above since
-% the version of a package used for typesetting a \texttt{.dtx} file
-% need not be the version actually contained in that \texttt{.dtx}
-% file. Thus the only way to make this work is by doing as the \LaTeX\
-% kernel source and include |\ProvidesFile| commands for the
-% \texttt{.dtx} file in each such file, which is a rather peculiar use
-% of the |\ProvidesFile| command.
-%
-% The |\setfileinfo| command provides an equivalent feature in a less
-% roundabout way. It has the syntax
-% \begin{quote}
-% |\setfileinfo[|\meta{date}\verb*+ +\meta{version}\verb*+ +^^A
-% \meta{info}|]|
-% \end{quote}
-% and it sets |\filedate| to \meta{date}, |\fileversion| to
-% \meta{version}, and |\fileinfo| to \meta{info} if the optional
-% argument is present; if the optional argument is missing or contains
-% fewer than three words then the missing fields are set to |?|.
-%
-% \begin{macrocode}
-\@ifpackagewith{xdoc2}{olddocinclude}{}{%
- \def\ps@docpart{%
- \def\@oddfoot{%
- File: \texttt{\currentfile}%
- \ifx \filedate\@empty \else \ Date: \filedate\fi
- \ifx \fileversion\@empty \else \ Version: \fileversion\fi
- \hfill\thepage
- }%
- \if@twoside
- \def\@evenfoot{%
- \thepage\hfill
- File: \texttt{\currentfile}%
- \ifx \filedate\@empty \else \ Date: \filedate\fi
- \ifx \fileversion\@empty \else \ Version: \fileversion\fi
- }%
- \else \let\@evenfoot\@oddfoot \fi
- }
-% \end{macrocode}
-% The corresponding definition in \package{ltxdoc} (there it appears in
-% |\docincludeaux|) is peculiar in that the odd page footer is set
-% globally but the even page footer only locally.
-%
-% The definition of |\setfileinfo| follows that of |\GetFileInfo|
-% except for the fact that the |\relax|es have been replaced by
-% |\@empty|s.
-% \begin{macrocode}
- \newcommand\setfileinfo[1][]{%
- \edef\@tempa{#1}%
- \expandafter\XD@set@file@info \@tempa\@empty? ? \@empty\@empty
- }
- \def\XD@set@file@info#1 #2 #3\@empty#4\@empty{%
- \def\filedate{#1}%
- \def\fileversion{#2}%
- \def\fileinfo{#3}%
- }
-}{}
-% \end{macrocode}
-% The reason for making the argument of |\setfileinfo| optional is
-% that with the |\Provides|\-|File| practice one can (potentially) put
-% all date and version information in one place through tricks like
-% \iffalse
-%<*example>
-% \fi
-%\begin{verbatim}
-%% \begin{macrocode}
-%\ProvidesPackage{foobar}
-%% \end{macrocode}
-%% \ProvidesFile{foobar.dtx}
-% [2000/02/02 v1.0 Silly example package]
-%%
-%\end{verbatim}\iffalse
-%</example>
-% \fi
-% By making the argument of |\setfileinfo| optional, I make sure that
-% people who have used such tricks only have to replace the
-% |\ProvidesFile{foobar.dtx}| by |\setfileinfo|.
-% \end{macro}\end{macro}\end{macro}
-%
-%
-% \begin{macro}{\ps@docindex}
-% \begin{macro}{\filekey}
-% The \texttt{docindex} pagestyle is for the index in
-% \texttt{fileispart} documents. It prints a file key, which is a
-% list of all the included files and their corresponding part letters,
-% at the bottom of every page. The file key is stored in the macro
-% |\filekey|, which should have been constructed file by file as they
-% are included. To add a file to the file key, it is recommended that
-% you do
-% \begin{quote}
-% |\protected@xdef\filekey{\filekey, |\meta{entry for new file}|}|
-% \end{quote}
-% The \texttt{fileispart} version of |\docincludeaux| already does
-% this. The initial value of |\filekey| is |\@gobble| so that the
-% comma before the first entry is removed. The |\@empty| below is
-% there in case no entry has been inserted.
-% \begin{macrocode}
-% \@ifpackagewith{xdoc2}{olddocinclude}{}{%
- \def\ps@docindex{%
- \def\@oddfoot{%
- \parbox{\textwidth}{%
- \strut\footnotesize\raggedright
- \textbf{File Key:} \filekey\@empty
- }%
- }%
- \let\@evenfoot\@oddfoot
- }%
- \let\filekey\@gobble
-% }
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% It should be observed that since |\ps@docindex| only sets the page
-% style locally, the page style will revert to its previous setting at
-% the end of the \texttt{theindex} environment. As that previous
-% setting is probably that of the \texttt{docpart} page style, you
-% might have to set the page style manually.
-%
-% \begin{macro}{\aalph}
-% \begin{macro}{\@aalph}
-% |\aalph| is a variant of |\alph| which continues with the upper case
-% letters for 27--52. It is defined by \package{ltxdoc}, so it is
-% merely provided here.
-% \begin{macrocode}
-\providecommand*\aalph[1]{\@aalph{\csname c@#1\endcsname}}
-\providecommand*\@aalph[1]{%
- \ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or
- j\or k\or l\or m\or n\or o\or p\or q\or r\or s\or
- t\or u\or v\or w\or x\or y\or z\or A\or B\or C\or
- D\or E\or F\or G\or H\or I\or J\or K\or L\or M\or
- N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or
- X\or Y\or Z\else\@ctrerr\fi
-}
-% \end{macrocode}
-% In \texttt{source2e.tex} one can see that \package{doc}'s standard
-% \texttt{gind.ist} index style file won't sort the 35th file (part
-% \texttt{I}) correctly since it causes \package{makeindex} to read an
-% \texttt{I} as ``upper case Roman numeral one'', but I doubt very
-% many people encounter that problem in their projects.
-% \end{macro}\end{macro}
-%
-% \begin{macro}{\XD@page@compositor}
-% \changes{prot2.2}{2001/02/13}{Macro added, other macros changed to
-% use it. (LH)}
-% The |\XD@page@compositor| macro contains the string which is put
-% between the parts of a composite number in the index; it
-% corresponds to the |page_compositor| parameter of
-% \package{makeindex}.
-% \begin{macrocode}
-\providecommand*\XD@page@compositor{-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-% \section{Miscellanea}
-%
-% \subsection{Some \LaTeXplus\ stuff}
-%
-% \begin{macro}{\BooleanFalse}
-% \begin{macro}{\BooleanTrue}
-% \begin{macro}{\NoValue}
-% These three macros are borrowed from the \package{xparse}
-% package~\cite{xparse}, where they work as the three values
-% \emph{boolean false}, \emph{boolean true}, and \emph{absence of
-% value} respectively. The definitions are taken from
-% \package{xparse} v\,0.17 (1999/09/10).
-% \begin{macrocode}
-\@ifundefined{BooleanFalse}{\def\BooleanFalse{TF}}{}
-\@ifundefined{BooleanTrue}{\def\BooleanTrue{TT}}{}
-\@ifundefined{NoValue}{\def\NoValue{-NoValue-}}{}
-% \end{macrocode}
-% By using these macros (rather than some homegrown set of macros
-% or tokens) for denoting these values here I hopefully simplify a
-% transition to \LaTeXplus, but I don't want to rely on \LaTeXplus\
-% since it hasn't been released yet.
-% \end{macro}\end{macro}\end{macro}
-%
-%
-% \subsection{The \cs{meta} command}
-%
-% A reimplementation which has already (as of v\,2.0k) found its way into
-% the \package{doc} package is the one that the |\meta| command is made
-% robust, but since some people might still have older
-% versions of \package{doc} and since that feature is needed for
-% |\describe|\-|cs|\-|family|, I apply it here too. First I check
-% whether the definition of |\meta| is the old non-robust definition,
-% and only apply the fix if it is.
-% \begin{macrocode}
-\begingroup
-\obeyspaces%
-\catcode`\^^M\active%
-\gdef\@gtempa{\begingroup\obeyspaces\catcode`\^^M\active%
-\let^^M\do@space\let \do@space%
-\def\-{\egroup\discretionary{-}{}{}\hbox\bgroup\itshape}%
-\m@ta}%
-\endgroup
-\ifx \meta\@gtempa
-% \end{macrocode}
-%
-% \begin{macro}{\l@nohyphenation}
-% The new implementation needs a |\language| without any hyphenation
-% patterns. By switching to that language, one can inhibit
-% hyphenation in a piece of text regardless of what line-breaking
-% parameter settings are in force when the paragraph is actually
-% broken. This new language will be called \texttt{nohyphenation} and
-% it is only allocated if it isn't already known (since some
-% \package{babel} settings files already defines this |\language|).
-% \begin{macrocode}
- \@ifundefined{l@nohyphenation}{\newlanguage\l@nohyphenation}{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\meta}
-% \begin{macro}{\meta@font@select}
-% This is the definition of |\meta| from \package{doc} v\,2.0m. For
-% an explanation of the implementation, se a \texttt{doc.dtx} at least
-% that new or entry \texttt{latex/3170} in the \LaTeX\ bugs database.
-% \begin{macrocode}
- \DeclareRobustCommand\meta[1]{%
- \ensuremath\langle
- \ifmmode \expandafter \nfss@text \fi
- {%
- \meta@font@select
- \edef\meta@hyphen@restore
- {\hyphenchar\the\font\the\hyphenchar\font}%
- \hyphenchar\font\m@ne
- \language\l@nohyphenation
- #1\/%
- \meta@hyphen@restore
- }\ensuremath\rangle
- }
-% \end{macrocode}
-% \begin{macrocode}
- \let\meta@font@select=\itshape
-\fi
-% \end{macrocode}
-% \end{macro}\end{macro}
-%
-% \begin{macro}{\MetaNormalfont}
-% \changes{prot2}{2000/07/24}{Removed robustness; protected it
-% explicitly wherever needed instead. (LH)}
-% The |\MetaNormalfont| command redefines |\meta@font@select| to do a
-% |\normal|\-|font| before the |\itshape|. It is useful if |\meta| is
-% going to be used to make |\rmfamily| interjections in |\ttfamily|
-% text.
-% \begin{macrocode}
-\newcommand\MetaNormalfont{\def\meta@font@select{\normalfont\itshape}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\XD@harmless\meta}
-% This macro is needed for making |\meta| behave as described in the
-% argument of |\describe|\-|cs|\-|family|, i.e., in text which is
-% going to be converted into a harmless character string.
-% \begin{macrocode}
-\@namedef{XD@harmless\string\meta}#1{%
- \toks@=\expandafter{\the\toks@ \meta{#1}}%
- \XD@harmless@
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{The checksum feature}
-%
-% The checksum mechanism in \package{doc} is a remnant from the times
-% when file truncation was a common problem and a mechanism for
-% detecting this was a great help.\footnote{Even though I suspect that
-% the recommended use of it---to put the checking \cs{Finale} at the
-% end of the \texttt{.dtx} file---may have reduced its usefulness
-% dramatically, as that \cs{Finale} would have been the one thing that
-% surely disappears if the file is truncated.} Today its main usefulness
-% seems to lie in that it distinguishes versions of a file that are
-% ``being worked on'' (where the checksum probably doesn't match) from
-% versions of a file that are ``polished and ready for upload''
-% (someone has bothered to fix the checksum), and as it exists it might
-% as well stay. There is a problem however with files which do not
-% contain \TeX\ code, as simply counting backslashes quite probably
-% isn't a good (or even reasonable) way of forming a checksum for these
-% files (if the checksum turns out to be zero, \package{doc} will
-% complain no matter what you do).
-%
-% \begin{macro}{\check@checksum}
-% \changes{prot2.1}{2000/10/02}{Redefinition added. (LH)}
-% For that reason, the |\check@checksum| macro is redefined to only
-% write the ``no checksum'' warning to the log file if the checksum
-% hasn't been set.
-% \begin{macrocode}
-\renewcommand\check@checksum{%
- \relax
- \ifnum \check@sum=\z@
- \PackageInfo{doc}{This macro file has no checksum!\MessageBreak
- The checksum should be \the\bslash@cnt}%
- \else\ifnum \check@sum=\bslash@cnt
- \typeout{*******************}%
- \typeout{* Checksum passed *}%
- \typeout{*******************}%
- \else
- \PackageError{doc}{Checksum not passed (\the\check@sum
- <>\the\bslash@cnt)}{The file currently documented seems
- to be wrong.\MessageBreak Try to get a correct version.}%
- \fi\fi
- \global\check@sum\z@
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{The \cs{theCodelineNo} situation}
-% \label{Ssec:CodelineNo}
-%
-% \changes{prot2.1}{2000/10/08}{\cs{theCodelineNo} situation cleared
-% up. (LH)}
-% \package{doc} incorporates formatting of the value of the
-% \texttt{CodelineNo} counter in the |\theCodelineNo| macro, which is a
-% bit awkward since it prevents using this macro in making e.g.\ index
-% entries. To get around this, \package{xdoc} introduces the alternative
-% name \texttt{codelineno} for this counter so that |\thecodelineno| can
-% produce the value representation without formatting.
-%
-% \begin{macro}{\c@codelineno}
-% \begin{macro}{\cl@codelineno}
-% \begin{macro}{\p@codelineno}
-% \begin{macro}{\thecodelineno}
-% The control sequences connected to the \texttt{codelineno} counter
-% are |\let| so that they refer to the same |\count| register as the
-% \texttt{CodelineNo} counter. Note that \texttt{CodelineNo} isn't a
-% proper \LaTeX\ counter, so the macros |\cl@CodelineNo| and
-% |\p@CodelineNo| are undefined. |\thecodelineno| is set to the default
-% value for a new counter.
-% \begin{macrocode}
-\@ifundefined{c@codelineno}{}{%
- \PackageInfo{xdoc2}{Overwriting codelineno counter}%
-}
-\let\c@codelineno=\c@CodelineNo
-\let\cl@codelineno=\@empty
-\let\p@codelineno=\@empty
-\def\thecodelineno{\@arabic\c@codelineno}
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{macro}
-%
-% \begin{macro}{\PrintCodelineNo}
-% The |\PrintCodelineNo| command is the new recommended command for
-% printing the formatted form of the codeline number counter. People
-% who write their own \texttt{macrocode}-like environments should use
-% |\PrintCodelineNo| instead of \package{doc}'s |\theCodelineNo|.
-% \begin{macrocode}
-\newcommand\PrintCodelineNo{\reset@font\scriptsize\thecodelineno}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\theCodelineNo}
-% Finally |\theCodelineNo| is redefined to reference
-% |\PrintCodelineNo|. This is done for the sake of backwards
-% compability; I didn't feel like redefining |\macro@code| just for
-% the sake of changing the |\theCodelineNo| into a |\PrintCodelineNo|).
-% \begin{macrocode}
-\def\theCodelineNo{\PrintCodelineNo}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
-%</pkg>
-% \end{macrocode}
-%
-%
-% \section{Problems and things to do}
-%
-% This section lists some problems that exist with the current
-% implementations of commands in \package{xdoc}. The list is rather
-% unstable---items are added as I realize there is a problem and removed
-% when I find a solution---an in parts it is rather esoteric since most
-% of the problems have only been found theoretically.
-%
-% \medskip
-%
-% One of the less well-known features of the |\verb| command is that
-% it automatically inhibits the known syntactic ligatures. There is
-% no such mechanism implemented for the harmless character strings,
-% so some (in \TeX\ \texttt{macrocode} uncommon) character sequences
-% (such as |!`|) may produce unwanted results. The quick hack to
-% circumvent this is to use the |\SetHarmState| command to mark one
-% of the characters involved as problematic, as the |\PrintChar|
-% command is implemented so that the character it prints will not be
-% involved in ligaturing or kerning. On the other hand, \package{doc}
-% does nothing to suppress syntactic ligatures in macro or environment
-% names when they are printed in the margin, so for that material the
-% \package{xdoc} implementation might actually improve things, although
-% it could perform worse for verbatim material in the index and list of
-% changes.
-%
-% \medskip
-%
-% Things to do and\slash or think about:
-% \begin{itemize}
-% \item
-% Examine how complicated it would be to convert the
-% |\PrintChar| commands for visible characters in a harmless
-% character string back to explicit characters, for possible use in
-% sort keys. (This could be used to ensure that visible characters
-% are sorted in strict ASCII order.)
-% \item
-% Should those ``letters'' which are commonly used as word
-% separators---in \LaTeX\ code mainly |@|---be ignored when sort
-% keys are being formed (just like the backslash is)? (This would
-% require a change in the implementation of the \texttt{macro}
-% environment.)
-%
-% A mechanism for doing this is included as of prototype version~2.1.
-% \item
-% Examine how much more efficient it would be to put temporary
-% additions to the index exclude list in a separate list instead of
-% the main list. This could be advantageous for deeply nested
-% \texttt{macro} environments, as \TeX\ will otherwise store as many
-% (almost identical and often rather long) copies of the exclude list
-% as there are nested environments.
-%
-% When asked about it, Frank Mittelbach didn't think there was
-% any gains worth mentioning in this. On the other hand it might be
-% worth investigating reimplementations that avoid calling |\trivlist|
-% at the beginning of each \texttt{macro}-like environment when they
-% are nested, since |\trivlist| does quite a lot of assignments.
-%
-% \item
-% In an automatically generated index one often faces the problem
-% that the entries at the innermost level are best formatted in one
-% way when there is only one, but in a completely different way when
-% there are several of them. To get optimal formatting in both cases,
-% one would like to let the |\item|, |\subitem|, |\subsubitem| or
-% corresponding macros detect the situation in this respect and
-% choose the optimal formatting at each case.
-%
-% A mechanism for this is implemented by the \package{docindex}
-% package.
-% \end{itemize}
-%
-%
-% \begin{thebibliography}{9}
-% \bibitem{ltxdoc}
-% David Carlisle:
-% \textit{The file \texttt{ltxdoc.dtx} for use with \LaTeXe},
-% The \LaTeX3 Project; ^^A , 1993~ff.
-% \textsc{ctan}:\discretionary{}{}{\thinspace}\texttt{macros}\slash
-% \texttt{latex}\slash \texttt{base}\slash \texttt{ltxdoc.dtx}.
-% \bibitem{docindex}
-% Lars Hellstr\"om:
-% \textit{The \package{docindex} package}, 2001,
-% \textsc{ctan}:\discretionary{}{}{\thinspace}\texttt{macros}\slash
-% \texttt{latex}\slash \texttt{exptl}\slash \texttt{xdoc}\slash
-% \texttt{docindex.dtx}.
-% \bibitem{fontinst}
-% Alan Jeffrey, Sebastian Rahtz, Ulrik Vieth (and as of v\,1.9 Lars
-% Hellstr\"om): \textit{The \package{fontinst} utility}, v\,1.8~ff.,
-% documented source code,
-% \textsc{ctan}:\discretionary{}{}{\thinspace}^^A
-% \texttt{fonts}\slash \texttt{utilities}\slash
-% \texttt{fontinst}\slash \texttt{source}/
-% \bibitem{clsguide}
-% The \LaTeX3 Project:
-% \textit{\LaTeXe~for class and package writers},
-% The \LaTeX3 Project; ^^A , 1995~ff.
-% \textsc{ctan}:\discretionary{}{}{\thinspace}\texttt{macros}\slash
-% \texttt{latex}\slash \texttt{base}\slash \texttt{clsguide.tex}.
-% \bibitem{doc}
-% Frank Mittelbach, B.~Hamilton Kelly, Andrew Mills, Dave Love, and
-% Joachim \mbox{Schrod}: \textit{The \package{doc} and
-% \package{shortvrb} Packages}, The \LaTeX3 Project; ^^A , 1993~ff.
-% \textsc{ctan}:\discretionary{}{}{\thinspace}\texttt{macros}\slash
-% \texttt{latex}\slash \texttt{base}\slash \texttt{doc.dtx}.
-% \bibitem{xparse}
-% Frank Mittelbach, Chris Rowley, and David Carlisle: \textit{The
-% \package{xparse} package}, The \LaTeX3 Project, 1999. Currently
-% not available by anonymous FTP, but available by HTTP from
-% \texttt{www.latex-project.org} (look for ``experimental code'').
-% \end{thebibliography}
-%
-% \Finale
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/source/fontinst/base/xdoc/xdoc2.ins b/Master/texmf-dist/source/fontinst/base/xdoc/xdoc2.ins
deleted file mode 100644
index ff4eb64bc5a..00000000000
--- a/Master/texmf-dist/source/fontinst/base/xdoc/xdoc2.ins
+++ /dev/null
@@ -1,37 +0,0 @@
-% This file is the docstrip installation script for the xdoc2 package.
-%
-% It may be distributed under the conditions of the LaTeX
-% Project Public License, either version 1.2 of this license or
-% (at your option) any later version. The latest version of this
-% license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.2 or later is part of all distributions of LaTeX
-% version 1999/12/01 or later.
-%
-% Copyright 2000 2001 Lars Hellstr\"om
-
-\input docstrip
-
-\keepsilent
-
-\preamble
-
-This file may be distributed and/or modified under the conditions
-of the LaTeX Project Public License, either version 1.2 of this
-license or (at your option) any later version. The latest version
-of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.2 or later is part of all distributions of LaTeX
-version 1999/12/01 or later.
-
-This file may only be distributed together with a copy of the source
-file from which it was generated. You may distribute that source file
-without this generated file.
-
-\endpreamble
-
-\usedir{tex/latex/misc}
-\generate{\file{xdoc2.sty}{\from{xdoc2.dtx}{pkg,xdoc2}}}
-
-\endbatchfile
-\end
diff --git a/Master/texmf-dist/source/fontinst/base/xdoc/xdoc2.pdf b/Master/texmf-dist/source/fontinst/base/xdoc/xdoc2.pdf
deleted file mode 100644
index c71ef7aac30..00000000000
--- a/Master/texmf-dist/source/fontinst/base/xdoc/xdoc2.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/source/fontinst/base/xdoc/xdocdemo.pdf b/Master/texmf-dist/source/fontinst/base/xdoc/xdocdemo.pdf
deleted file mode 100644
index a368decfbc3..00000000000
--- a/Master/texmf-dist/source/fontinst/base/xdoc/xdocdemo.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/source/fontinst/base/xdoc/xdocdemo.tex b/Master/texmf-dist/source/fontinst/base/xdoc/xdocdemo.tex
deleted file mode 100644
index 026afcb9fb8..00000000000
--- a/Master/texmf-dist/source/fontinst/base/xdoc/xdocdemo.tex
+++ /dev/null
@@ -1,2599 +0,0 @@
-%%
-%% This file may be distributed and/or modified under the conditions
-%% of the LaTeX Project Public License, either version 1.2 of this
-%% license or (at your option) any later version. The latest version
-%% of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.2 or later is part of all distributions of LaTeX
-%% version 1999/12/01 or later.
-%%
-%% Copyright 2000 2003 Lars Hellstr\"om
-%%
-\documentclass[twoside]{ltxdoc}
-\usepackage[dolayout]{xdoc2}
-
-\DeclareRobustCommand\package[1]{\textsf{#1}}
-
-% I redefine theindex environment so that I can use floats normally
-% inside it. Inside the multicolumn environment the float mechanism
-% performs worse. This is the non-multicol definition from doc:
-\makeatletter
-\renewenvironment{theindex}{%
- \@restonecoltrue
- \if@twocolumn\@restonecolfalse\fi
- \columnseprule \z@
- \columnsep 35\p@
- \twocolumn[\index@prologue]%
- \IndexParms
- \let\item\@idxitem
- \ignorespaces
-}{\if@restonecol\onecolumn\else\clearpage\fi}
-\makeatother
-
-\begin{document}
-
-\begin{abstract}
- This document contains some demonstrations of features in the
- \package{xdoc} package. It's not particularly organised, though.
-\end{abstract}
-
-\section{Describing control sequence families}
-
-The following piece of code is from the source for \package{fontinst}:
-\begin{verbatim}
- The kerning information is kept in the macros
- \describecsfamily{l-\meta{name}}|\l-|\meta{name} and
- \describecsfamily{r-\meta{name}}|\r-|\meta{name}, containing
- information about how \meta{name} kerns on the left and on the right,
- respectively. The |\l-|\meta{name} macro should expand out to a
- series of
- \begin{quote}
- \DescribeMacro{\k}|\k|\,|\r-|\meta{name}\,|\|\meta{amount}
- \end{quote}
- control sequences, and vice versa. Examples of
- \describecsfamily{\meta{amount}} |\|\meta{amount}
- control sequences are: |\0|, |\1|, |\1000|, |\-50|, |\33|; these
- corresponds to the kern amounts $0$, $1$, $1000$ (which would be
- a very large kern), $-50$, and $33$ respectively.
-\end{verbatim}
-Now I'm going to write that it typesets as what follows below, but it
-looks better if this paragraph is a couple of lines long, since that
-enables one to see where the right margin actually begins. But that
-seems to be long enough. Thus:
-It typesets as
-\begin{quote}
- The kerning information is kept in the macros
- \describecsfamily{l-\meta{name}}|\l-|\meta{name} and
- \describecsfamily{r-\meta{name}}|\r-|\meta{name}, containing
- information about how \meta{name} kerns on the left and on the right,
- respectively. The |\l-|\meta{name} macro should expand out to a
- series of
- \begin{quote}
- \DescribeMacro{\k}|\k|\,|\r-|\meta{name}\,|\|\meta{amount}
- \end{quote}
- control sequences, and vice versa. Examples of
- \describecsfamily{\meta{amount}} |\|\meta{amount}
- control sequences are: |\0|, |\1|, |\1000|, |\-50|, |\33|; these
- corresponds to the kern amounts $0$, $1$, $1000$ (which would be
- a very large kern), $-50$, and $33$ respectively.
-\end{quote}
-
-
-\section{Defining new \texttt{macro}-like environments}
-
-Another example from \package{fontinst}---the \package{fisource}
-package (v\,2.02) contains the command
-\begin{verbatim}
-\NewMacroEnvironment{fistring}{\XD@grab@harmless\relax}{1}%
- {\MacroFont#1 \normalfont string}%
- {\XDMainIndex{\levelsorted{#1 I}{\texttt{#1} (string)}}%
- \XDMainIndex{\levelsame{strings:}\levelsorted{#1}{\texttt{#1}}}}%
- {{#1}{\texttt{#1} string}}%
- {}
-\end{verbatim}
-which defines a new \texttt{macro}-like environment called
-\texttt{fistring} (for \package{fontinst} string variable). The fourth
-argument above specifies how the marginal heading should be formatted,
-the fifth argument specifies which index entries should be made on
-account of this environment, and the sixth argument gives the list of
-changes heading (and its sorting) that should be used inside this
-\texttt{macro}-like environment.
-
-\makeatletter
-\NewMacroEnvironment{fistring}{\XD@grab@harmless\relax}{1}%
- {\MacroFont#1 \normalfont string}%
- {\XDMainIndex{\levelsorted{#1 I}{\texttt{#1} (string)}}%
- \XDMainIndex{\levelsame{strings:}\levelsorted{#1}{\texttt{#1}}}}%
- {{#1}{\texttt{#1} string}}%
- {}
-\makeatother
-
-\MakePercentIgnore
-% With the command defined, the code
-%\begin{verbatim}
-%% \begin{macro}{\make_pltotf}
-%% \begin{fistring}{TFMfileprefix}
-%% |\make_pltotf| writes a \package{PLtoTF} command for converting the
-%% current font's PL file to a TFM file. If set, the string
-%% \texttt{TFMfileprefix} will be prepended to the TFM file name---this
-%% could be used for putting the TFMs in some directory other than the
-%% current.
-%% \begin{macrocode}
-%\def\make_pltotf{
-% \pout_line\output_pltotf{pltotf~\TeX_font_name.pl~
-% \ifisstr{TFMfileprefix}\then \str{TFMfileprefix}\fi
-% \TeX_font_name.tfm
-% }
-%}
-%% \end{macrocode}
-%% \end{fistring}\end{macro}
-%\end{verbatim}
-% will print as
-%
-% \begin{macro}{\make_pltotf}
-% \begin{fistring}{TFMfileprefix}
-% |\make_pltotf| writes a \package{PLtoTF} command for converting the
-% current font's PL file to a TFM file. If set, the string
-% \texttt{TFMfileprefix} will be prepended to the TFM file name---this
-% could be used for putting the TFMs in some directory other than the
-% current.
-% \begin{macrocode}
-\def\make_pltotf{
- \pout_line\output_pltotf{pltotf~\TeX_font_name.pl~
- \ifisstr{TFMfileprefix}\then \str{TFMfileprefix}\fi
- \TeX_font_name.tfm
- }
-}
-% \end{macrocode}
-% \end{fistring}\end{macro}
-%
-\MakePercentComment
-
-\clearpage
-
-\section{Two-sided printing}
-
-As you may have noticed, marginal material has so far consistently
-been put in the \emph{outer} margin, but the examples so far given of
-such material that appears in the right margin have been restricted
-to marginal material made via the |\marginpar| command (in various
-disguises), and that isn't so hard to achieve. It's much harder to
-achieve it for marginal material produced as list item labels, so here
-are a few examples to illustrate that it works for these as well. (The
-filling up text is taken from the \package{fontsmpl} package in the
-Tools bundle.)
-
-\vspace*{0.5\textheight}
-
-(A bit of space to put the text near the page break.)
-
-% Hacks to ensure that some marginal text is positioned before the
-% previous page is output.
-\begingroup
-\interlinepenalty=500
-\setlength\MacroTopsep{1\MacroTopsep plus 3\MacroTopsep}
-
-\begin{environment}{Stanford}
- On November 14, 1885, Senator \& Mrs.~Leland Stanford called
- together at their San Francisco mansion the 24~prominent men who
- had been chosen as the first trustees of The Leland Stanford
- Junior University.
-\end{environment}
-
-\begin{environment}{charter}
- They handed to the board the Founding Grant
- of the University, which they had executed three days before.
- This document---with various amendments, legislative acts, and
- court decrees---remains as the University's charter.
-\end{environment}
-
-\begin{environment}{objectives}
- In bold, sweeping language it stipulates that the objectives of the
- University are ``to qualify students for personal success and
- direct usefulness in life;
-\end{environment}
-
-\begin{environment}{continuation}
- and to promote the publick welfare by
- exercising an influence in behalf of humanity and civilization,
- teaching the blessings of liberty regulated by law, and
- inculcating love and reverence for the great principles of
- government as derived from the inalienable rights of man to life,
- liberty, and the pursuit of happiness.''
-\end{environment}
-
-\begin{environment}{CAPITALS}
- (!`THE DAZED BROWN FOX QUICKLY GAVE 12345--67890 JUMPS!)'
-\end{environment}
-
-\begin{environment}{accents-and-such}
- ?`But aren't Kafka's Schlo\ss\
- and \AE sop's \OE uvres often na\"\i ve vis-\`a-vis the
- d\ae monic ph\oe nix's official r\^ole in fluffy s\t ouffl\'es?
-\end{environment}
-
-\endgroup
-
-As you might have noticed, the first marginal heading on this page was
-put on the wrong side the first time the document was typeset. This is
-however corrected the next time the document is typeset, and the
-\package{xdoc} package gave a warning about it at the end of the run.
-
-
-\section{An enriched index}
-
-The following index was automatically generated for copies of the
-files \texttt{ltoutenc.dtx} and \texttt{cyoutenc.dtx} to which had
-been added some extra markup. Most of that extra markup consisted of
-\texttt{enccommand} and \texttt{enccomposite} environments (the
-definitions of which can be found in Subsection~8.4 of
-\texttt{xdoc2.dtx}), but I also added a couple of |\Describe|\-|Macro|
-and |\describe|\-|cs|\-|family| commands where it seemed suitable.
-
-
-\let\listenvironmentitem=\item
-
-
- \begin{theindex}
- \makeatletter\scan@allowedfalse
-{\bfseries\hfil Symbols\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}"}\pfill a-371, a-475, a-666
- \subitem default\pfill \main{a-176}
- \subitem \texttt {OT1} encoding\pfill \main{a-335}
- \subitem \texttt {OT4} encoding\pfill \main{a-623}
- \subitem \texttt {T1} encoding\pfill \main{a-407}
- \subsubitem \texttt {A} composite\pfill \main{a-541}
- \subsubitem \texttt {a} composite\pfill \main{a-567}
- \subsubitem \texttt {E} composite\pfill \main{a-547}
- \subsubitem \texttt {e} composite\pfill \main{a-573}
- \subsubitem \texttt {I} composite\pfill \main{a-551}
- \subsubitem \texttt {i} composite\pfill \main{a-580}
- \subsubitem \texttt {\PrintChar{092}i} composite\pfill
- \main{a-581}
- \subsubitem \texttt {O} composite\pfill \main{a-557}
- \subsubitem \texttt {o} composite\pfill \main{a-587}
- \subsubitem \texttt {U} composite\pfill \main{a-561}
- \subsubitem \texttt {u} composite\pfill \main{a-591}
- \subsubitem \texttt {Y} composite\pfill \main{a-506}
- \subsubitem \texttt {y} composite\pfill \main{a-533}
- \subitem \texttt {T2A} encoding\pfill \main{b-17}
- \subsubitem \texttt {\PrintChar{092}CYRE} composite\pfill
- \main{b-441}
- \subsubitem \texttt {\PrintChar{092}cyre} composite\pfill
- \main{b-442}
- \subsubitem \texttt {\PrintChar{092}CYRII} composite\pfill
- \main{b-445}
- \subsubitem \texttt {\PrintChar{092}cyrii} composite\pfill
- \main{b-447}
- \subitem \texttt {T2B} encoding\pfill \main{b-17}
- \subsubitem \texttt {\PrintChar{092}CYRE} composite\pfill
- \main{b-441}
- \subsubitem \texttt {\PrintChar{092}cyre} composite\pfill
- \main{b-442}
- \subitem \texttt {T2C} encoding\pfill \main{b-17}
- \subsubitem \texttt {\PrintChar{092}CYRE} composite\pfill
- \main{b-441}
- \subsubitem \texttt {\PrintChar{092}cyre} composite\pfill
- \main{b-442}
- \subitem \texttt {X2} encoding\pfill \main{b-17}
- \subsubitem \texttt {\PrintChar{092}CYRE} composite\pfill
- \main{b-441}
- \subsubitem \texttt {\PrintChar{092}cyre} composite\pfill
- \main{b-442}
- \subsubitem \texttt {\PrintChar{092}CYRII} composite\pfill
- \main{b-445}
- \subsubitem \texttt {\PrintChar{092}cyrii} composite\pfill
- \main{b-447}
- \item \texttt {\PrintChar{092}'}\pfill a-373, a-477, a-668
- \subitem default\pfill \main{a-177}
- \subitem \texttt {OT1} encoding\pfill \main{a-336}
- \subitem \texttt {OT4} encoding\pfill \main{a-624}
- \subsubitem \texttt {C} composite\pfill \main{a-687}
- \subsubitem \texttt {c} composite\pfill \main{a-694}
- \subsubitem \texttt {N} composite\pfill \main{a-689}
- \subsubitem \texttt {n} composite\pfill \main{a-696}
- \subsubitem \texttt {O} composite\pfill \main{a-700}
- \subsubitem \texttt {o} composite\pfill \main{a-701}
- \subsubitem \texttt {S} composite\pfill \main{a-690}
- \subsubitem \texttt {s} composite\pfill \main{a-697}
- \subsubitem \texttt {Z} composite\pfill \main{a-691}
- \subsubitem \texttt {z} composite\pfill \main{a-698}
- \subitem \texttt {T1} encoding\pfill \main{a-404}
- \subsubitem \texttt {A} composite\pfill \main{a-538}
- \subsubitem \texttt {a} composite\pfill \main{a-564}
- \subsubitem \texttt {C} composite\pfill \main{a-486}
- \subsubitem \texttt {c} composite\pfill \main{a-513}
- \subsubitem \texttt {E} composite\pfill \main{a-545}
- \subsubitem \texttt {e} composite\pfill \main{a-571}
- \subsubitem \texttt {I} composite\pfill \main{a-549}
- \subsubitem \texttt {i} composite\pfill \main{a-576}
- \subsubitem \texttt {\PrintChar{092}i} composite\pfill
- \main{a-577}
- \subsubitem \texttt {L} composite\pfill \main{a-492}
- \subsubitem \texttt {l} composite\pfill \main{a-519}
- \subsubitem \texttt {N} composite\pfill \main{a-494}
- \subsubitem \texttt {n} composite\pfill \main{a-521}
- \subsubitem \texttt {O} composite\pfill \main{a-554}
- \subsubitem \texttt {o} composite\pfill \main{a-584}
- \subsubitem \texttt {R} composite\pfill \main{a-497}
- \subsubitem \texttt {r} composite\pfill \main{a-524}
- \subsubitem \texttt {S} composite\pfill \main{a-499}
- \subsubitem \texttt {s} composite\pfill \main{a-526}
- \subsubitem \texttt {U} composite\pfill \main{a-559}
- \subsubitem \texttt {u} composite\pfill \main{a-589}
- \subsubitem \texttt {Y} composite\pfill \main{a-562}
- \subsubitem \texttt {y} composite\pfill \main{a-592}
- \subsubitem \texttt {Z} composite\pfill \main{a-507}
- \subsubitem \texttt {z} composite\pfill \main{a-534}
- \subitem \texttt {T2A} encoding\pfill \main{b-14}
- \subitem \texttt {T2B} encoding\pfill \main{b-14}
- \subitem \texttt {T2C} encoding\pfill \main{b-14}
- \subitem \texttt {X2} encoding\pfill \main{b-14}
- \item \texttt {\MetaNormalfont \PrintChar{092}\meta {encoding}-cmd}\pfill
- \usage{6}
- \item \texttt {\MetaNormalfont \PrintChar{092}\meta {encoding}\PrintChar{092}\meta {command}}\pfill
- \usage{6}
- \item \texttt {\PrintChar{092}-}\pfill a-367, a-368, a-470,
- a-662, a-663
- \item \texttt {\PrintChar{092}.}\efill
- \subitem default\pfill \main{a-178}
- \subitem \texttt {OT1} encoding\pfill \main{a-337}
- \subitem \texttt {OT4} encoding\pfill \main{a-625}
- \subsubitem \texttt {Z} composite\pfill \main{a-692}
- \subsubitem \texttt {z} composite\pfill \main{a-699}
- \subitem \texttt {T1} encoding\pfill \main{a-413}
- \subsubitem \texttt {I} composite\pfill \main{a-510}
- \subsubitem \texttt {i} composite\pfill \main{a-483}
- \subsubitem \texttt {Z} composite\pfill \main{a-509}
- \subsubitem \texttt {z} composite\pfill \main{a-536}
- \subitem \texttt {T2A} encoding\pfill \main{b-23}
- \subsubitem \texttt {i} composite\pfill \main{b-75}
- \subitem \texttt {T2B} encoding\pfill \main{b-23}
- \subsubitem \texttt {i} composite\pfill \main{b-75}
- \subitem \texttt {T2C} encoding\pfill \main{b-23}
- \subsubitem \texttt {i} composite\pfill \main{b-75}
- \subitem \texttt {X2} encoding\pfill \main{b-23}
- \subsubitem \texttt {i} composite\pfill \main{b-75}
- \item \texttt {\PrintChar{092}<}\pfill a-471, a-616
- \item \texttt {\MetaNormalfont \PrintChar{092}?\PrintChar{092}\meta {command}}\pfill
- \usage{6}
- \item \texttt {\PrintChar{092}\PrintChar{036}}\pfill a-251, a-392,
- a-399, a-464, a-678, a-685
- \item \texttt {\PrintChar{092}\PrintChar{037}}\pfill a-427, a-429,
- b-39, b-41
- \item \texttt {\PrintChar{092}\PrintChar{061}}\efill
- \subitem default\pfill \main{a-179}
- \subitem \texttt {OT1} encoding\pfill \main{a-338}
- \subitem \texttt {OT4} encoding\pfill \main{a-626}
- \subitem \texttt {T1} encoding\pfill \main{a-412}
- \subitem \texttt {T2A} encoding\pfill \main{b-22}
- \subitem \texttt {T2B} encoding\pfill \main{b-22}
- \subitem \texttt {T2C} encoding\pfill \main{b-22}
- \subitem \texttt {X2} encoding\pfill \main{b-22}
- \item \texttt {\PrintChar{092}\PrintChar{062}}\pfill a-468, a-617
- \item \texttt {\PrintChar{092}\PrintChar{092}}\pfill a-459
- \item \texttt {\MetaNormalfont \PrintChar{092}\PrintChar{092}\meta {enc}\PrintChar{092}\meta {cmd}-\meta {arg}}\pfill
- \usage{8}
- \item \texttt {\PrintChar{092}\PrintChar{094}}\pfill a-233, a-457
- \subitem default\pfill \main{a-181}
- \subitem \texttt {OT1} encoding\pfill \main{a-339}
- \subitem \texttt {OT4} encoding\pfill \main{a-627}
- \subitem \texttt {T1} encoding\pfill \main{a-405}
- \subsubitem \texttt {A} composite\pfill \main{a-539}
- \subsubitem \texttt {a} composite\pfill \main{a-565}
- \subsubitem \texttt {E} composite\pfill \main{a-546}
- \subsubitem \texttt {e} composite\pfill \main{a-572}
- \subsubitem \texttt {I} composite\pfill \main{a-550}
- \subsubitem \texttt {i} composite\pfill \main{a-578}
- \subsubitem \texttt {\PrintChar{092}i} composite\pfill
- \main{a-579}
- \subsubitem \texttt {O} composite\pfill \main{a-555}
- \subsubitem \texttt {o} composite\pfill \main{a-585}
- \subsubitem \texttt {U} composite\pfill \main{a-560}
- \subsubitem \texttt {u} composite\pfill \main{a-590}
- \subitem \texttt {T2A} encoding\pfill \main{b-15}
- \subitem \texttt {T2B} encoding\pfill \main{b-15}
- \subitem \texttt {T2C} encoding\pfill \main{b-15}
- \subitem \texttt {X2} encoding\pfill \main{b-15}
- \begin{figure*}
- A verbatim extract from the index (without \textsf{docidx2e}):
-
- \let\item=\listenvironmentitem
- \expandafter\def \expandafter\MacroFont \expandafter{%
- \MacroFont\footnotesize}
- \begin{list}{}{\setlength{\leftmargin}{-0.5\marginparwidth}}
- \item[]
-\begin{verbatim}
- \item \texttt {\PrintChar{092}\PrintChar{061}}\efill
- \subitem default\pfill \main{a-179}
- \subitem \texttt {OT1} encoding\pfill \main{a-338}
- \subitem \texttt {OT4} encoding\pfill \main{a-626}
- \subitem \texttt {T1} encoding\pfill \main{a-412}
- \subitem \texttt {T2A} encoding\pfill \main{b-22}
- \subitem \texttt {T2B} encoding\pfill \main{b-22}
- \subitem \texttt {T2C} encoding\pfill \main{b-22}
- \subitem \texttt {X2} encoding\pfill \main{b-22}
- \item \texttt {\PrintChar{092}\PrintChar{062}}\pfill a-468, a-617
- \item \texttt {\PrintChar{092}\PrintChar{092}}\pfill a-459
- \item \texttt {\MetaNormalfont \PrintChar{092}\PrintChar{092}\meta {enc}\PrintChar{092}\meta {cmd}-\meta {arg}}\pfill
- \usage{8}
- \item \texttt {\PrintChar{092}\PrintChar{094}}\pfill a-233, a-457
- \subitem default\pfill \main{a-181}
- \subitem \texttt {OT1} encoding\pfill \main{a-339}
- \subitem \texttt {OT4} encoding\pfill \main{a-627}
- \subitem \texttt {T1} encoding\pfill \main{a-405}
- \subsubitem \texttt {A} composite\pfill \main{a-539}
- \subsubitem \texttt {a} composite\pfill \main{a-565}
- \subsubitem \texttt {E} composite\pfill \main{a-546}
- \subsubitem \texttt {e} composite\pfill \main{a-572}
- \subsubitem \texttt {I} composite\pfill \main{a-550}
- \subsubitem \texttt {i} composite\pfill \main{a-578}
- \subsubitem \texttt {\PrintChar{092}i} composite\pfill
- \main{a-579}
- \subsubitem \texttt {O} composite\pfill \main{a-555}
- \subsubitem \texttt {o} composite\pfill \main{a-585}
- \subsubitem \texttt {U} composite\pfill \main{a-560}
- \subsubitem \texttt {u} composite\pfill \main{a-590}
- \subitem \texttt {T2A} encoding\pfill \main{b-15}
- \subitem \texttt {T2B} encoding\pfill \main{b-15}
- \subitem \texttt {T2C} encoding\pfill \main{b-15}
- \subitem \texttt {X2} encoding\pfill \main{b-15}
- \item \texttt {\PrintChar{092}\PrintChar{095}}\pfill a-258
- \item \texttt {\PrintChar{092}\PrintChar{123}}\pfill a-252, a-461
- \item \texttt {\PrintChar{092}\PrintChar{124}}\pfill a-460
- \item \texttt {\PrintChar{092}\PrintChar{125}}\pfill a-253, a-462
- \item \texttt {\PrintChar{092}\PrintChar{126}}\pfill a-234, a-458
- \subitem default\pfill \main{a-189}
- \subitem \texttt {OT1} encoding\pfill \main{a-341}
- \subitem \texttt {OT4} encoding\pfill \main{a-629}
- \subitem \texttt {T1} encoding\pfill \main{a-406}
- \subsubitem \texttt {A} composite\pfill \main{a-540}
- \subsubitem \texttt {a} composite\pfill \main{a-566}
- \subsubitem \texttt {N} composite\pfill \main{a-552}
- \subsubitem \texttt {n} composite\pfill \main{a-582}
- \subsubitem \texttt {O} composite\pfill \main{a-556}
- \subsubitem \texttt {o} composite\pfill \main{a-586}
- \subitem \texttt {T2A} encoding\pfill \main{b-16}
- \subitem \texttt {T2B} encoding\pfill \main{b-16}
- \subitem \texttt {T2C} encoding\pfill \main{b-16}
- \subitem \texttt {X2} encoding\pfill \main{b-16}
-\end{verbatim}
- \end{list}
- \end{figure*}
- \begin{figure*}
- A verbatim extract from the index (with \textsf{docidx2e}):
-
- \let\item=\listenvironmentitem
- \expandafter\def \csname macro@font\expandafter\endcsname
- \expandafter{\MacroFont\footnotesize}
- \csname codeline@indexfalse\endcsname
- \begin{list}{}{%
- \setlength{\leftmargin}{-0.5\marginparwidth}%
- \setlength{\topsep}{0pt}%
- }
- \item[]
-\begin{macrocode}
-\indexitem{1}{\texttt {\PrintChar{092}\PrintChar{095}}}{9}{a\+258}{1}
-\indexitem{1}{\texttt {\PrintChar{092}\PrintChar{123}}}{9}{a\+252,
- a\+461}{1}
-\indexitem{1}{\texttt {\PrintChar{092}\PrintChar{124}}}{9}{a\+460}{1}
-\indexitem{1}{\texttt {\PrintChar{092}\PrintChar{125}}}{9}{a\+253,
- a\+462}{1}
-\indexitem{1}{\texttt {\PrintChar{092}\PrintChar{126}}}{9}{a\+234,
- a\+458}{2}
- \indexitem{2}{default}{9}{\main{a\+189}}{2}
- \indexitem{2}{\texttt {OT1} encoding}{9}{\main{a\+341}}{2}
- \indexitem{2}{\texttt {OT4} encoding}{9}{\main{a\+629}}{2}
- \indexitem{2}{\texttt {T1} encoding}{9}{\main{a\+406}}{3}
- \indexitem{3}{\texttt {A} composite}{9}{\main{a\+540}}{3}
- \indexitem{3}{\texttt {a} composite}{9}{\main{a\+566}}{3}
- \indexitem{3}{\texttt {N} composite}{9}{\main{a\+552}}{3}
- \indexitem{3}{\texttt {n} composite}{9}{\main{a\+582}}{3}
- \indexitem{3}{\texttt {O} composite}{9}{\main{a\+556}}{3}
- \indexitem{3}{\texttt {o} composite}{9}{\main{a\+586}}{2}
- \indexitem{2}{\texttt {T2A} encoding}{9}{\main{b\+16}}{2}
- \indexitem{2}{\texttt {T2B} encoding}{9}{\main{b\+16}}{2}
- \indexitem{2}{\texttt {T2C} encoding}{9}{\main{b\+16}}{2}
- \indexitem{2}{\texttt {X2} encoding}{9}{\main{b\+16}}{1}
-\indexitem{1}{\texttt {\PrintChar{092}`}}{9}{a\+372, a\+476,
- a\+667}{2}
- \indexitem{2}{default}{9}{\main{a\+182}}{2}
- \indexitem{2}{\texttt {OT1} encoding}{9}{\main{a\+340}}{2}
- \indexitem{2}{\texttt {OT4} encoding}{9}{\main{a\+628}}{2}
- \indexitem{2}{\texttt {T1} encoding}{9}{\main{a\+403}}{3}
- \indexitem{3}{\texttt {A} composite}{9}{\main{a\+537}}{3}
- \indexitem{3}{\texttt {a} composite}{9}{\main{a\+563}}{3}
- \indexitem{3}{\texttt {E} composite}{9}{\main{a\+544}}{3}
- \indexitem{3}{\texttt {e} composite}{9}{\main{a\+570}}{3}
- \indexitem{3}{\texttt {I} composite}{9}{\main{a\+548}}{3}
- \indexitem{3}{\texttt {i} composite}{9}{\main{a\+574}}{3}
- \indexitem{3}{\texttt {\PrintChar{092}i} composite}{9}{
- \main{a\+575}}{3}
- \indexitem{3}{\texttt {O} composite}{9}{\main{a\+553}}{3}
- \indexitem{3}{\texttt {o} composite}{9}{\main{a\+583}}{3}
- \indexitem{3}{\texttt {U} composite}{9}{\main{a\+558}}{3}
- \indexitem{3}{\texttt {u} composite}{9}{\main{a\+588}}{2}
- \indexitem{2}{\texttt {T2A} encoding}{9}{\main{b\+13}}{2}
- \indexitem{2}{\texttt {T2B} encoding}{9}{\main{b\+13}}{2}
- \indexitem{2}{\texttt {T2C} encoding}{9}{\main{b\+13}}{2}
- \indexitem{2}{\texttt {X2} encoding}{9}{\main{b\+13}}{0}
-%^^A
-\indexnewletter{0}{A}{1}
-\indexitem{1}{\texttt {\PrintChar{092}a}}{9}{\main{a\+173}}{1}
-\indexitem{1}{\texttt {\PrintChar{092}AA}}{9}{a\+190, a\+380,
- a\+430}{1}
-\indexitem{1}{\texttt {\PrintChar{092}aa}}{9}{a\+195, a\+374,
- a\+440}{1}
-\indexitem{1}{\texttt {\PrintChar{092}accent}}{9}{a\+71, a\+350,
- a\+375, a\+418, a\+640, b\+31}{1}
-% \end{macrocode}
- \end{list}
- \end{figure*}
- \item \texttt {\PrintChar{092}\PrintChar{095}}\pfill a-258
- \item \texttt {\PrintChar{092}\PrintChar{123}}\pfill a-252, a-461
- \item \texttt {\PrintChar{092}\PrintChar{124}}\pfill a-460
- \item \texttt {\PrintChar{092}\PrintChar{125}}\pfill a-253, a-462
- \item \texttt {\PrintChar{092}\PrintChar{126}}\pfill a-234, a-458
- \subitem default\pfill \main{a-189}
- \subitem \texttt {OT1} encoding\pfill \main{a-341}
- \subitem \texttt {OT4} encoding\pfill \main{a-629}
- \subitem \texttt {T1} encoding\pfill \main{a-406}
- \subsubitem \texttt {A} composite\pfill \main{a-540}
- \subsubitem \texttt {a} composite\pfill \main{a-566}
- \subsubitem \texttt {N} composite\pfill \main{a-552}
- \subsubitem \texttt {n} composite\pfill \main{a-582}
- \subsubitem \texttt {O} composite\pfill \main{a-556}
- \subsubitem \texttt {o} composite\pfill \main{a-586}
- \subitem \texttt {T2A} encoding\pfill \main{b-16}
- \subitem \texttt {T2B} encoding\pfill \main{b-16}
- \subitem \texttt {T2C} encoding\pfill \main{b-16}
- \subitem \texttt {X2} encoding\pfill \main{b-16}
- \item \texttt {\PrintChar{092}`}\pfill a-372, a-476, a-667
- \subitem default\pfill \main{a-182}
- \subitem \texttt {OT1} encoding\pfill \main{a-340}
- \subitem \texttt {OT4} encoding\pfill \main{a-628}
- \subitem \texttt {T1} encoding\pfill \main{a-403}
- \subsubitem \texttt {A} composite\pfill \main{a-537}
- \subsubitem \texttt {a} composite\pfill \main{a-563}
- \subsubitem \texttt {E} composite\pfill \main{a-544}
- \subsubitem \texttt {e} composite\pfill \main{a-570}
- \subsubitem \texttt {I} composite\pfill \main{a-548}
- \subsubitem \texttt {i} composite\pfill \main{a-574}
- \subsubitem \texttt {\PrintChar{092}i} composite\pfill
- \main{a-575}
- \subsubitem \texttt {O} composite\pfill \main{a-553}
- \subsubitem \texttt {o} composite\pfill \main{a-583}
- \subsubitem \texttt {U} composite\pfill \main{a-558}
- \subsubitem \texttt {u} composite\pfill \main{a-588}
- \subitem \texttt {T2A} encoding\pfill \main{b-13}
- \subitem \texttt {T2B} encoding\pfill \main{b-13}
- \subitem \texttt {T2C} encoding\pfill \main{b-13}
- \subitem \texttt {X2} encoding\pfill \main{b-13}
-
- \indexspace
-{\bfseries\hfil A\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}a}\pfill \main{a-173}
- \item \texttt {\PrintChar{092}AA}\pfill a-190, a-380, a-430
- \item \texttt {\PrintChar{092}aa}\pfill a-195, a-374, a-440
- \item \texttt {\PrintChar{092}accent}\pfill a-71, a-350, a-375,
- a-418, a-640, b-31
- \item \texttt {\PrintChar{092}accent@spacefactor}\pfill a-70--a-72
- \item \texttt {\PrintChar{092}add@accent}\pfill a-65, \main{a-67}
- \item \texttt {\PrintChar{092}AE}\efill
- \subitem default\pfill \main{a-191}
- \subitem \texttt {OT1} encoding\pfill \main{a-355}
- \subitem \texttt {OT4} encoding\pfill \main{a-645}
- \subitem \texttt {T1} encoding\pfill \main{a-431}
- \item \texttt {\PrintChar{092}ae}\efill
- \subitem default\pfill \main{a-196}
- \subitem \texttt {OT1} encoding\pfill \main{a-358}
- \subitem \texttt {OT4} encoding\pfill \main{a-649}
- \subitem \texttt {T1} encoding\pfill \main{a-441}
- \item \texttt {\PrintChar{092}afterassignment}\pfill a-162, a-170
- \item \texttt {\PrintChar{092}@autoerr}\pfill a-51
-
- \indexspace
-{\bfseries\hfil B\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}b}\efill
- \subitem default\pfill \main{a-183}
- \subitem \texttt {OT1} encoding\pfill \main{a-346}
- \subitem \texttt {OT4} encoding\pfill \main{a-636}
- \subitem \texttt {T1} encoding\pfill \main{a-414}
- \subitem \texttt {T2A} encoding\pfill \main{b-27}
- \subitem \texttt {T2B} encoding\pfill \main{b-27}
- \subitem \texttt {T2C} encoding\pfill \main{b-27}
- \subitem \texttt {X2} encoding\pfill \main{b-27}
-
- \indexspace
-{\bfseries\hfil C\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}C}\efill
- \subitem \texttt {T2A} encoding\pfill \main{b-25}
- \subitem \texttt {T2B} encoding\pfill \main{b-25}
- \subitem \texttt {T2C} encoding\pfill \main{b-25}
- \subitem \texttt {X2} encoding\pfill \main{b-25}
- \item \texttt {\PrintChar{092}c}\efill
- \subitem default\pfill \main{a-184}
- \subitem \texttt {OT1} encoding\pfill \main{a-349}
- \subitem \texttt {OT4} encoding\pfill \main{a-639}
- \subitem \texttt {T1} encoding\pfill \main{a-417}
- \subsubitem \texttt {C} composite\pfill \main{a-543}
- \subsubitem \texttt {c} composite\pfill \main{a-569}
- \subsubitem \texttt {S} composite\pfill \main{a-501}
- \subsubitem \texttt {s} composite\pfill \main{a-528}
- \subsubitem \texttt {T} composite\pfill \main{a-503}
- \subsubitem \texttt {t} composite\pfill \main{a-530}
- \subitem \texttt {T2A} encoding\pfill \main{b-30}
- \subsubitem \texttt {\PrintChar{092}CYRZ} composite\pfill
- \main{b-448}
- \subsubitem \texttt {\PrintChar{092}cyrz} composite\pfill
- \main{b-449}
- \subitem \texttt {T2B} encoding\pfill \main{b-30}
- \subitem \texttt {T2C} encoding\pfill \main{b-30}
- \subitem \texttt {X2} encoding\pfill \main{b-30}
- \subsubitem \texttt {\PrintChar{092}CYRZ} composite\pfill
- \main{b-448}
- \subsubitem \texttt {\PrintChar{092}cyrz} composite\pfill
- \main{b-449}
- \item \texttt {\PrintChar{092}capitalacute}\efill
- \subitem default\pfill \main{a-848}
- \subitem \texttt {TS1} encoding\pfill \main{a-713}
- \item \texttt {\PrintChar{092}capitalbreve}\efill
- \subitem default\pfill \main{a-855}
- \subitem \texttt {TS1} encoding\pfill \main{a-720}
- \item \texttt {\PrintChar{092}capitalcaron}\efill
- \subitem default\pfill \main{a-854}
- \subitem \texttt {TS1} encoding\pfill \main{a-719}
- \item \texttt {\PrintChar{092}capitalcedilla}\efill
- \subitem default\pfill \main{a-845}
- \subitem \texttt {TS1} encoding\pfill \main{a-706}
- \item \texttt {\PrintChar{092}capitalcircumflex}\efill
- \subitem default\pfill \main{a-849}
- \subitem \texttt {TS1} encoding\pfill \main{a-714}
- \item \texttt {\PrintChar{092}capitaldieresis}\efill
- \subitem default\pfill \main{a-851}
- \subitem \texttt {TS1} encoding\pfill \main{a-716}
- \item \texttt {\PrintChar{092}capitaldotaccent}\efill
- \subitem default\pfill \main{a-857}
- \subitem \texttt {TS1} encoding\pfill \main{a-722}
- \item \texttt {\PrintChar{092}capitalgrave}\efill
- \subitem default\pfill \main{a-847}
- \subitem \texttt {TS1} encoding\pfill \main{a-712}
- \item \texttt {\PrintChar{092}capitalhungarumlaut}\efill
- \subitem default\pfill \main{a-852}
- \subitem \texttt {TS1} encoding\pfill \main{a-717}
- \item \texttt {\PrintChar{092}capitalmacron}\efill
- \subitem default\pfill \main{a-856}
- \subitem \texttt {TS1} encoding\pfill \main{a-721}
- \item \texttt {\PrintChar{092}capitalnewtie}\efill
- \subitem default\pfill \main{a-861}
- \subitem \texttt {TS1} encoding\pfill \main{a-726}
- \item \texttt {\PrintChar{092}capitalogonek}\efill
- \subitem default\pfill \main{a-846}
- \subitem \texttt {TS1} encoding\pfill \main{a-709}
- \item \texttt {\PrintChar{092}capitalring}\efill
- \subitem default\pfill \main{a-853}
- \subitem \texttt {TS1} encoding\pfill \main{a-718}
- \item \texttt {\PrintChar{092}capitaltie}\efill
- \subitem default\pfill \main{a-859}
- \subitem \texttt {TS1} encoding\pfill \main{a-724}
- \item \texttt {\PrintChar{092}capitaltilde}\efill
- \subitem default\pfill \main{a-850}
- \subitem \texttt {TS1} encoding\pfill \main{a-715}
- \item \texttt {\PrintChar{092}@car}\pfill a-77
- \item \texttt {\PrintChar{092}cf@encoding}\pfill a-29, a-36, a-39,
- a-48, a-114
- \item \texttt {\PrintChar{092}@changed@cmd}\pfill \main{a-3}, a-63,
- a-173
- \item \texttt {\PrintChar{092}@changed@x}\pfill \main{a-3}, a-161,
- a-169
- \item \texttt {\PrintChar{092}@changed@x@mouth}\pfill a-161, a-169
- \item \texttt {\PrintChar{092}char}\pfill a-348, a-351, a-382, a-385,
- a-392, a-399, a-416, a-419, a-425, a-427, a-429, a-610,
- a-638, a-641, a-671, a-678, a-685, a-708, a-711, a-759,
- b-29, b-32, b-37, b-39, b-41
- \item \texttt {\PrintChar{092}chardef}\pfill a-8
- \item \texttt {\PrintChar{092}copyright}\pfill a-232, a-260
- \item \texttt {\PrintChar{092}crcr}\pfill a-347, a-351, a-354, a-415,
- a-420, a-423, a-425, a-609, a-637, a-641, a-644, a-708,
- a-711, a-758, b-28, b-33, b-35, b-37
- \item \texttt {\PrintChar{092}@curr@enc}\pfill a-114, a-116
- \item \texttt {\PrintChar{092}curr@fontshape}\pfill a-130
- \item \texttt {\PrintChar{092}@current@cmd}\pfill a-20
- \item \texttt {\PrintChar{092}CurrentOption}\pfill a-300, a-302,
- a-314
- \item \texttt {\PrintChar{092}CYRA}\pfill a-272
- \subitem \texttt {T2A} encoding\pfill \main{b-76}
- \subitem \texttt {T2B} encoding\pfill \main{b-76}
- \subitem \texttt {T2C} encoding\pfill \main{b-76}
- \subitem \texttt {X2} encoding\pfill \main{b-76}
- \item \texttt {\PrintChar{092}cyra}\pfill a-272, a-317
- \subitem \texttt {T2A} encoding\pfill \main{b-77}
- \subitem \texttt {T2B} encoding\pfill \main{b-77}
- \subitem \texttt {T2C} encoding\pfill \main{b-77}
- \subitem \texttt {X2} encoding\pfill \main{b-77}
- \item \texttt {\PrintChar{092}CYRABHCH}\pfill a-272, b-458, b-462
- \subitem \texttt {T2C} encoding\pfill \main{b-349}
- \subitem \texttt {X2} encoding\pfill \main{b-381}
- \item \texttt {\PrintChar{092}cyrabhch}\pfill a-272, b-459, b-463
- \subitem \texttt {T2C} encoding\pfill \main{b-350}
- \subitem \texttt {X2} encoding\pfill \main{b-382}
- \item \texttt {\PrintChar{092}CYRABHCHDSC}\pfill a-272
- \subitem \texttt {T2C} encoding\pfill \main{b-351}
- \subitem \texttt {X2} encoding\pfill \main{b-383}
- \item \texttt {\PrintChar{092}cyrabhchdsc}\pfill a-272
- \subitem \texttt {T2C} encoding\pfill \main{b-352}
- \subitem \texttt {X2} encoding\pfill \main{b-384}
- \item \texttt {\PrintChar{092}CYRABHDZE}\pfill a-273
- \subitem \texttt {T2B} encoding\pfill \main{b-271}
- \subitem \texttt {T2C} encoding\pfill \main{b-329}
- \subitem \texttt {X2} encoding\pfill \main{b-155}
- \item \texttt {\PrintChar{092}cyrabhdze}\pfill a-272
- \subitem \texttt {T2B} encoding\pfill \main{b-272}
- \subitem \texttt {T2C} encoding\pfill \main{b-330}
- \subitem \texttt {X2} encoding\pfill \main{b-156}
- \item \texttt {\PrintChar{092}CYRABHHA}\pfill a-273
- \subitem \texttt {T2C} encoding\pfill \main{b-361}
- \subitem \texttt {X2} encoding\pfill \main{b-403}
- \item \texttt {\PrintChar{092}cyrabhha}\pfill a-273
- \subitem \texttt {T2C} encoding\pfill \main{b-362}
- \subitem \texttt {X2} encoding\pfill \main{b-404}
- \item \texttt {\PrintChar{092}CYRAE}\pfill a-273
- \subitem \texttt {T2A} encoding\pfill \main{b-223}
- \subitem \texttt {X2} encoding\pfill \main{b-374}
- \item \texttt {\PrintChar{092}cyrae}\pfill a-273
- \subitem \texttt {T2A} encoding\pfill \main{b-224}
- \subitem \texttt {X2} encoding\pfill \main{b-376}
- \item \texttt {\PrintChar{092}CYRB}\pfill a-273
- \subitem \texttt {T2A} encoding\pfill \main{b-78}
- \subitem \texttt {T2B} encoding\pfill \main{b-78}
- \subitem \texttt {T2C} encoding\pfill \main{b-78}
- \subitem \texttt {X2} encoding\pfill \main{b-78}
- \item \texttt {\PrintChar{092}cyrb}\pfill a-273
- \subitem \texttt {T2A} encoding\pfill \main{b-79}
- \subitem \texttt {T2B} encoding\pfill \main{b-79}
- \subitem \texttt {T2C} encoding\pfill \main{b-79}
- \subitem \texttt {X2} encoding\pfill \main{b-79}
- \item \texttt {\PrintChar{092}CYRBYUS}\pfill a-274
- \subitem \texttt {X2} encoding\pfill \main{b-431}
- \item \texttt {\PrintChar{092}cyrbyus}\pfill a-273
- \subitem \texttt {X2} encoding\pfill \main{b-432}
- \item \texttt {\PrintChar{092}CYRC}\pfill a-274
- \subitem \texttt {T2A} encoding\pfill \main{b-120}
- \subitem \texttt {T2B} encoding\pfill \main{b-120}
- \subitem \texttt {T2C} encoding\pfill \main{b-120}
- \subitem \texttt {X2} encoding\pfill \main{b-120}
- \item \texttt {\PrintChar{092}cyrc}\pfill a-274
- \subitem \texttt {T2A} encoding\pfill \main{b-121}
- \subitem \texttt {T2B} encoding\pfill \main{b-121}
- \subitem \texttt {T2C} encoding\pfill \main{b-121}
- \subitem \texttt {X2} encoding\pfill \main{b-121}
- \item \texttt {\PrintChar{092}CYRCH}\pfill a-274
- \subitem \texttt {T2A} encoding\pfill \main{b-122}
- \subitem \texttt {T2B} encoding\pfill \main{b-122}
- \subitem \texttt {T2C} encoding\pfill \main{b-122}
- \subitem \texttt {X2} encoding\pfill \main{b-122}
- \item \texttt {\PrintChar{092}cyrch}\pfill a-274
- \subitem \texttt {T2A} encoding\pfill \main{b-123}
- \subitem \texttt {T2B} encoding\pfill \main{b-123}
- \subitem \texttt {T2C} encoding\pfill \main{b-123}
- \subitem \texttt {X2} encoding\pfill \main{b-123}
- \item \texttt {\PrintChar{092}CYRCHLDSC}\pfill a-274
- \subitem \texttt {T2B} encoding\pfill \main{b-303}
- \subitem \texttt {X2} encoding\pfill \main{b-187}
- \item \texttt {\PrintChar{092}cyrchldsc}\pfill a-274
- \subitem \texttt {T2B} encoding\pfill \main{b-304}
- \subitem \texttt {X2} encoding\pfill \main{b-188}
- \item \texttt {\PrintChar{092}CYRCHRDSC}\pfill a-275
- \subitem \texttt {T2A} encoding\pfill \main{b-247}
- \subitem \texttt {T2B} encoding\pfill \main{b-305}
- \subitem \texttt {T2C} encoding\pfill \main{b-363}
- \subitem \texttt {X2} encoding\pfill \main{b-189}
- \item \texttt {\PrintChar{092}cyrchrdsc}\pfill a-274
- \subitem \texttt {T2A} encoding\pfill \main{b-248}
- \subitem \texttt {T2B} encoding\pfill \main{b-306}
- \subitem \texttt {T2C} encoding\pfill \main{b-364}
- \subitem \texttt {X2} encoding\pfill \main{b-190}
- \item \texttt {\PrintChar{092}CYRCHVCRS}\pfill a-275
- \subitem \texttt {T2A} encoding\pfill \main{b-245}
- \subitem \texttt {X2} encoding\pfill \main{b-423}
- \item \texttt {\PrintChar{092}cyrchvcrs}\pfill a-275
- \subitem \texttt {T2A} encoding\pfill \main{b-246}
- \subitem \texttt {X2} encoding\pfill \main{b-424}
- \item \texttt {\PrintChar{092}CYRD}\pfill a-275
- \subitem \texttt {T2A} encoding\pfill \main{b-84}
- \subitem \texttt {T2B} encoding\pfill \main{b-84}
- \subitem \texttt {T2C} encoding\pfill \main{b-84}
- \subitem \texttt {X2} encoding\pfill \main{b-84}
- \item \texttt {\PrintChar{092}cyrd}\pfill a-275
- \subitem \texttt {T2A} encoding\pfill \main{b-85}
- \subitem \texttt {T2B} encoding\pfill \main{b-85}
- \subitem \texttt {T2C} encoding\pfill \main{b-85}
- \subitem \texttt {X2} encoding\pfill \main{b-85}
- \item \texttt {\PrintChar{092}cyrdash}\efill
- \subitem \texttt {T2A} encoding\pfill \main{b-43}
- \subitem \texttt {T2B} encoding\pfill \main{b-43}
- \subitem \texttt {T2C} encoding\pfill \main{b-43}
- \subitem \texttt {X2} encoding\pfill \main{b-43}
- \item \texttt {\PrintChar{092}CYRDELTA}\pfill a-275
- \subitem \texttt {T2B} encoding\pfill \main{b-269}
- \subitem \texttt {X2} encoding\pfill \main{b-435}
- \item \texttt {\PrintChar{092}cyrdelta}\pfill a-275
- \subitem \texttt {T2B} encoding\pfill \main{b-270}
- \subitem \texttt {X2} encoding\pfill \main{b-436}
- \item \texttt {\PrintChar{092}CYRDJE}\pfill a-276
- \subitem \texttt {T2A} encoding\pfill \main{b-203}
- \subitem \texttt {X2} encoding\pfill \main{b-377}
- \item \texttt {\PrintChar{092}cyrdje}\pfill a-276
- \subitem \texttt {T2A} encoding\pfill \main{b-204}
- \subitem \texttt {X2} encoding\pfill \main{b-378}
- \item \texttt {\PrintChar{092}CYRDZE}\pfill a-276
- \subitem \texttt {T2A} encoding\pfill \main{b-229}
- \subitem \texttt {T2B} encoding\pfill \main{b-416}
- \subitem \texttt {T2C} encoding\pfill \main{b-416}
- \subitem \texttt {X2} encoding\pfill \main{b-416}
- \item \texttt {\PrintChar{092}cyrdze}\pfill a-276
- \subitem \texttt {T2A} encoding\pfill \main{b-230}
- \subitem \texttt {T2B} encoding\pfill \main{b-417}
- \subitem \texttt {T2C} encoding\pfill \main{b-417}
- \subitem \texttt {X2} encoding\pfill \main{b-417}
- \item \texttt {\PrintChar{092}CYRDZHE}\pfill a-276
- \subitem \texttt {T2A} encoding\pfill \main{b-243}
- \subitem \texttt {T2C} encoding\pfill \main{b-359}
- \subitem \texttt {X2} encoding\pfill \main{b-421}
- \item \texttt {\PrintChar{092}cyrdzhe}\pfill a-276
- \subitem \texttt {T2A} encoding\pfill \main{b-244}
- \subitem \texttt {T2C} encoding\pfill \main{b-360}
- \subitem \texttt {X2} encoding\pfill \main{b-422}
- \item \texttt {\PrintChar{092}CYRE}\pfill a-276, b-441
- \subitem \texttt {T2A} encoding\pfill \main{b-86}
- \subitem \texttt {T2B} encoding\pfill \main{b-86}
- \subitem \texttt {T2C} encoding\pfill \main{b-86}
- \subitem \texttt {X2} encoding\pfill \main{b-86}
- \item \texttt {\PrintChar{092}cyre}\pfill a-276, b-442
- \subitem \texttt {T2A} encoding\pfill \main{b-87}
- \subitem \texttt {T2B} encoding\pfill \main{b-87}
- \subitem \texttt {T2C} encoding\pfill \main{b-87}
- \subitem \texttt {X2} encoding\pfill \main{b-87}
- \item \texttt {\PrintChar{092}CYREPS}\pfill a-277
- \subitem \texttt {T2B} encoding\pfill \main{b-311}
- \subitem \texttt {X2} encoding\pfill \main{b-195}
- \item \texttt {\PrintChar{092}cyreps}\pfill a-276
- \subitem \texttt {T2B} encoding\pfill \main{b-312}
- \subitem \texttt {X2} encoding\pfill \main{b-196}
- \item \texttt {\PrintChar{092}CYREREV}\pfill a-277
- \subitem \texttt {T2A} encoding\pfill \main{b-134}
- \subitem \texttt {T2B} encoding\pfill \main{b-134}
- \subitem \texttt {T2C} encoding\pfill \main{b-134}
- \subitem \texttt {X2} encoding\pfill \main{b-134}
- \item \texttt {\PrintChar{092}cyrerev}\pfill a-277
- \subitem \texttt {T2A} encoding\pfill \main{b-135}
- \subitem \texttt {T2B} encoding\pfill \main{b-135}
- \subitem \texttt {T2C} encoding\pfill \main{b-135}
- \subitem \texttt {X2} encoding\pfill \main{b-135}
- \item \texttt {\PrintChar{092}CYRERY}\pfill a-277
- \subitem \texttt {T2A} encoding\pfill \main{b-130}
- \subitem \texttt {T2B} encoding\pfill \main{b-130}
- \subitem \texttt {T2C} encoding\pfill \main{b-130}
- \subitem \texttt {X2} encoding\pfill \main{b-130}
- \item \texttt {\PrintChar{092}cyrery}\pfill a-277
- \subitem \texttt {T2A} encoding\pfill \main{b-131}
- \subitem \texttt {T2B} encoding\pfill \main{b-131}
- \subitem \texttt {T2C} encoding\pfill \main{b-131}
- \subitem \texttt {X2} encoding\pfill \main{b-131}
- \item \texttt {\PrintChar{092}CYRF}\pfill a-277
- \subitem \texttt {T2A} encoding\pfill \main{b-116}
- \subitem \texttt {T2B} encoding\pfill \main{b-116}
- \subitem \texttt {T2C} encoding\pfill \main{b-116}
- \subitem \texttt {X2} encoding\pfill \main{b-116}
- \item \texttt {\PrintChar{092}cyrf}\pfill a-277
- \subitem \texttt {T2A} encoding\pfill \main{b-117}
- \subitem \texttt {T2B} encoding\pfill \main{b-117}
- \subitem \texttt {T2C} encoding\pfill \main{b-117}
- \subitem \texttt {X2} encoding\pfill \main{b-117}
- \item \texttt {\PrintChar{092}CYRFITA}\pfill a-278
- \item \texttt {\PrintChar{092}cyrfita}\pfill a-277
- \item \texttt {\PrintChar{092}CYRG}\pfill a-278
- \subitem \texttt {T2A} encoding\pfill \main{b-82}
- \subitem \texttt {T2B} encoding\pfill \main{b-82}
- \subitem \texttt {T2C} encoding\pfill \main{b-82}
- \subitem \texttt {X2} encoding\pfill \main{b-82}
- \item \texttt {\PrintChar{092}cyrg}\pfill a-278
- \subitem \texttt {T2A} encoding\pfill \main{b-83}
- \subitem \texttt {T2B} encoding\pfill \main{b-83}
- \subitem \texttt {T2C} encoding\pfill \main{b-83}
- \subitem \texttt {X2} encoding\pfill \main{b-83}
- \item \texttt {\PrintChar{092}CYRGDSC}\pfill a-278
- \subitem \texttt {T2B} encoding\pfill \main{b-261}
- \subitem \texttt {X2} encoding\pfill \main{b-145}
- \item \texttt {\PrintChar{092}cyrgdsc}\pfill a-278
- \subitem \texttt {T2B} encoding\pfill \main{b-262}
- \subitem \texttt {X2} encoding\pfill \main{b-146}
- \item \texttt {\PrintChar{092}CYRGDSCHCRS}\pfill a-278
- \subitem \texttt {T2B} encoding\pfill \main{b-256}
- \item \texttt {\PrintChar{092}cyrgdschcrs}\pfill a-278
- \subitem \texttt {T2B} encoding\pfill \main{b-258}
- \item \texttt {\PrintChar{092}CYRGHCRS}\pfill a-279
- \subitem \texttt {T2A} encoding\pfill \main{b-201}
- \subitem \texttt {T2B} encoding\pfill \main{b-259}
- \subitem \texttt {X2} encoding\pfill \main{b-143}
- \item \texttt {\PrintChar{092}cyrghcrs}\pfill a-279
- \subitem \texttt {T2A} encoding\pfill \main{b-202}
- \subitem \texttt {T2B} encoding\pfill \main{b-260}
- \subitem \texttt {X2} encoding\pfill \main{b-144}
- \item \texttt {\PrintChar{092}CYRGHK}\pfill a-279
- \subitem \texttt {T2B} encoding\pfill \main{b-263}
- \subitem \texttt {T2C} encoding\pfill \main{b-321}
- \subitem \texttt {X2} encoding\pfill \main{b-147}
- \item \texttt {\PrintChar{092}cyrghk}\pfill a-279
- \subitem \texttt {T2B} encoding\pfill \main{b-264}
- \subitem \texttt {T2C} encoding\pfill \main{b-322}
- \subitem \texttt {X2} encoding\pfill \main{b-148}
- \item \texttt {\PrintChar{092}CYRGUP}\pfill a-279
- \subitem \texttt {T2A} encoding\pfill \main{b-198}
- \subitem \texttt {X2} encoding\pfill \main{b-140}
- \item \texttt {\PrintChar{092}cyrgup}\pfill a-279
- \subitem \texttt {T2A} encoding\pfill \main{b-200}
- \subitem \texttt {X2} encoding\pfill \main{b-142}
- \item \texttt {\PrintChar{092}CYRH}\pfill a-279
- \subitem \texttt {T2A} encoding\pfill \main{b-118}
- \subitem \texttt {T2B} encoding\pfill \main{b-118}
- \subitem \texttt {T2C} encoding\pfill \main{b-118}
- \subitem \texttt {X2} encoding\pfill \main{b-118}
- \item \texttt {\PrintChar{092}cyrh}\pfill a-279
- \subitem \texttt {T2A} encoding\pfill \main{b-119}
- \subitem \texttt {T2B} encoding\pfill \main{b-119}
- \subitem \texttt {T2C} encoding\pfill \main{b-119}
- \subitem \texttt {X2} encoding\pfill \main{b-119}
- \item \texttt {\PrintChar{092}CYRHDSC}\pfill a-280
- \subitem \texttt {T2A} encoding\pfill \main{b-241}
- \subitem \texttt {T2B} encoding\pfill \main{b-299}
- \subitem \texttt {T2C} encoding\pfill \main{b-357}
- \subitem \texttt {X2} encoding\pfill \main{b-183}
- \item \texttt {\PrintChar{092}cyrhdsc}\pfill a-280
- \subitem \texttt {T2A} encoding\pfill \main{b-242}
- \subitem \texttt {T2B} encoding\pfill \main{b-300}
- \subitem \texttt {T2C} encoding\pfill \main{b-358}
- \subitem \texttt {X2} encoding\pfill \main{b-184}
- \item \texttt {\PrintChar{092}CYRHHCRS}\pfill a-280
- \subitem \texttt {T2B} encoding\pfill \main{b-297}
- \item \texttt {\PrintChar{092}cyrhhcrs}\pfill a-280
- \subitem \texttt {T2B} encoding\pfill \main{b-298}
- \item \texttt {\PrintChar{092}CYRHHK}\pfill a-280
- \subitem \texttt {T2B} encoding\pfill \main{b-301}
- \subitem \texttt {X2} encoding\pfill \main{b-185}
- \item \texttt {\PrintChar{092}cyrhhk}\pfill a-280
- \subitem \texttt {T2B} encoding\pfill \main{b-302}
- \subitem \texttt {X2} encoding\pfill \main{b-186}
- \item \texttt {\PrintChar{092}CYRHRDSN}\pfill a-281
- \subitem \texttt {T2A} encoding\pfill \main{b-128}
- \subitem \texttt {T2B} encoding\pfill \main{b-128}
- \subitem \texttt {T2C} encoding\pfill \main{b-128}
- \subitem \texttt {X2} encoding\pfill \main{b-128}
- \item \texttt {\PrintChar{092}cyrhrdsn}\pfill a-280
- \subitem \texttt {T2A} encoding\pfill \main{b-129}
- \subitem \texttt {T2B} encoding\pfill \main{b-129}
- \subitem \texttt {T2C} encoding\pfill \main{b-129}
- \subitem \texttt {X2} encoding\pfill \main{b-129}
- \item \texttt {\PrintChar{092}CYRI}\pfill a-281, b-443
- \subitem \texttt {T2A} encoding\pfill \main{b-92}
- \subitem \texttt {T2B} encoding\pfill \main{b-92}
- \subitem \texttt {T2C} encoding\pfill \main{b-92}
- \subitem \texttt {X2} encoding\pfill \main{b-92}
- \item \texttt {\PrintChar{092}cyri}\pfill a-281, b-444
- \subitem \texttt {T2A} encoding\pfill \main{b-93}
- \subitem \texttt {T2B} encoding\pfill \main{b-93}
- \subitem \texttt {T2C} encoding\pfill \main{b-93}
- \subitem \texttt {X2} encoding\pfill \main{b-93}
- \item \texttt {\PrintChar{092}CYRIE}\pfill a-281
- \subitem \texttt {T2A} encoding\pfill \main{b-249}
- \subitem \texttt {X2} encoding\pfill \main{b-191}
- \item \texttt {\PrintChar{092}cyrie}\pfill a-281
- \subitem \texttt {T2A} encoding\pfill \main{b-250}
- \subitem \texttt {X2} encoding\pfill \main{b-192}
- \item \texttt {\PrintChar{092}CYRII}\pfill a-281, b-446
- \subitem \texttt {T2A} encoding\pfill \main{b-392}
- \subitem \texttt {T2B} encoding\pfill \main{b-392}
- \subitem \texttt {T2C} encoding\pfill \main{b-392}
- \subitem \texttt {X2} encoding\pfill \main{b-392}
- \item \texttt {\PrintChar{092}cyrii}\pfill a-281, b-447
- \subitem \texttt {T2A} encoding\pfill \main{b-393}
- \subitem \texttt {T2B} encoding\pfill \main{b-393}
- \subitem \texttt {T2C} encoding\pfill \main{b-393}
- \subitem \texttt {X2} encoding\pfill \main{b-393}
- \item \texttt {\PrintChar{092}CYRISHRT}\pfill a-281
- \subitem \texttt {T2A} encoding\pfill \main{b-94}
- \subitem \texttt {T2B} encoding\pfill \main{b-94}
- \subitem \texttt {T2C} encoding\pfill \main{b-94}
- \subitem \texttt {X2} encoding\pfill \main{b-94}
- \item \texttt {\PrintChar{092}cyrishrt}\pfill a-281
- \subitem \texttt {T2A} encoding\pfill \main{b-95}
- \subitem \texttt {T2B} encoding\pfill \main{b-95}
- \subitem \texttt {T2C} encoding\pfill \main{b-95}
- \subitem \texttt {X2} encoding\pfill \main{b-95}
- \item \texttt {\PrintChar{092}CYRISHRTDSC}\pfill a-282
- \subitem \texttt {T2C} encoding\pfill \main{b-355}
- \item \texttt {\PrintChar{092}cyrishrtdsc}\pfill a-282
- \subitem \texttt {T2C} encoding\pfill \main{b-356}
- \item \texttt {\PrintChar{092}CYRIZH}\pfill a-282
- \subitem \texttt {X2} encoding\pfill \main{b-433}
- \item \texttt {\PrintChar{092}cyrizh}\pfill a-282
- \subitem \texttt {X2} encoding\pfill \main{b-434}
- \item \texttt {\PrintChar{092}CYRJE}\pfill a-282
- \subitem \texttt {T2A} encoding\pfill \main{b-394}
- \subitem \texttt {T2B} encoding\pfill \main{b-394}
- \subitem \texttt {T2C} encoding\pfill \main{b-394}
- \subitem \texttt {X2} encoding\pfill \main{b-394}
- \item \texttt {\PrintChar{092}cyrje}\pfill a-282
- \subitem \texttt {T2A} encoding\pfill \main{b-395}
- \subitem \texttt {T2B} encoding\pfill \main{b-395}
- \subitem \texttt {T2C} encoding\pfill \main{b-395}
- \subitem \texttt {X2} encoding\pfill \main{b-395}
- \item \texttt {\PrintChar{092}CYRK}\pfill a-282
- \subitem \texttt {T2A} encoding\pfill \main{b-96}
- \subitem \texttt {T2B} encoding\pfill \main{b-96}
- \subitem \texttt {T2C} encoding\pfill \main{b-96}
- \subitem \texttt {X2} encoding\pfill \main{b-96}
- \item \texttt {\PrintChar{092}cyrk}\pfill a-282
- \subitem \texttt {T2A} encoding\pfill \main{b-97}
- \subitem \texttt {T2B} encoding\pfill \main{b-97}
- \subitem \texttt {T2C} encoding\pfill \main{b-97}
- \subitem \texttt {X2} encoding\pfill \main{b-97}
- \item \texttt {\PrintChar{092}CYRKBEAK}\pfill a-283
- \subitem \texttt {T2A} encoding\pfill \main{b-219}
- \subitem \texttt {X2} encoding\pfill \main{b-161}
- \item \texttt {\PrintChar{092}cyrkbeak}\pfill a-283
- \subitem \texttt {T2A} encoding\pfill \main{b-220}
- \subitem \texttt {X2} encoding\pfill \main{b-162}
- \item \texttt {\PrintChar{092}CYRKDSC}\pfill a-283
- \subitem \texttt {T2A} encoding\pfill \main{b-217}
- \subitem \texttt {T2B} encoding\pfill \main{b-275}
- \subitem \texttt {T2C} encoding\pfill \main{b-333}
- \subitem \texttt {X2} encoding\pfill \main{b-159}
- \item \texttt {\PrintChar{092}cyrkdsc}\pfill a-283
- \subitem \texttt {T2A} encoding\pfill \main{b-218}
- \subitem \texttt {T2B} encoding\pfill \main{b-276}
- \subitem \texttt {T2C} encoding\pfill \main{b-334}
- \subitem \texttt {X2} encoding\pfill \main{b-160}
- \item \texttt {\PrintChar{092}CYRKHCRS}\pfill a-283
- \subitem \texttt {T2C} encoding\pfill \main{b-337}
- \subitem \texttt {X2} encoding\pfill \main{b-387}
- \item \texttt {\PrintChar{092}cyrkhcrs}\pfill a-283
- \subitem \texttt {T2C} encoding\pfill \main{b-338}
- \subitem \texttt {X2} encoding\pfill \main{b-388}
- \item \texttt {\PrintChar{092}CYRKHK}\pfill a-284
- \subitem \texttt {T2B} encoding\pfill \main{b-279}
- \subitem \texttt {X2} encoding\pfill \main{b-163}
- \item \texttt {\PrintChar{092}cyrkhk}\pfill a-283
- \subitem \texttt {T2B} encoding\pfill \main{b-280}
- \subitem \texttt {X2} encoding\pfill \main{b-164}
- \item \texttt {\PrintChar{092}CYRKVCRS}\pfill a-284
- \subitem \texttt {T2A} encoding\pfill \main{b-221}
- \subitem \texttt {X2} encoding\pfill \main{b-385}
- \item \texttt {\PrintChar{092}cyrkvcrs}\pfill a-284
- \subitem \texttt {T2A} encoding\pfill \main{b-222}
- \subitem \texttt {X2} encoding\pfill \main{b-386}
- \item \texttt {\PrintChar{092}CYRL}\pfill a-284
- \subitem \texttt {T2A} encoding\pfill \main{b-98}
- \subitem \texttt {T2B} encoding\pfill \main{b-98}
- \subitem \texttt {T2C} encoding\pfill \main{b-98}
- \subitem \texttt {X2} encoding\pfill \main{b-98}
- \item \texttt {\PrintChar{092}cyrl}\pfill a-284
- \subitem \texttt {T2A} encoding\pfill \main{b-99}
- \subitem \texttt {T2B} encoding\pfill \main{b-99}
- \subitem \texttt {T2C} encoding\pfill \main{b-99}
- \subitem \texttt {X2} encoding\pfill \main{b-99}
- \item \texttt {\PrintChar{092}cyrlangle}\efill
- \subitem \texttt {T2A} encoding\pfill \main{b-69}
- \subitem \texttt {T2B} encoding\pfill \main{b-69}
- \subitem \texttt {T2C} encoding\pfill \main{b-69}
- \subitem \texttt {X2} encoding\pfill \main{b-69}
- \item \texttt {\PrintChar{092}CYRLDSC}\pfill a-284
- \subitem \texttt {T2B} encoding\pfill \main{b-277}
- \subitem \texttt {T2C} encoding\pfill \main{b-335}
- \subitem \texttt {X2} encoding\pfill \main{b-389}
- \item \texttt {\PrintChar{092}cyrldsc}\pfill a-284
- \subitem \texttt {T2B} encoding\pfill \main{b-278}
- \subitem \texttt {T2C} encoding\pfill \main{b-336}
- \subitem \texttt {X2} encoding\pfill \main{b-390}
- \item \texttt {\PrintChar{092}CYRLHK}\pfill a-285
- \subitem \texttt {T2B} encoding\pfill \main{b-281}
- \subitem \texttt {T2C} encoding\pfill \main{b-339}
- \subitem \texttt {X2} encoding\pfill \main{b-165}
- \item \texttt {\PrintChar{092}cyrlhk}\pfill a-284
- \subitem \texttt {T2B} encoding\pfill \main{b-282}
- \subitem \texttt {T2C} encoding\pfill \main{b-340}
- \subitem \texttt {X2} encoding\pfill \main{b-166}
- \item \texttt {\PrintChar{092}CYRLJE}\pfill a-285
- \subitem \texttt {T2A} encoding\pfill \main{b-213}
- \subitem \texttt {T2B} encoding\pfill \main{b-273}
- \subitem \texttt {X2} encoding\pfill \main{b-396}
- \item \texttt {\PrintChar{092}cyrlje}\pfill a-285
- \subitem \texttt {T2A} encoding\pfill \main{b-214}
- \subitem \texttt {T2B} encoding\pfill \main{b-274}
- \subitem \texttt {X2} encoding\pfill \main{b-398}
- \item \texttt {\PrintChar{092}CYRM}\pfill a-285
- \subitem \texttt {T2A} encoding\pfill \main{b-100}
- \subitem \texttt {T2B} encoding\pfill \main{b-100}
- \subitem \texttt {T2C} encoding\pfill \main{b-100}
- \subitem \texttt {X2} encoding\pfill \main{b-100}
- \item \texttt {\PrintChar{092}cyrm}\pfill a-285
- \subitem \texttt {T2A} encoding\pfill \main{b-101}
- \subitem \texttt {T2B} encoding\pfill \main{b-101}
- \subitem \texttt {T2C} encoding\pfill \main{b-101}
- \subitem \texttt {X2} encoding\pfill \main{b-101}
- \item \texttt {\PrintChar{092}CYRMDSC}\pfill a-285
- \subitem \texttt {T2C} encoding\pfill \main{b-331}
- \subitem \texttt {X2} encoding\pfill \main{b-399}
- \item \texttt {\PrintChar{092}cyrmdsc}\pfill a-285
- \subitem \texttt {T2C} encoding\pfill \main{b-332}
- \subitem \texttt {X2} encoding\pfill \main{b-400}
- \item \texttt {\PrintChar{092}CYRMHK}\pfill a-285
- \subitem \texttt {T2C} encoding\pfill \main{b-343}
- \item \texttt {\PrintChar{092}cyrmhk}\pfill a-285
- \subitem \texttt {T2C} encoding\pfill \main{b-344}
- \item \texttt {\PrintChar{092}CYRN}\pfill a-286
- \subitem \texttt {T2A} encoding\pfill \main{b-102}
- \subitem \texttt {T2B} encoding\pfill \main{b-102}
- \subitem \texttt {T2C} encoding\pfill \main{b-102}
- \subitem \texttt {X2} encoding\pfill \main{b-102}
- \item \texttt {\PrintChar{092}cyrn}\pfill a-286
- \subitem \texttt {T2A} encoding\pfill \main{b-103}
- \subitem \texttt {T2B} encoding\pfill \main{b-103}
- \subitem \texttt {T2C} encoding\pfill \main{b-103}
- \subitem \texttt {X2} encoding\pfill \main{b-103}
- \item \texttt {\PrintChar{092}CYRNDSC}\pfill a-286
- \subitem \texttt {T2A} encoding\pfill \main{b-225}
- \subitem \texttt {T2B} encoding\pfill \main{b-283}
- \subitem \texttt {T2C} encoding\pfill \main{b-341}
- \subitem \texttt {X2} encoding\pfill \main{b-167}
- \item \texttt {\PrintChar{092}cyrndsc}\pfill a-286
- \subitem \texttt {T2A} encoding\pfill \main{b-226}
- \subitem \texttt {T2B} encoding\pfill \main{b-284}
- \subitem \texttt {T2C} encoding\pfill \main{b-342}
- \subitem \texttt {X2} encoding\pfill \main{b-168}
- \item \texttt {\PrintChar{092}CYRNG}\pfill a-286
- \subitem \texttt {T2A} encoding\pfill \main{b-227}
- \subitem \texttt {T2B} encoding\pfill \main{b-285}
- \subitem \texttt {X2} encoding\pfill \main{b-169}
- \item \texttt {\PrintChar{092}cyrng}\pfill a-286
- \subitem \texttt {T2A} encoding\pfill \main{b-228}
- \subitem \texttt {T2B} encoding\pfill \main{b-286}
- \subitem \texttt {X2} encoding\pfill \main{b-170}
- \item \texttt {\PrintChar{092}CYRNHK}\pfill a-286
- \subitem \texttt {T2B} encoding\pfill \main{b-287}
- \subitem \texttt {T2C} encoding\pfill \main{b-345}
- \subitem \texttt {X2} encoding\pfill \main{b-171}
- \item \texttt {\PrintChar{092}cyrnhk}\pfill a-286
- \subitem \texttt {T2B} encoding\pfill \main{b-288}
- \subitem \texttt {T2C} encoding\pfill \main{b-346}
- \subitem \texttt {X2} encoding\pfill \main{b-172}
- \item \texttt {\PrintChar{092}CYRNJE}\pfill a-287
- \subitem \texttt {T2A} encoding\pfill \main{b-253}
- \subitem \texttt {T2B} encoding\pfill \main{b-307}
- \subitem \texttt {X2} encoding\pfill \main{b-401}
- \item \texttt {\PrintChar{092}cyrnje}\pfill a-286
- \subitem \texttt {T2A} encoding\pfill \main{b-254}
- \subitem \texttt {T2B} encoding\pfill \main{b-308}
- \subitem \texttt {X2} encoding\pfill \main{b-402}
- \item \texttt {\PrintChar{092}CYRNLHK}\pfill a-287
- \subitem \texttt {T2C} encoding\pfill \main{b-365}
- \subitem \texttt {X2} encoding\pfill \main{b-437}
- \item \texttt {\PrintChar{092}cyrnlhk}\pfill a-287
- \subitem \texttt {T2C} encoding\pfill \main{b-366}
- \subitem \texttt {X2} encoding\pfill \main{b-438}
- \item \texttt {\PrintChar{092}CYRO}\pfill a-287
- \subitem \texttt {T2A} encoding\pfill \main{b-104}
- \subitem \texttt {T2B} encoding\pfill \main{b-104}
- \subitem \texttt {T2C} encoding\pfill \main{b-104}
- \subitem \texttt {X2} encoding\pfill \main{b-104}
- \item \texttt {\PrintChar{092}cyro}\pfill a-287
- \subitem \texttt {T2A} encoding\pfill \main{b-105}
- \subitem \texttt {T2B} encoding\pfill \main{b-105}
- \subitem \texttt {T2C} encoding\pfill \main{b-105}
- \subitem \texttt {X2} encoding\pfill \main{b-105}
- \item \texttt {\PrintChar{092}CYROTLD}\pfill a-287
- \subitem \texttt {T2A} encoding\pfill \main{b-231}
- \subitem \texttt {T2B} encoding\pfill \main{b-289}
- \subitem \texttt {T2C} encoding\pfill \main{b-347}
- \subitem \texttt {X2} encoding\pfill \main{b-173}
- \item \texttt {\PrintChar{092}cyrotld}\pfill a-287
- \subitem \texttt {T2A} encoding\pfill \main{b-232}
- \subitem \texttt {T2B} encoding\pfill \main{b-290}
- \subitem \texttt {T2C} encoding\pfill \main{b-348}
- \subitem \texttt {X2} encoding\pfill \main{b-174}
- \item \texttt {\PrintChar{092}CYRP}\pfill a-287
- \subitem \texttt {T2A} encoding\pfill \main{b-106}
- \subitem \texttt {T2B} encoding\pfill \main{b-106}
- \subitem \texttt {T2C} encoding\pfill \main{b-106}
- \subitem \texttt {X2} encoding\pfill \main{b-106}
- \item \texttt {\PrintChar{092}cyrp}\pfill a-287
- \subitem \texttt {T2A} encoding\pfill \main{b-107}
- \subitem \texttt {T2B} encoding\pfill \main{b-107}
- \subitem \texttt {T2C} encoding\pfill \main{b-107}
- \subitem \texttt {X2} encoding\pfill \main{b-107}
- \item \texttt {\PrintChar{092}CYRpalochka}\efill
- \subitem \texttt {T2A} encoding\pfill \main{b-68}
- \subitem \texttt {T2B} encoding\pfill \main{b-68}
- \subitem \texttt {T2C} encoding\pfill \main{b-68}
- \subitem \texttt {X2} encoding\pfill \main{b-68}
- \item \texttt {\PrintChar{092}CYRPHK}\pfill a-288
- \subitem \texttt {T2C} encoding\pfill \main{b-314}
- \subitem \texttt {X2} encoding\pfill \main{b-405}
- \item \texttt {\PrintChar{092}cyrphk}\pfill a-288
- \subitem \texttt {T2C} encoding\pfill \main{b-316}
- \subitem \texttt {X2} encoding\pfill \main{b-406}
- \item \texttt {\PrintChar{092}CYRQ}\pfill a-288
- \subitem \texttt {T2A} encoding\pfill \main{b-410}
- \subitem \texttt {T2B} encoding\pfill \main{b-410}
- \subitem \texttt {T2C} encoding\pfill \main{b-410}
- \subitem \texttt {X2} encoding\pfill \main{b-410}
- \item \texttt {\PrintChar{092}cyrq}\pfill a-288
- \subitem \texttt {T2A} encoding\pfill \main{b-411}
- \subitem \texttt {T2B} encoding\pfill \main{b-411}
- \subitem \texttt {T2C} encoding\pfill \main{b-411}
- \subitem \texttt {X2} encoding\pfill \main{b-411}
- \item \texttt {\PrintChar{092}CYRR}\pfill a-288
- \subitem \texttt {T2A} encoding\pfill \main{b-108}
- \subitem \texttt {T2B} encoding\pfill \main{b-108}
- \subitem \texttt {T2C} encoding\pfill \main{b-108}
- \subitem \texttt {X2} encoding\pfill \main{b-108}
- \item \texttt {\PrintChar{092}cyrr}\pfill a-288
- \subitem \texttt {T2A} encoding\pfill \main{b-109}
- \subitem \texttt {T2B} encoding\pfill \main{b-109}
- \subitem \texttt {T2C} encoding\pfill \main{b-109}
- \subitem \texttt {X2} encoding\pfill \main{b-109}
- \item \texttt {\PrintChar{092}cyrrangle}\efill
- \subitem \texttt {T2A} encoding\pfill \main{b-70}
- \subitem \texttt {T2B} encoding\pfill \main{b-70}
- \subitem \texttt {T2C} encoding\pfill \main{b-70}
- \subitem \texttt {X2} encoding\pfill \main{b-70}
- \item \texttt {\PrintChar{092}CYRRDSC}\pfill a-288
- \subitem \texttt {T2C} encoding\pfill \main{b-325}
- \subitem \texttt {X2} encoding\pfill \main{b-407}
- \item \texttt {\PrintChar{092}cyrrdsc}\pfill a-288
- \subitem \texttt {T2C} encoding\pfill \main{b-326}
- \subitem \texttt {X2} encoding\pfill \main{b-408}
- \item \texttt {\PrintChar{092}CYRRHK}\pfill a-289
- \subitem \texttt {T2C} encoding\pfill \main{b-369}
- \item \texttt {\PrintChar{092}cyrrhk}\pfill a-288
- \subitem \texttt {T2C} encoding\pfill \main{b-370}
- \item \texttt {\PrintChar{092}CYRRTICK}\pfill a-289
- \subitem \texttt {T2C} encoding\pfill \main{b-327}
- \item \texttt {\PrintChar{092}cyrrtick}\pfill a-289
- \subitem \texttt {T2C} encoding\pfill \main{b-328}
- \item \texttt {\PrintChar{092}CYRS}\pfill a-289, b-450
- \subitem \texttt {T2A} encoding\pfill \main{b-110}
- \subitem \texttt {T2B} encoding\pfill \main{b-110}
- \subitem \texttt {T2C} encoding\pfill \main{b-110}
- \subitem \texttt {X2} encoding\pfill \main{b-110}
- \item \texttt {\PrintChar{092}cyrs}\pfill a-289, b-451
- \subitem \texttt {T2A} encoding\pfill \main{b-111}
- \subitem \texttt {T2B} encoding\pfill \main{b-111}
- \subitem \texttt {T2C} encoding\pfill \main{b-111}
- \subitem \texttt {X2} encoding\pfill \main{b-111}
- \item \texttt {\PrintChar{092}CYRSACRS}\pfill a-289
- \subitem \texttt {T2B} encoding\pfill \main{b-291}
- \item \texttt {\PrintChar{092}cyrsacrs}\pfill a-289
- \subitem \texttt {T2B} encoding\pfill \main{b-292}
- \item \texttt {\PrintChar{092}CYRSCHWA}\pfill a-290
- \subitem \texttt {T2A} encoding\pfill \main{b-251}
- \subitem \texttt {T2B} encoding\pfill \main{b-309}
- \subitem \texttt {T2C} encoding\pfill \main{b-367}
- \subitem \texttt {X2} encoding\pfill \main{b-193}
- \item \texttt {\PrintChar{092}cyrschwa}\pfill a-290
- \subitem \texttt {T2A} encoding\pfill \main{b-252}
- \subitem \texttt {T2B} encoding\pfill \main{b-310}
- \subitem \texttt {T2C} encoding\pfill \main{b-368}
- \subitem \texttt {X2} encoding\pfill \main{b-194}
- \item \texttt {\PrintChar{092}CYRSDSC}\pfill a-290
- \subitem \texttt {T2A} encoding\pfill \main{b-233}
- \subitem \texttt {X2} encoding\pfill \main{b-175}
- \item \texttt {\PrintChar{092}cyrsdsc}\pfill a-290
- \subitem \texttt {T2A} encoding\pfill \main{b-234}
- \subitem \texttt {X2} encoding\pfill \main{b-176}
- \item \texttt {\PrintChar{092}CYRSEMISFTSN}\pfill a-290
- \subitem \texttt {T2C} encoding\pfill \main{b-353}
- \item \texttt {\PrintChar{092}cyrsemisftsn}\pfill a-290
- \subitem \texttt {T2C} encoding\pfill \main{b-354}
- \item \texttt {\PrintChar{092}CYRSFTSN}\pfill a-291
- \subitem \texttt {T2A} encoding\pfill \main{b-132}
- \subitem \texttt {T2B} encoding\pfill \main{b-132}
- \subitem \texttt {T2C} encoding\pfill \main{b-132}
- \subitem \texttt {X2} encoding\pfill \main{b-132}
- \item \texttt {\PrintChar{092}cyrsftsn}\pfill a-291
- \subitem \texttt {T2A} encoding\pfill \main{b-133}
- \subitem \texttt {T2B} encoding\pfill \main{b-133}
- \subitem \texttt {T2C} encoding\pfill \main{b-133}
- \subitem \texttt {X2} encoding\pfill \main{b-133}
- \item \texttt {\PrintChar{092}CYRSH}\pfill a-291
- \subitem \texttt {T2A} encoding\pfill \main{b-124}
- \subitem \texttt {T2B} encoding\pfill \main{b-124}
- \subitem \texttt {T2C} encoding\pfill \main{b-124}
- \subitem \texttt {X2} encoding\pfill \main{b-124}
- \item \texttt {\PrintChar{092}cyrsh}\pfill a-291
- \subitem \texttt {T2A} encoding\pfill \main{b-125}
- \subitem \texttt {T2B} encoding\pfill \main{b-125}
- \subitem \texttt {T2C} encoding\pfill \main{b-125}
- \subitem \texttt {X2} encoding\pfill \main{b-125}
- \item \texttt {\PrintChar{092}CYRSHCH}\pfill a-291
- \subitem \texttt {T2A} encoding\pfill \main{b-126}
- \subitem \texttt {T2B} encoding\pfill \main{b-126}
- \subitem \texttt {T2C} encoding\pfill \main{b-126}
- \subitem \texttt {X2} encoding\pfill \main{b-126}
- \item \texttt {\PrintChar{092}cyrshch}\pfill a-291
- \subitem \texttt {T2A} encoding\pfill \main{b-127}
- \subitem \texttt {T2B} encoding\pfill \main{b-127}
- \subitem \texttt {T2C} encoding\pfill \main{b-127}
- \subitem \texttt {X2} encoding\pfill \main{b-127}
- \item \texttt {\PrintChar{092}CYRSHHA}\pfill a-291
- \subitem \texttt {T2A} encoding\pfill \main{b-207}
- \subitem \texttt {T2B} encoding\pfill \main{b-265}
- \subitem \texttt {T2C} encoding\pfill \main{b-323}
- \subitem \texttt {X2} encoding\pfill \main{b-149}
- \item \texttt {\PrintChar{092}cyrshha}\pfill a-291
- \subitem \texttt {T2A} encoding\pfill \main{b-208}
- \subitem \texttt {T2B} encoding\pfill \main{b-266}
- \subitem \texttt {T2C} encoding\pfill \main{b-324}
- \subitem \texttt {X2} encoding\pfill \main{b-150}
- \item \texttt {\PrintChar{092}CYRT}\pfill a-292
- \subitem \texttt {T2A} encoding\pfill \main{b-112}
- \subitem \texttt {T2B} encoding\pfill \main{b-112}
- \subitem \texttt {T2C} encoding\pfill \main{b-112}
- \subitem \texttt {X2} encoding\pfill \main{b-112}
- \item \texttt {\PrintChar{092}cyrt}\pfill a-292
- \subitem \texttt {T2A} encoding\pfill \main{b-113}
- \subitem \texttt {T2B} encoding\pfill \main{b-113}
- \subitem \texttt {T2C} encoding\pfill \main{b-113}
- \subitem \texttt {X2} encoding\pfill \main{b-113}
- \item \texttt {\PrintChar{092}CYRTDSC}\pfill a-292
- \subitem \texttt {T2C} encoding\pfill \main{b-319}
- \subitem \texttt {X2} encoding\pfill \main{b-412}
- \item \texttt {\PrintChar{092}cyrtdsc}\pfill a-292
- \subitem \texttt {T2C} encoding\pfill \main{b-320}
- \subitem \texttt {X2} encoding\pfill \main{b-414}
- \item \texttt {\PrintChar{092}CYRTETSE}\pfill a-292
- \subitem \texttt {T2C} encoding\pfill \main{b-317}
- \subitem \texttt {X2} encoding\pfill \main{b-418}
- \item \texttt {\PrintChar{092}cyrtetse}\pfill a-292
- \subitem \texttt {T2C} encoding\pfill \main{b-318}
- \subitem \texttt {X2} encoding\pfill \main{b-420}
- \item \texttt {\PrintChar{092}CYRTSHE}\pfill a-292
- \subitem \texttt {T2A} encoding\pfill \main{b-205}
- \subitem \texttt {X2} encoding\pfill \main{b-379}
- \item \texttt {\PrintChar{092}cyrtshe}\pfill a-292
- \subitem \texttt {T2A} encoding\pfill \main{b-206}
- \subitem \texttt {X2} encoding\pfill \main{b-380}
- \item \texttt {\PrintChar{092}CYRU}\pfill a-293, b-454
- \subitem \texttt {T2A} encoding\pfill \main{b-114}
- \subitem \texttt {T2B} encoding\pfill \main{b-114}
- \subitem \texttt {T2C} encoding\pfill \main{b-114}
- \subitem \texttt {X2} encoding\pfill \main{b-114}
- \item \texttt {\PrintChar{092}cyru}\pfill a-293, b-455
- \subitem \texttt {T2A} encoding\pfill \main{b-115}
- \subitem \texttt {T2B} encoding\pfill \main{b-115}
- \subitem \texttt {T2C} encoding\pfill \main{b-115}
- \subitem \texttt {X2} encoding\pfill \main{b-115}
- \item \texttt {\PrintChar{092}CYRUSHRT}\pfill a-293
- \subitem \texttt {T2A} encoding\pfill \main{b-235}
- \subitem \texttt {T2B} encoding\pfill \main{b-293}
- \subitem \texttt {X2} encoding\pfill \main{b-177}
- \item \texttt {\PrintChar{092}cyrushrt}\pfill a-293
- \subitem \texttt {T2A} encoding\pfill \main{b-236}
- \subitem \texttt {T2B} encoding\pfill \main{b-294}
- \subitem \texttt {X2} encoding\pfill \main{b-178}
- \item \texttt {\PrintChar{092}CYRV}\pfill a-293
- \subitem \texttt {T2A} encoding\pfill \main{b-80}
- \subitem \texttt {T2B} encoding\pfill \main{b-80}
- \subitem \texttt {T2C} encoding\pfill \main{b-80}
- \subitem \texttt {X2} encoding\pfill \main{b-80}
- \item \texttt {\PrintChar{092}cyrv}\pfill a-293
- \subitem \texttt {T2A} encoding\pfill \main{b-81}
- \subitem \texttt {T2B} encoding\pfill \main{b-81}
- \subitem \texttt {T2C} encoding\pfill \main{b-81}
- \subitem \texttt {X2} encoding\pfill \main{b-81}
- \item \texttt {\PrintChar{092}CYRW}\pfill a-293
- \subitem \texttt {T2A} encoding\pfill \main{b-426}
- \subitem \texttt {T2B} encoding\pfill \main{b-426}
- \subitem \texttt {T2C} encoding\pfill \main{b-426}
- \subitem \texttt {X2} encoding\pfill \main{b-426}
- \item \texttt {\PrintChar{092}cyrw}\pfill a-293
- \subitem \texttt {T2A} encoding\pfill \main{b-427}
- \subitem \texttt {T2B} encoding\pfill \main{b-427}
- \subitem \texttt {T2C} encoding\pfill \main{b-427}
- \subitem \texttt {X2} encoding\pfill \main{b-427}
- \item \texttt {\PrintChar{092}CYRY}\pfill a-293
- \subitem \texttt {T2A} encoding\pfill \main{b-237}
- \subitem \texttt {T2B} encoding\pfill \main{b-295}
- \subitem \texttt {X2} encoding\pfill \main{b-179}
- \item \texttt {\PrintChar{092}cyry}\pfill a-293
- \subitem \texttt {T2A} encoding\pfill \main{b-238}
- \subitem \texttt {T2B} encoding\pfill \main{b-296}
- \subitem \texttt {X2} encoding\pfill \main{b-180}
- \item \texttt {\PrintChar{092}CYRYA}\pfill a-294
- \subitem \texttt {T2A} encoding\pfill \main{b-138}
- \subitem \texttt {T2B} encoding\pfill \main{b-138}
- \subitem \texttt {T2C} encoding\pfill \main{b-138}
- \subitem \texttt {X2} encoding\pfill \main{b-138}
- \item \texttt {\PrintChar{092}cyrya}\pfill a-294
- \subitem \texttt {T2A} encoding\pfill \main{b-139}
- \subitem \texttt {T2B} encoding\pfill \main{b-139}
- \subitem \texttt {T2C} encoding\pfill \main{b-139}
- \subitem \texttt {X2} encoding\pfill \main{b-139}
- \item \texttt {\PrintChar{092}CYRYAT}\pfill a-294
- \subitem \texttt {X2} encoding\pfill \main{b-428}
- \item \texttt {\PrintChar{092}cyryat}\pfill a-294
- \subitem \texttt {X2} encoding\pfill \main{b-430}
- \item \texttt {\PrintChar{092}CYRYHCRS}\pfill a-294
- \subitem \texttt {T2A} encoding\pfill \main{b-239}
- \subitem \texttt {X2} encoding\pfill \main{b-181}
- \item \texttt {\PrintChar{092}cyryhcrs}\pfill a-294
- \subitem \texttt {T2A} encoding\pfill \main{b-240}
- \subitem \texttt {X2} encoding\pfill \main{b-182}
- \item \texttt {\PrintChar{092}CYRYI}\pfill a-294
- \subitem \texttt {T2A} encoding\pfill \main{b-215}
- \subitem \texttt {X2} encoding\pfill \main{b-157}
- \item \texttt {\PrintChar{092}cyryi}\pfill a-294
- \subitem \texttt {T2A} encoding\pfill \main{b-216}
- \subitem \texttt {X2} encoding\pfill \main{b-158}
- \item \texttt {\PrintChar{092}CYRYO}\pfill a-295
- \subitem \texttt {T2A} encoding\pfill \main{b-372}
- \subitem \texttt {T2B} encoding\pfill \main{b-372}
- \subitem \texttt {T2C} encoding\pfill \main{b-372}
- \subitem \texttt {X2} encoding\pfill \main{b-372}
- \item \texttt {\PrintChar{092}cyryo}\pfill a-294
- \subitem \texttt {T2A} encoding\pfill \main{b-373}
- \subitem \texttt {T2B} encoding\pfill \main{b-373}
- \subitem \texttt {T2C} encoding\pfill \main{b-373}
- \subitem \texttt {X2} encoding\pfill \main{b-373}
- \item \texttt {\PrintChar{092}CYRYU}\pfill a-295
- \subitem \texttt {T2A} encoding\pfill \main{b-136}
- \subitem \texttt {T2B} encoding\pfill \main{b-136}
- \subitem \texttt {T2C} encoding\pfill \main{b-136}
- \subitem \texttt {X2} encoding\pfill \main{b-136}
- \item \texttt {\PrintChar{092}cyryu}\pfill a-295
- \subitem \texttt {T2A} encoding\pfill \main{b-137}
- \subitem \texttt {T2B} encoding\pfill \main{b-137}
- \subitem \texttt {T2C} encoding\pfill \main{b-137}
- \subitem \texttt {X2} encoding\pfill \main{b-137}
- \item \texttt {\PrintChar{092}CYRZ}\pfill a-295, b-448
- \subitem \texttt {T2A} encoding\pfill \main{b-90}
- \subitem \texttt {T2B} encoding\pfill \main{b-90}
- \subitem \texttt {T2C} encoding\pfill \main{b-90}
- \subitem \texttt {X2} encoding\pfill \main{b-90}
- \item \texttt {\PrintChar{092}cyrz}\pfill a-295, b-449
- \subitem \texttt {T2A} encoding\pfill \main{b-91}
- \subitem \texttt {T2B} encoding\pfill \main{b-91}
- \subitem \texttt {T2C} encoding\pfill \main{b-91}
- \subitem \texttt {X2} encoding\pfill \main{b-91}
- \item \texttt {\PrintChar{092}CYRZDSC}\pfill a-295
- \subitem \texttt {T2A} encoding\pfill \main{b-211}
- \subitem \texttt {X2} encoding\pfill \main{b-153}
- \item \texttt {\PrintChar{092}cyrzdsc}\pfill a-295
- \subitem \texttt {T2A} encoding\pfill \main{b-212}
- \subitem \texttt {X2} encoding\pfill \main{b-154}
- \item \texttt {\PrintChar{092}CYRZH}\pfill a-295
- \subitem \texttt {T2A} encoding\pfill \main{b-88}
- \subitem \texttt {T2B} encoding\pfill \main{b-88}
- \subitem \texttt {T2C} encoding\pfill \main{b-88}
- \subitem \texttt {X2} encoding\pfill \main{b-88}
- \item \texttt {\PrintChar{092}cyrzh}\pfill a-295
- \subitem \texttt {T2A} encoding\pfill \main{b-89}
- \subitem \texttt {T2B} encoding\pfill \main{b-89}
- \subitem \texttt {T2C} encoding\pfill \main{b-89}
- \subitem \texttt {X2} encoding\pfill \main{b-89}
- \item \texttt {\PrintChar{092}CYRZHDSC}\pfill a-296
- \subitem \texttt {T2A} encoding\pfill \main{b-209}
- \subitem \texttt {T2B} encoding\pfill \main{b-267}
- \subitem \texttt {X2} encoding\pfill \main{b-151}
- \item \texttt {\PrintChar{092}cyrzhdsc}\pfill a-296
- \subitem \texttt {T2A} encoding\pfill \main{b-210}
- \subitem \texttt {T2B} encoding\pfill \main{b-268}
- \subitem \texttt {X2} encoding\pfill \main{b-152}
-
- \indexspace
-{\bfseries\hfil D\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}d}\efill
- \subitem default\pfill \main{a-185}
- \subitem \texttt {OT1} encoding\pfill \main{a-352}
- \subitem \texttt {OT4} encoding\pfill \main{a-642}
- \subitem \texttt {T1} encoding\pfill \main{a-421}
- \subitem \texttt {T2A} encoding\pfill \main{b-34}
- \subitem \texttt {T2B} encoding\pfill \main{b-34}
- \subitem \texttt {T2C} encoding\pfill \main{b-34}
- \subitem \texttt {X2} encoding\pfill \main{b-34}
- \item \texttt {\PrintChar{092}dag}\pfill a-256
- \item \texttt {\PrintChar{092}dagger}\pfill a-256
- \item \texttt {\PrintChar{092}ddag}\pfill a-257
- \item \texttt {\PrintChar{092}ddagger}\pfill a-257
- \item \texttt {\PrintChar{092}@dec@text@cmd}\pfill \main{a-3}
- \item \texttt {\PrintChar{092}DeclareFontEncoding}\pfill a-334,
- a-402, a-595, a-615, a-621, a-704, b-8--b-11
- \item \texttt {\PrintChar{092}DeclareFontSubstitution}\pfill a-622,
- a-705, b-12
- \item \texttt {\PrintChar{092}DeclareOption}\pfill a-299
- \item \texttt {\PrintChar{092}DeclareRobustCommand}\pfill
- a-251--a-258, a-260, a-262, a-264
- \item \texttt {\PrintChar{092}DeclareTextAccent}\pfill \usage{2},
- \main{a-64}, a-335--a-345, a-403--a-413, a-618,
- a-623--a-633, a-712--a-726, b-13--b-26
- \item \texttt {\PrintChar{092}DeclareTextAccentDefault}\pfill
- \usage{3}, \main{a-135}, a-176--a-189, a-226, a-229,
- a-844--a-861
- \item \texttt {\PrintChar{092}DeclareTextCommand}\pfill \usage{1},
- \main{a-3}, a-58, a-65, a-346, a-349, a-352, a-374,
- a-376, a-378, a-380, a-386, a-393, a-414, a-417, a-421,
- a-424, a-426, a-428, a-607, a-634, a-636, a-639, a-642,
- a-672, a-679, a-706, a-709, a-756, b-27, b-30, b-34,
- b-36, b-38, b-40
- \item \texttt {\PrintChar{092}DeclareTextCommandDefault}\pfill
- \usage{3}, \main{a-57}, a-136, a-138, a-230,
- a-233--a-236, a-238, a-242, a-246--a-250
- \item \texttt {\PrintChar{092}DeclareTextComposite}\pfill \usage{2},
- \main{a-74}, a-483--a-592, a-686--a-701, b-75,
- b-441--b-444, b-446--b-451, b-454, b-455, b-458, b-459,
- b-462, b-463
- \item \texttt {\PrintChar{092}DeclareTextCompositeCommand}\pfill
- \usage{2}, \main{a-74}, a-383, a-669
- \item \texttt {\PrintChar{092}DeclareTextSymbol}\pfill \usage{1},
- \main{a-3}, a-355--a-373, a-430--a-482, a-596--a-606,
- a-616, a-617, a-645--a-668, a-727--a-755, a-762--a-841,
- b-42--b-74, b-76--b-139, b-141--b-196, b-199--b-254,
- b-257--b-312, b-315--b-370, b-372, b-373, b-375--b-390,
- b-392--b-395, b-397--b-408, b-410, b-411, b-413, b-414,
- b-416, b-417, b-419--b-424, b-426, b-427, b-429--b-438
- \item \texttt {\PrintChar{092}DeclareTextSymbolDefault}\pfill
- \usage{3}, \main{a-135}, a-190--a-225, a-227, a-228,
- a-862--a-970
- \item \texttt {\PrintChar{092}DH}\efill
- \subitem \texttt {T1} encoding\pfill \main{a-432}
- \item \texttt {\PrintChar{092}dh}\efill
- \subitem \texttt {T1} encoding\pfill \main{a-442}
- \item \texttt {\PrintChar{092}dimen@}\pfill a-381, a-382,
- a-384, a-385, a-670, a-671
- \item \texttt {\PrintChar{092}DJ}\efill
- \subitem \texttt {T1} encoding\pfill \main{a-433}
- \item \texttt {\PrintChar{092}dj}\efill
- \subitem \texttt {T1} encoding\pfill \main{a-443}
- \item \texttt {\PrintChar{092}dots}\pfill a-264, a-266
-
- \indexspace
-{\bfseries\hfil E\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}@eha}\pfill a-49
- \item \texttt {\PrintChar{092}@@enc@update}\pfill a-133
- \item \texttt {\PrintChar{092}encodingdefault}\pfill a-300, a-326
-
- \indexspace
-{\bfseries\hfil F\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}f}\efill
- \subitem \texttt {T2A} encoding\pfill \main{b-24}
- \subitem \texttt {T2B} encoding\pfill \main{b-24}
- \subitem \texttt {T2C} encoding\pfill \main{b-24}
- \subitem \texttt {X2} encoding\pfill \main{b-24}
- \item \texttt {\PrintChar{092}f@encoding}\pfill a-128
- \item \texttt {\PrintChar{092}f@size}\pfill a-130
- \item \texttt {\PrintChar{092}@firstofone}\pfill a-68, a-113
- \item \texttt {\PrintChar{092}@firstoftwo}\pfill a-97
- \item \texttt {\PrintChar{092}font}\pfill a-243--a-245, a-387, a-394,
- a-673, a-680
- \item \texttt {\PrintChar{092}font@name}\pfill a-129, a-132
- \item \texttt {\PrintChar{092}fontdimen}\pfill a-243--a-245, a-387,
- a-394, a-673, a-680
- \item \texttt {\PrintChar{092}fontencoding}\pfill a-326
- \item \texttt {\PrintChar{092}fontshape}\pfill a-397, a-683
-
- \indexspace
-{\bfseries\hfil G\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}@gobble}\pfill a-24
- \item \texttt {\PrintChar{092}guillemotleft}\efill
- \subitem \texttt {OT4} encoding\pfill \main{a-650}
- \subitem \texttt {T1} encoding\pfill \main{a-444}
- \subitem \texttt {T2A} encoding\pfill \main{b-71}
- \subitem \texttt {T2B} encoding\pfill \main{b-71}
- \subitem \texttt {T2C} encoding\pfill \main{b-71}
- \subitem \texttt {X2} encoding\pfill \main{b-71}
- \item \texttt {\PrintChar{092}guillemotright}\efill
- \subitem \texttt {OT4} encoding\pfill \main{a-651}
- \subitem \texttt {T1} encoding\pfill \main{a-445}
- \subitem \texttt {T2A} encoding\pfill \main{b-72}
- \subitem \texttt {T2B} encoding\pfill \main{b-72}
- \subitem \texttt {T2C} encoding\pfill \main{b-72}
- \subitem \texttt {X2} encoding\pfill \main{b-72}
- \item \texttt {\PrintChar{092}guilsinglleft}\efill
- \subitem \texttt {T1} encoding\pfill \main{a-446}
- \item \texttt {\PrintChar{092}guilsinglright}\efill
- \subitem \texttt {T1} encoding\pfill \main{a-447}
-
- \indexspace
-{\bfseries\hfil H\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}H}\efill
- \subitem default\pfill \main{a-180}
- \subitem \texttt {OT1} encoding\pfill \main{a-342}
- \subitem \texttt {OT4} encoding\pfill \main{a-630}
- \subitem \texttt {T1} encoding\pfill \main{a-408}
- \subsubitem \texttt {O} composite\pfill \main{a-496}
- \subsubitem \texttt {o} composite\pfill \main{a-523}
- \subsubitem \texttt {U} composite\pfill \main{a-504}
- \subsubitem \texttt {u} composite\pfill \main{a-531}
- \subitem \texttt {T2A} encoding\pfill \main{b-18}
- \subitem \texttt {T2B} encoding\pfill \main{b-18}
- \subitem \texttt {T2C} encoding\pfill \main{b-18}
- \subitem \texttt {X2} encoding\pfill \main{b-18}
- \item \texttt {\PrintChar{092}hb@xt@}\pfill a-377
- \item \texttt {\PrintChar{092}@height}\pfill a-239, a-241
- \item \texttt {\PrintChar{092}hidewidth}\pfill a-347, a-348, a-351,
- a-354, a-415, a-416, a-419, a-423, a-425, a-637, a-638,
- a-641, a-644, a-708, a-711, b-28, b-29, b-32, b-35,
- b-37
- \item \texttt {\PrintChar{092}hmode@bgroup}\pfill a-67, \main{a-73},
- a-347, a-353, a-379, a-386, a-393, a-415, a-422, a-607,
- a-637, a-643, a-672, a-679, a-707, a-710, a-756
- \item \texttt {\PrintChar{092}hmode@start@before@group}\pfill a-68,
- a-111, a-113, a-119, \main{a-134}
- \item \texttt {\PrintChar{092}hrule}\pfill a-237, a-240
- \item \texttt {\PrintChar{092}hyphenation}\pfill \main{a-155}
- \item \texttt {\PrintChar{092}@@hyphenation}\pfill \main{a-155}
-
- \indexspace
-{\bfseries\hfil I\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}i}\pfill a-483, a-575, a-577, a-579,
- a-581, b-75
- \subitem default\pfill \main{a-197}
- \subitem \texttt {OT1} encoding\pfill \main{a-359}
- \subitem \texttt {OT4} encoding\pfill \main{a-652}
- \subitem \texttt {T1} encoding\pfill \main{a-448}
- \subitem \texttt {T2A} encoding\pfill \main{b-73}
- \subitem \texttt {T2B} encoding\pfill \main{b-73}
- \subitem \texttt {T2C} encoding\pfill \main{b-73}
- \item \texttt {\PrintChar{092}@ifdefinable}\pfill a-16
- \item \texttt {\PrintChar{092}ifin@}\pfill a-316, a-319
- \item \texttt {\PrintChar{092}@ifl@ter}\pfill a-330, a-331
- \item \texttt {\PrintChar{092}@ifl@ter@@}\pfill a-330, a-331
- \item \texttt {\PrintChar{092}in@}\pfill a-314, a-317
- \item \texttt {\PrintChar{092}@inmathwarn}\pfill \main{a-3}
- \item \texttt {\PrintChar{092}input}\pfill a-971
- \item \texttt {\PrintChar{092}InputIfFileExists}\pfill a-304
- \item \texttt {\PrintChar{092}itshape}\pfill a-395, a-681
-
- \indexspace
-{\bfseries\hfil J\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}j}\efill
- \subitem default\pfill \main{a-198}
- \subitem \texttt {OT1} encoding\pfill \main{a-360}
- \subitem \texttt {OT4} encoding\pfill \main{a-653}
- \subitem \texttt {T1} encoding\pfill \main{a-449}
- \subitem \texttt {T2A} encoding\pfill \main{b-74}
- \subitem \texttt {T2B} encoding\pfill \main{b-74}
- \subitem \texttt {T2C} encoding\pfill \main{b-74}
-
- \indexspace
-{\bfseries\hfil K\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}k}\efill
- \subitem \texttt {OT4} encoding\pfill \main{a-634}
- \subsubitem \texttt {A} composite\pfill \main{a-686}
- \subsubitem \texttt {a} composite\pfill \main{a-693}
- \subsubitem \texttt {E} composite\pfill \main{a-688}
- \subsubitem \texttt {e} composite\pfill \main{a-695}
- \subitem \texttt {T1} encoding\pfill \main{a-424}
- \subsubitem \texttt {A} composite\pfill \main{a-485}
- \subsubitem \texttt {a} composite\pfill \main{a-512}
- \subsubitem \texttt {E} composite\pfill \main{a-490}
- \subsubitem \texttt {e} composite\pfill \main{a-517}
- \subitem \texttt {T2A} encoding\pfill \main{b-36}
- \subsubitem \texttt {\PrintChar{092}CYRS} composite\pfill
- \main{b-450}
- \subsubitem \texttt {\PrintChar{092}cyrs} composite\pfill
- \main{b-451}
- \subitem \texttt {T2B} encoding\pfill \main{b-36}
- \subitem \texttt {T2C} encoding\pfill \main{b-36}
- \subsubitem \texttt {\PrintChar{092}CYRABHCH} composite\pfill
- \main{b-461}
- \subsubitem \texttt {\PrintChar{092}cyrabhch} composite\pfill
- \main{b-463}
- \subitem \texttt {X2} encoding\pfill \main{b-36}
- \subsubitem \texttt {\PrintChar{092}CYRABHCH} composite\pfill
- \main{b-457}
- \subsubitem \texttt {\PrintChar{092}cyrabhch} composite\pfill
- \main{b-459}
- \subsubitem \texttt {\PrintChar{092}CYRS} composite\pfill
- \main{b-450}
- \subsubitem \texttt {\PrintChar{092}cyrs} composite\pfill
- \main{b-451}
-
- \indexspace
-{\bfseries\hfil L\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}L}\efill
- \subitem default\pfill \main{a-192}
- \subitem \texttt {OT1} encoding\pfill \main{a-376}
- \subitem \texttt {OT4} encoding\pfill \main{a-648}
- \subitem \texttt {T1} encoding\pfill \main{a-434}
- \item \texttt {\PrintChar{092}l}\efill
- \subitem default\pfill \main{a-199}
- \subitem \texttt {OT1} encoding\pfill \main{a-378}
- \subitem \texttt {OT4} encoding\pfill \main{a-654}
- \subitem \texttt {T1} encoding\pfill \main{a-450}
- \item \texttt {\PrintChar{092}LastDeclaredEncoding}\pfill b-12--b-27,
- b-30, b-34, b-36, b-38, b-40, b-42--b-139,
- b-372, b-373, b-392--b-395, b-410, b-411, b-416, b-417,
- b-426, b-427, b-441--b-444, b-446--b-451, b-454, b-455
- \item \texttt {\PrintChar{092}@latex@error}\pfill a-47
- \item \texttt {\PrintChar{092}@latex@warning}\pfill a-55
- \item \texttt {\PrintChar{092}lbrace}\pfill a-252
- \item \texttt {\PrintChar{092}lccode}\pfill a-104
- \item \texttt {\PrintChar{092}ldots}\pfill a-266
- \item \texttt {\PrintChar{092}leavevmode}\pfill a-73, a-134, a-235,
- a-237, a-350, a-377, a-381, a-384, a-418, a-640, a-670,
- b-31
- \item \texttt {\PrintChar{092}lowercase}\pfill a-105, a-302
-
- \indexspace
-{\bfseries\hfil M\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}mathchardef}\pfill a-70
- \item \texttt {\PrintChar{092}mathdollar}\pfill a-251
- \item \texttt {\PrintChar{092}mathellipsis}\pfill a-265
- \item \texttt {\PrintChar{092}mathparagraph}\pfill a-254
- \item \texttt {\PrintChar{092}mathsection}\pfill a-255
- \item \texttt {\PrintChar{092}mathsterling}\pfill a-263
- \item \texttt {\PrintChar{092}mbox}\pfill a-239
- \item \texttt {\PrintChar{092}MessageBreak}\pfill a-121, a-307,
- a-310
-
- \indexspace
-{\bfseries\hfil N\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}NeedsTeXFormat}\pfill b-2
- \item \texttt {\PrintChar{092}newcommand}\pfill a-4
- \item \texttt {\PrintChar{092}newtie}\efill
- \subitem default\pfill \main{a-860}
- \subitem \texttt {TS1} encoding\pfill \main{a-725}
- \item \texttt {\PrintChar{092}nfss@text}\pfill a-259, a-261
- \item \texttt {\PrintChar{092}NG}\efill
- \subitem \texttt {T1} encoding\pfill \main{a-435}
- \item \texttt {\PrintChar{092}ng}\efill
- \subitem \texttt {T1} encoding\pfill \main{a-451}
- \item \texttt {\PrintChar{092}@nil}\pfill a-77
- \item \texttt {\PrintChar{092}null}\pfill a-425, a-708, a-711, b-37
-
- \indexspace
-{\bfseries\hfil O\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}O}\efill
- \subitem default\pfill \main{a-194}
- \subitem \texttt {OT1} encoding\pfill \main{a-357}
- \subitem \texttt {OT4} encoding\pfill \main{a-647}
- \subitem \texttt {T1} encoding\pfill \main{a-437}
- \item \texttt {\PrintChar{092}o}\efill
- \subitem default\pfill \main{a-201}
- \subitem \texttt {OT1} encoding\pfill \main{a-362}
- \subitem \texttt {OT4} encoding\pfill \main{a-655}
- \subitem \texttt {T1} encoding\pfill \main{a-453}
- \item \texttt {\PrintChar{092}o@lign}\pfill a-347, a-354, a-415,
- a-423, a-637, a-644, b-28, b-35
- \item \texttt {\PrintChar{092}oalign}\pfill a-425, b-37
- \item \texttt {\PrintChar{092}OE}\efill
- \subitem default\pfill \main{a-193}
- \subitem \texttt {OT1} encoding\pfill \main{a-356}
- \subitem \texttt {OT4} encoding\pfill \main{a-646}
- \subitem \texttt {T1} encoding\pfill \main{a-436}
- \item \texttt {\PrintChar{092}oe}\efill
- \subitem default\pfill \main{a-200}
- \subitem \texttt {OT1} encoding\pfill \main{a-361}
- \subitem \texttt {OT4} encoding\pfill \main{a-656}
- \subitem \texttt {T1} encoding\pfill \main{a-452}
- \item \texttt {\PrintChar{092}@onlypreamble}\pfill a-18, a-19,
- a-61, a-62, a-66, a-89, a-109, a-139, a-140, a-154
- \item \texttt {\PrintChar{092}ooalign}\pfill a-351, a-419, a-608,
- a-641, a-708, a-711, a-757, b-32
-
- \indexspace
-{\bfseries\hfil P\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}P}\pfill a-254
- \item \texttt {\PrintChar{092}PackageError}\pfill a-305
- \item \texttt {\PrintChar{092}patterns}\pfill \main{a-155}
- \item \texttt {\PrintChar{092}@@patterns}\pfill \main{a-155}
- \item \texttt {\PrintChar{092}pickup@font}\pfill a-131
- \item \texttt {\PrintChar{092}pounds}\pfill a-262
- \item \texttt {\PrintChar{092}ProcessOptions}\pfill a-325
- \item \texttt {\PrintChar{092}protect}\pfill a-21, a-27, a-48, a-55,
- a-159, a-167
- \item \texttt {\PrintChar{092}providecommand}\pfill a-6
- \item \texttt {\PrintChar{092}ProvidesFile}\pfill b-3--b-6
- \item \texttt {\PrintChar{092}ProvideTextCommand}\pfill \usage{1},
- \main{a-3}, a-60
- \item \texttt {\PrintChar{092}ProvideTextCommandDefault}\pfill
- \usage{3}, \main{a-57}
-
- \indexspace
-{\bfseries\hfil Q\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}quotedblbase}\efill
- \subitem \texttt {OT4} encoding\pfill \main{a-657}
- \subitem \texttt {T1} encoding\pfill \main{a-454}
- \subitem \texttt {T2A} encoding\pfill \main{b-67}
- \subitem \texttt {T2B} encoding\pfill \main{b-67}
- \subitem \texttt {T2C} encoding\pfill \main{b-67}
- \subitem \texttt {X2} encoding\pfill \main{b-67}
- \item \texttt {\PrintChar{092}quotesinglbase}\efill
- \subitem \texttt {T1} encoding\pfill \main{a-455}
-
- \indexspace
-{\bfseries\hfil R\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}r}\efill
- \subitem default\pfill \main{a-186}
- \subitem \texttt {OT1} encoding\pfill \main{a-345}
- \subsubitem \texttt {A} composite\pfill \main{a-383}
- \subitem \texttt {OT4} encoding\pfill \main{a-633}
- \subsubitem \texttt {A} composite\pfill \main{a-669}
- \subitem \texttt {T1} encoding\pfill \main{a-409}
- \subsubitem \texttt {A} composite\pfill \main{a-542}
- \subsubitem \texttt {a} composite\pfill \main{a-568}
- \subsubitem \texttt {U} composite\pfill \main{a-505}
- \subsubitem \texttt {u} composite\pfill \main{a-532}
- \subitem \texttt {T2A} encoding\pfill \main{b-19}
- \subitem \texttt {T2B} encoding\pfill \main{b-19}
- \subitem \texttt {T2C} encoding\pfill \main{b-19}
- \subitem \texttt {X2} encoding\pfill \main{b-19}
- \item \texttt {\PrintChar{092}raise}\pfill a-382, a-385, a-609,
- a-671, a-758
- \item \texttt {\PrintChar{092}rbrace}\pfill a-253
- \item \texttt {\PrintChar{092}@rc@ifdefinable}\pfill a-16
- \item \texttt {\PrintChar{092}reserved@a}\pfill a-75, a-77, a-85,
- a-102, a-107
- \item \texttt {\PrintChar{092}reserved@b}\pfill a-78, a-85
- \item \texttt {\PrintChar{092}reserved@f}\pfill a-301--a-304, a-306,
- a-313
- \item \texttt {\PrintChar{092}rlap}\pfill a-382, a-385, a-671
-
- \indexspace
-{\bfseries\hfil S\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}S}\pfill a-255
- \item \texttt {\PrintChar{092}scshape}\pfill a-246
- \item \texttt {\PrintChar{092}@secondoftwo}\pfill a-95
- \item \texttt {\PrintChar{092}selectfont}\pfill a-326, a-397, a-683
- \item \texttt {\PrintChar{092}sh@ft}\pfill a-347, a-354, a-415,
- a-423, a-637, a-644, b-28, b-35
- \item \texttt {\PrintChar{092}slshape}\pfill a-388, a-674
- \item \texttt {\PrintChar{092}spacefactor}\pfill a-70, a-71
- \item \texttt {\PrintChar{092}SS}\efill
- \subitem default\pfill \main{a-248}
- \subitem \texttt {T1} encoding\pfill \main{a-438}
- \item \texttt {\PrintChar{092}ss}\efill
- \subitem default\pfill \main{a-202}
- \subitem \texttt {OT1} encoding\pfill \main{a-363}
- \subitem \texttt {OT4} encoding\pfill \main{a-658}
- \subitem \texttt {T1} encoding\pfill \main{a-456}
- \item \texttt {\PrintChar{092}@strip@args}\pfill \main{a-74}
- \item \texttt {\PrintChar{092}symbol}\pfill a-122
-
- \indexspace
-{\bfseries\hfil T\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}t}\efill
- \subitem default\pfill \main{a-229}, \main{a-858}
- \subitem \texttt {OML} encoding\pfill \main{a-618}
- \subitem \texttt {TS1} encoding\pfill \main{a-723}
- \item \texttt {\PrintChar{092}@tabacckludge}\pfill a-173, a-175
- \item \texttt {\PrintChar{092}@tempboxa}\pfill a-69
- \item \texttt {\PrintChar{092}@text@composite}\pfill \main{a-74}
- \item \texttt {\PrintChar{092}@text@composite@x}\pfill \main{a-74}
- \item \texttt {\PrintChar{092}textacutedbl}\efill
- \subitem default\pfill \main{a-908}
- \subitem \texttt {TS1} encoding\pfill \main{a-778}
- \item \texttt {\PrintChar{092}textascendercompwordmark}\efill
- \subitem default\pfill \main{a-863}
- \subitem \texttt {TS1} encoding\pfill \main{a-728}
- \item \texttt {\PrintChar{092}textasciiacute}\efill
- \subitem default\pfill \main{a-957}
- \subitem \texttt {TS1} encoding\pfill \main{a-828}
- \item \texttt {\PrintChar{092}textasciibreve}\efill
- \subitem default\pfill \main{a-905}
- \subitem \texttt {TS1} encoding\pfill \main{a-776}
- \item \texttt {\PrintChar{092}textasciicaron}\efill
- \subitem default\pfill \main{a-906}
- \subitem \texttt {TS1} encoding\pfill \main{a-777}
- \item \texttt {\PrintChar{092}textasciicircum}\efill
- \subitem default\pfill \main{a-233}
- \subitem \texttt {T1} encoding\pfill \main{a-457}
- \subitem \texttt {T2A} encoding\pfill \main{b-53}
- \subitem \texttt {T2B} encoding\pfill \main{b-53}
- \subitem \texttt {T2C} encoding\pfill \main{b-53}
- \subitem \texttt {X2} encoding\pfill \main{b-53}
- \item \texttt {\PrintChar{092}textasciidieresis}\efill
- \subitem default\pfill \main{a-945}
- \subitem \texttt {TS1} encoding\pfill \main{a-816}
- \item \texttt {\PrintChar{092}textasciigrave}\efill
- \subitem default\pfill \main{a-896}
- \subitem \texttt {TS1} encoding\pfill \main{a-767}
- \item \texttt {\PrintChar{092}textasciimacron}\efill
- \subitem default\pfill \main{a-952}
- \subitem \texttt {TS1} encoding\pfill \main{a-823}
- \item \texttt {\PrintChar{092}textasciitilde}\efill
- \subitem default\pfill \main{a-234}
- \subitem \texttt {T1} encoding\pfill \main{a-458}
- \subitem \texttt {T2A} encoding\pfill \main{b-58}
- \subitem \texttt {T2B} encoding\pfill \main{b-58}
- \subitem \texttt {T2C} encoding\pfill \main{b-58}
- \subitem \texttt {X2} encoding\pfill \main{b-58}
- \item \texttt {\PrintChar{092}textasteriskcentered}\efill
- \subitem default\pfill \main{a-215}, \main{a-873}
- \subitem \texttt {OMS} encoding\pfill \main{a-596}
- \subitem \texttt {TS1} encoding\pfill \main{a-738}
- \item \texttt {\PrintChar{092}textbackslash}\efill
- \subitem default\pfill \main{a-216}
- \subitem \texttt {OMS} encoding\pfill \main{a-597}
- \subitem \texttt {T1} encoding\pfill \main{a-459}
- \subitem \texttt {T2A} encoding\pfill \main{b-52}
- \subitem \texttt {T2B} encoding\pfill \main{b-52}
- \subitem \texttt {T2C} encoding\pfill \main{b-52}
- \subitem \texttt {X2} encoding\pfill \main{b-52}
- \item \texttt {\PrintChar{092}textbaht}\efill
- \subitem default\pfill \main{a-931}
- \subitem \texttt {TS1} encoding\pfill \main{a-802}
- \item \texttt {\PrintChar{092}textbar}\efill
- \subitem default\pfill \main{a-217}
- \subitem \texttt {OMS} encoding\pfill \main{a-598}
- \subitem \texttt {T1} encoding\pfill \main{a-460}
- \subitem \texttt {T2A} encoding\pfill \main{b-56}
- \subitem \texttt {T2B} encoding\pfill \main{b-56}
- \subitem \texttt {T2C} encoding\pfill \main{b-56}
- \subitem \texttt {X2} encoding\pfill \main{b-56}
- \item \texttt {\PrintChar{092}textbardbl}\efill
- \subitem default\pfill \main{a-911}
- \subitem \texttt {TS1} encoding\pfill \main{a-782}
- \item \texttt {\PrintChar{092}textbigcircle}\efill
- \subitem default\pfill \main{a-890}
- \subitem \texttt {TS1} encoding\pfill \main{a-755}
- \item \texttt {\PrintChar{092}textblank}\efill
- \subitem default\pfill \main{a-870}
- \subitem \texttt {TS1} encoding\pfill \main{a-735}
- \item \texttt {\PrintChar{092}textborn}\efill
- \subitem default\pfill \main{a-897}
- \subitem \texttt {TS1} encoding\pfill \main{a-768}
- \item \texttt {\PrintChar{092}textbraceleft}\pfill a-252
- \subitem default\pfill \main{a-218}
- \subitem \texttt {OMS} encoding\pfill \main{a-599}
- \subitem \texttt {T1} encoding\pfill \main{a-461}
- \subitem \texttt {T2A} encoding\pfill \main{b-55}
- \subitem \texttt {T2B} encoding\pfill \main{b-55}
- \subitem \texttt {T2C} encoding\pfill \main{b-55}
- \subitem \texttt {X2} encoding\pfill \main{b-55}
- \item \texttt {\PrintChar{092}textbraceright}\pfill a-253
- \subitem default\pfill \main{a-219}
- \subitem \texttt {OMS} encoding\pfill \main{a-600}
- \subitem \texttt {T1} encoding\pfill \main{a-462}
- \subitem \texttt {T2A} encoding\pfill \main{b-57}
- \subitem \texttt {T2B} encoding\pfill \main{b-57}
- \subitem \texttt {T2C} encoding\pfill \main{b-57}
- \subitem \texttt {X2} encoding\pfill \main{b-57}
- \item \texttt {\PrintChar{092}textbrokenbar}\efill
- \subitem default\pfill \main{a-943}
- \subitem \texttt {TS1} encoding\pfill \main{a-814}
- \item \texttt {\PrintChar{092}textbullet}\efill
- \subitem default\pfill \main{a-220}, \main{a-913}
- \subitem \texttt {OMS} encoding\pfill \main{a-601}
- \subitem \texttt {TS1} encoding\pfill \main{a-784}
- \item \texttt {\PrintChar{092}textcapitalcompwordmark}\efill
- \subitem default\pfill \main{a-862}
- \subitem \texttt {TS1} encoding\pfill \main{a-727}
- \item \texttt {\PrintChar{092}textcelsius}\efill
- \subitem default\pfill \main{a-914}
- \subitem \texttt {TS1} encoding\pfill \main{a-785}
- \item \texttt {\PrintChar{092}textcent}\efill
- \subitem default\pfill \main{a-939}
- \subitem \texttt {TS1} encoding\pfill \main{a-810}
- \item \texttt {\PrintChar{092}textcentoldstyle}\efill
- \subitem default\pfill \main{a-916}
- \subitem \texttt {TS1} encoding\pfill \main{a-787}
- \item \texttt {\PrintChar{092}textcircled}\pfill a-230, a-246
- \subitem default\pfill \main{a-226}, \main{a-843}
- \subitem \texttt {OMS} encoding\pfill \main{a-607}
- \subitem \texttt {TS1} encoding\pfill \main{a-756}
- \item \texttt {\PrintChar{092}textcircledP}\efill
- \subitem default\pfill \main{a-950}
- \subitem \texttt {TS1} encoding\pfill \main{a-821}
- \item \texttt {\PrintChar{092}textcolonmonetary}\efill
- \subitem default\pfill \main{a-918}
- \subitem \texttt {TS1} encoding\pfill \main{a-789}
- \item \texttt {\PrintChar{092}textcompwordmark}\efill
- \subitem default\pfill \main{a-235}
- \subitem \texttt {T1} encoding\pfill \main{a-463}
- \subitem \texttt {T2A} encoding\pfill \main{b-45}
- \subitem \texttt {T2B} encoding\pfill \main{b-45}
- \subitem \texttt {T2C} encoding\pfill \main{b-45}
- \subitem \texttt {X2} encoding\pfill \main{b-45}
- \item \texttt {\PrintChar{092}textcopyleft}\efill
- \subitem default\pfill \main{a-948}
- \subitem \texttt {TS1} encoding\pfill \main{a-819}
- \item \texttt {\PrintChar{092}textcopyright}\pfill a-261
- \subitem default\pfill \main{a-230}, \main{a-946}
- \subitem \texttt {TS1} encoding\pfill \main{a-817}
- \item \texttt {\PrintChar{092}textcurrency}\efill
- \subitem default\pfill \main{a-941}
- \subitem \texttt {T2A} encoding\pfill \main{b-60}
- \subitem \texttt {T2B} encoding\pfill \main{b-60}
- \subitem \texttt {T2C} encoding\pfill \main{b-60}
- \subitem \texttt {TS1} encoding\pfill \main{a-812}
- \subitem \texttt {X2} encoding\pfill \main{b-60}
- \item \texttt {\PrintChar{092}textdagger}\pfill a-256
- \subitem default\pfill \main{a-222}, \main{a-909}
- \subitem \texttt {OMS} encoding\pfill \main{a-603}
- \subitem \texttt {TS1} encoding\pfill \main{a-780}
- \item \texttt {\PrintChar{092}textdaggerdbl}\pfill a-257
- \subitem default\pfill \main{a-221}, \main{a-910}
- \subitem \texttt {OMS} encoding\pfill \main{a-602}
- \subitem \texttt {TS1} encoding\pfill \main{a-781}
- \item \texttt {\PrintChar{092}textdblhyphen}\efill
- \subitem default\pfill \main{a-874}
- \subitem \texttt {TS1} encoding\pfill \main{a-739}
- \item \texttt {\PrintChar{092}textdblhyphenchar}\efill
- \subitem default\pfill \main{a-904}
- \subitem \texttt {TS1} encoding\pfill \main{a-775}
- \item \texttt {\PrintChar{092}textdegree}\efill
- \subitem default\pfill \main{a-953}
- \subitem \texttt {TS1} encoding\pfill \main{a-824}
- \item \texttt {\PrintChar{092}textdied}\efill
- \subitem default\pfill \main{a-899}
- \subitem \texttt {TS1} encoding\pfill \main{a-770}
- \item \texttt {\PrintChar{092}textdiscount}\efill
- \subitem default\pfill \main{a-933}
- \subitem \texttt {TS1} encoding\pfill \main{a-804}
- \item \texttt {\PrintChar{092}textdiv}\efill
- \subitem default\pfill \main{a-970}
- \subitem \texttt {TS1} encoding\pfill \main{a-841}
- \item \texttt {\PrintChar{092}textdivorced}\efill
- \subitem default\pfill \main{a-898}
- \subitem \texttt {TS1} encoding\pfill \main{a-769}
- \item \texttt {\PrintChar{092}textdollar}\pfill a-251, a-973, a-975
- \subitem default\pfill \main{a-203}, \main{a-871}
- \subitem \texttt {OT1} encoding\pfill \main{a-386}
- \subitem \texttt {OT4} encoding\pfill \main{a-672}
- \subitem \texttt {T1} encoding\pfill \main{a-464}
- \subitem \texttt {T2A} encoding\pfill \main{b-47}
- \subitem \texttt {T2B} encoding\pfill \main{b-47}
- \subitem \texttt {T2C} encoding\pfill \main{b-47}
- \subitem \texttt {TS1} encoding\pfill \main{a-736}
- \subitem \texttt {X2} encoding\pfill \main{b-47}
- \item \texttt {\PrintChar{092}textdollaroldstyle}\efill
- \subitem default\pfill \main{a-915}
- \subitem \texttt {TS1} encoding\pfill \main{a-786}
- \item \texttt {\PrintChar{092}textdong}\efill
- \subitem default\pfill \main{a-927}
- \subitem \texttt {TS1} encoding\pfill \main{a-798}
- \item \texttt {\PrintChar{092}textdownarrow}\efill
- \subitem default\pfill \main{a-895}
- \subitem \texttt {TS1} encoding\pfill \main{a-766}
- \item \texttt {\PrintChar{092}texteightoldstyle}\efill
- \subitem default\pfill \main{a-884}
- \subitem \texttt {TS1} encoding\pfill \main{a-749}
- \item \texttt {\PrintChar{092}textellipsis}\pfill a-265
- \subitem default\pfill \main{a-242}
- \item \texttt {\PrintChar{092}textemdash}\efill
- \subitem default\pfill \main{a-204}
- \subitem \texttt {OT1} encoding\pfill \main{a-364}
- \subitem \texttt {OT4} encoding\pfill \main{a-659}
- \subitem \texttt {T1} encoding\pfill \main{a-465}
- \subitem \texttt {T2A} encoding\pfill \main{b-44}
- \subitem \texttt {T2B} encoding\pfill \main{b-44}
- \subitem \texttt {T2C} encoding\pfill \main{b-44}
- \subitem \texttt {X2} encoding\pfill \main{b-44}
- \item \texttt {\PrintChar{092}textendash}\efill
- \subitem default\pfill \main{a-205}
- \subitem \texttt {OT1} encoding\pfill \main{a-365}
- \subitem \texttt {OT4} encoding\pfill \main{a-660}
- \subitem \texttt {T1} encoding\pfill \main{a-466}
- \subitem \texttt {T2A} encoding\pfill \main{b-42}
- \subitem \texttt {T2B} encoding\pfill \main{b-42}
- \subitem \texttt {T2C} encoding\pfill \main{b-42}
- \subitem \texttt {X2} encoding\pfill \main{b-42}
- \item \texttt {\PrintChar{092}textestimated}\efill
- \subitem default\pfill \main{a-934}
- \subitem \texttt {TS1} encoding\pfill \main{a-805}
- \item \texttt {\PrintChar{092}texteuro}\efill
- \subitem default\pfill \main{a-968}
- \subitem \texttt {TS1} encoding\pfill \main{a-839}
- \item \texttt {\PrintChar{092}textexclamdown}\efill
- \subitem default\pfill \main{a-206}
- \subitem \texttt {OT1} encoding\pfill \main{a-366}
- \subitem \texttt {OT4} encoding\pfill \main{a-661}
- \subitem \texttt {T1} encoding\pfill \main{a-467}
- \item \texttt {\PrintChar{092}textfiveoldstyle}\efill
- \subitem default\pfill \main{a-881}
- \subitem \texttt {TS1} encoding\pfill \main{a-746}
- \item \texttt {\PrintChar{092}textflorin}\efill
- \subitem default\pfill \main{a-917}
- \subitem \texttt {TS1} encoding\pfill \main{a-788}
- \item \texttt {\PrintChar{092}textfouroldstyle}\efill
- \subitem default\pfill \main{a-880}
- \subitem \texttt {TS1} encoding\pfill \main{a-745}
- \item \texttt {\PrintChar{092}textfractionsolidus}\efill
- \subitem default\pfill \main{a-875}
- \subitem \texttt {TS1} encoding\pfill \main{a-740}
- \item \texttt {\PrintChar{092}textgravedbl}\efill
- \subitem default\pfill \main{a-907}
- \subitem \texttt {TS1} encoding\pfill \main{a-779}
- \item \texttt {\PrintChar{092}textgreater}\efill
- \subitem default\pfill \main{a-228}
- \subitem \texttt {OML} encoding\pfill \main{a-617}
- \subitem \texttt {T1} encoding\pfill \main{a-468}
- \subitem \texttt {T2A} encoding\pfill \main{b-49}
- \subitem \texttt {T2B} encoding\pfill \main{b-49}
- \subitem \texttt {T2C} encoding\pfill \main{b-49}
- \subitem \texttt {X2} encoding\pfill \main{b-49}
- \item \texttt {\PrintChar{092}textguarani}\efill
- \subitem default\pfill \main{a-921}
- \subitem \texttt {TS1} encoding\pfill \main{a-792}
- \item \texttt {\PrintChar{092}texthyphen}\pfill a-208, a-368, a-470,
- a-663, b-51
- \item \texttt {\PrintChar{092}texthyphenchar}\pfill a-207, a-367,
- a-469, a-662, b-50
- \item \texttt {\PrintChar{092}textinterrobang}\efill
- \subitem default\pfill \main{a-925}
- \subitem \texttt {TS1} encoding\pfill \main{a-796}
- \item \texttt {\PrintChar{092}textinterrobangdown}\efill
- \subitem default\pfill \main{a-926}
- \subitem \texttt {TS1} encoding\pfill \main{a-797}
- \item \texttt {\PrintChar{092}textlangle}\efill
- \subitem default\pfill \main{a-886}
- \subitem \texttt {TS1} encoding\pfill \main{a-751}
- \item \texttt {\PrintChar{092}textlbrackdbl}\efill
- \subitem default\pfill \main{a-892}
- \subitem \texttt {TS1} encoding\pfill \main{a-763}
- \item \texttt {\PrintChar{092}textleaf}\efill
- \subitem default\pfill \main{a-900}
- \subitem \texttt {TS1} encoding\pfill \main{a-771}
- \item \texttt {\PrintChar{092}textleftarrow}\efill
- \subitem default\pfill \main{a-868}
- \subitem \texttt {TS1} encoding\pfill \main{a-733}
- \item \texttt {\PrintChar{092}textless}\efill
- \subitem default\pfill \main{a-227}
- \subitem \texttt {OML} encoding\pfill \main{a-616}
- \subitem \texttt {T1} encoding\pfill \main{a-471}
- \subitem \texttt {T2A} encoding\pfill \main{b-48}
- \subitem \texttt {T2B} encoding\pfill \main{b-48}
- \subitem \texttt {T2C} encoding\pfill \main{b-48}
- \subitem \texttt {X2} encoding\pfill \main{b-48}
- \item \texttt {\PrintChar{092}textlira}\efill
- \subitem default\pfill \main{a-923}
- \subitem \texttt {TS1} encoding\pfill \main{a-794}
- \item \texttt {\PrintChar{092}textlnot}\efill
- \subitem default\pfill \main{a-949}
- \subitem \texttt {TS1} encoding\pfill \main{a-820}
- \item \texttt {\PrintChar{092}textlquill}\efill
- \subitem default\pfill \main{a-937}
- \subitem \texttt {TS1} encoding\pfill \main{a-808}
- \item \texttt {\PrintChar{092}textmarried}\efill
- \subitem default\pfill \main{a-901}
- \subitem \texttt {TS1} encoding\pfill \main{a-772}
- \item \texttt {\PrintChar{092}textmho}\efill
- \subitem default\pfill \main{a-889}
- \subitem \texttt {TS1} encoding\pfill \main{a-754}
- \item \texttt {\PrintChar{092}textminus}\efill
- \subitem default\pfill \main{a-887}
- \subitem \texttt {TS1} encoding\pfill \main{a-752}
- \item \texttt {\PrintChar{092}textmu}\efill
- \subitem default\pfill \main{a-958}
- \subitem \texttt {TS1} encoding\pfill \main{a-829}
- \item \texttt {\PrintChar{092}textmusicalnote}\efill
- \subitem default\pfill \main{a-902}
- \subitem \texttt {TS1} encoding\pfill \main{a-773}
- \item \texttt {\PrintChar{092}textnaira}\efill
- \subitem default\pfill \main{a-920}
- \subitem \texttt {TS1} encoding\pfill \main{a-791}
- \item \texttt {\PrintChar{092}textnineoldstyle}\efill
- \subitem default\pfill \main{a-885}
- \subitem \texttt {TS1} encoding\pfill \main{a-750}
- \item \texttt {\PrintChar{092}textnumero}\efill
- \subitem default\pfill \main{a-932}
- \subitem \texttt {T2A} encoding\pfill \main{b-59}
- \subitem \texttt {T2B} encoding\pfill \main{b-59}
- \subitem \texttt {T2C} encoding\pfill \main{b-59}
- \subitem \texttt {TS1} encoding\pfill \main{a-803}
- \subitem \texttt {X2} encoding\pfill \main{b-59}
- \item \texttt {\PrintChar{092}textohm}\efill
- \subitem default\pfill \main{a-891}
- \subitem \texttt {TS1} encoding\pfill \main{a-762}
- \item \texttt {\PrintChar{092}textonehalf}\efill
- \subitem default\pfill \main{a-966}
- \subitem \texttt {TS1} encoding\pfill \main{a-837}
- \item \texttt {\PrintChar{092}textoneoldstyle}\efill
- \subitem default\pfill \main{a-877}
- \subitem \texttt {TS1} encoding\pfill \main{a-742}
- \item \texttt {\PrintChar{092}textonequarter}\efill
- \subitem default\pfill \main{a-965}
- \subitem \texttt {TS1} encoding\pfill \main{a-836}
- \item \texttt {\PrintChar{092}textonesuperior}\efill
- \subitem default\pfill \main{a-962}
- \subitem \texttt {TS1} encoding\pfill \main{a-833}
- \item \texttt {\PrintChar{092}textopenbullet}\efill
- \subitem default\pfill \main{a-935}
- \subitem \texttt {TS1} encoding\pfill \main{a-806}
- \item \texttt {\PrintChar{092}textordfeminine}\efill
- \subitem default\pfill \main{a-249}, \main{a-947}
- \subitem \texttt {TS1} encoding\pfill \main{a-818}
- \item \texttt {\PrintChar{092}textordmasculine}\efill
- \subitem default\pfill \main{a-250}, \main{a-963}
- \subitem \texttt {TS1} encoding\pfill \main{a-834}
- \item \texttt {\PrintChar{092}textparagraph}\pfill a-254
- \subitem default\pfill \main{a-223}, \main{a-959}
- \subitem \texttt {OMS} encoding\pfill \main{a-604}
- \subitem \texttt {TS1} encoding\pfill \main{a-830}
- \item \texttt {\PrintChar{092}textperiodcentered}\efill
- \subitem default\pfill \main{a-224}, \main{a-960}
- \subitem \texttt {OMS} encoding\pfill \main{a-605}
- \subitem \texttt {TS1} encoding\pfill \main{a-831}
- \item \texttt {\PrintChar{092}textpertenthousand}\pfill a-977
- \subitem default\pfill \main{a-929}
- \subitem \texttt {T1} encoding\pfill \main{a-428}
- \subitem \texttt {T2A} encoding\pfill \main{b-40}
- \subitem \texttt {T2B} encoding\pfill \main{b-40}
- \subitem \texttt {T2C} encoding\pfill \main{b-40}
- \subitem \texttt {TS1} encoding\pfill \main{a-800}
- \subitem \texttt {X2} encoding\pfill \main{b-40}
- \item \texttt {\PrintChar{092}textperthousand}\pfill a-976
- \subitem default\pfill \main{a-912}
- \subitem \texttt {T1} encoding\pfill \main{a-426}
- \subitem \texttt {T2A} encoding\pfill \main{b-38}
- \subitem \texttt {T2B} encoding\pfill \main{b-38}
- \subitem \texttt {T2C} encoding\pfill \main{b-38}
- \subitem \texttt {TS1} encoding\pfill \main{a-783}
- \subitem \texttt {X2} encoding\pfill \main{b-38}
- \item \texttt {\PrintChar{092}textpeso}\efill
- \subitem default\pfill \main{a-922}
- \subitem \texttt {TS1} encoding\pfill \main{a-793}
- \item \texttt {\PrintChar{092}textpilcrow}\efill
- \subitem default\pfill \main{a-930}
- \subitem \texttt {TS1} encoding\pfill \main{a-801}
- \item \texttt {\PrintChar{092}textpm}\efill
- \subitem default\pfill \main{a-954}
- \subitem \texttt {TS1} encoding\pfill \main{a-825}
- \item \texttt {\PrintChar{092}textquestiondown}\efill
- \subitem default\pfill \main{a-209}
- \subitem \texttt {OT1} encoding\pfill \main{a-369}
- \subitem \texttt {OT4} encoding\pfill \main{a-664}
- \subitem \texttt {T1} encoding\pfill \main{a-472}
- \item \texttt {\PrintChar{092}textquotedbl}\efill
- \subitem \texttt {T1} encoding\pfill \main{a-475}
- \subitem \texttt {T2A} encoding\pfill \main{b-62}
- \subitem \texttt {T2B} encoding\pfill \main{b-62}
- \subitem \texttt {T2C} encoding\pfill \main{b-62}
- \subitem \texttt {X2} encoding\pfill \main{b-62}
- \item \texttt {\PrintChar{092}textquotedblleft}\efill
- \subitem default\pfill \main{a-210}
- \subitem \texttt {OT1} encoding\pfill \main{a-370}
- \subitem \texttt {OT4} encoding\pfill \main{a-665}
- \subitem \texttt {T1} encoding\pfill \main{a-473}
- \subitem \texttt {T2A} encoding\pfill \main{b-65}
- \subitem \texttt {T2B} encoding\pfill \main{b-65}
- \subitem \texttt {T2C} encoding\pfill \main{b-65}
- \subitem \texttt {X2} encoding\pfill \main{b-65}
- \item \texttt {\PrintChar{092}textquotedblright}\efill
- \subitem default\pfill \main{a-211}
- \subitem \texttt {OT1} encoding\pfill \main{a-371}
- \subitem \texttt {OT4} encoding\pfill \main{a-666}
- \subitem \texttt {T1} encoding\pfill \main{a-474}
- \subitem \texttt {T2A} encoding\pfill \main{b-66}
- \subitem \texttt {T2B} encoding\pfill \main{b-66}
- \subitem \texttt {T2C} encoding\pfill \main{b-66}
- \subitem \texttt {X2} encoding\pfill \main{b-66}
- \item \texttt {\PrintChar{092}textquoteleft}\efill
- \subitem default\pfill \main{a-212}
- \subitem \texttt {OT1} encoding\pfill \main{a-372}
- \subitem \texttt {OT4} encoding\pfill \main{a-667}
- \subitem \texttt {T1} encoding\pfill \main{a-476}
- \subitem \texttt {T2A} encoding\pfill \main{b-63}
- \subitem \texttt {T2B} encoding\pfill \main{b-63}
- \subitem \texttt {T2C} encoding\pfill \main{b-63}
- \subitem \texttt {X2} encoding\pfill \main{b-63}
- \item \texttt {\PrintChar{092}textquoteright}\efill
- \subitem default\pfill \main{a-213}
- \subitem \texttt {OT1} encoding\pfill \main{a-373}
- \subitem \texttt {OT4} encoding\pfill \main{a-668}
- \subitem \texttt {T1} encoding\pfill \main{a-477}
- \subitem \texttt {T2A} encoding\pfill \main{b-64}
- \subitem \texttt {T2B} encoding\pfill \main{b-64}
- \subitem \texttt {T2C} encoding\pfill \main{b-64}
- \subitem \texttt {X2} encoding\pfill \main{b-64}
- \item \texttt {\PrintChar{092}textquotesingle}\efill
- \subitem default\pfill \main{a-872}
- \subitem \texttt {TS1} encoding\pfill \main{a-737}
- \item \texttt {\PrintChar{092}textquotestraightbase}\efill
- \subitem default\pfill \main{a-864}
- \subitem \texttt {TS1} encoding\pfill \main{a-729}
- \item \texttt {\PrintChar{092}textquotestraightdblbase}\efill
- \subitem default\pfill \main{a-865}
- \subitem \texttt {TS1} encoding\pfill \main{a-730}
- \item \texttt {\PrintChar{092}textrangle}\efill
- \subitem default\pfill \main{a-888}
- \subitem \texttt {TS1} encoding\pfill \main{a-753}
- \item \texttt {\PrintChar{092}textrbrackdbl}\efill
- \subitem default\pfill \main{a-893}
- \subitem \texttt {TS1} encoding\pfill \main{a-764}
- \item \texttt {\PrintChar{092}textrecipe}\efill
- \subitem default\pfill \main{a-924}
- \subitem \texttt {TS1} encoding\pfill \main{a-795}
- \item \texttt {\PrintChar{092}textreferencemark}\efill
- \subitem default\pfill \main{a-961}
- \subitem \texttt {TS1} encoding\pfill \main{a-832}
- \item \texttt {\PrintChar{092}textregistered}\efill
- \subitem default\pfill \main{a-246}, \main{a-951}
- \subitem \texttt {TS1} encoding\pfill \main{a-822}
- \item \texttt {\PrintChar{092}textrightarrow}\efill
- \subitem default\pfill \main{a-869}
- \subitem \texttt {TS1} encoding\pfill \main{a-734}
- \item \texttt {\PrintChar{092}textrquill}\efill
- \subitem default\pfill \main{a-938}
- \subitem \texttt {TS1} encoding\pfill \main{a-809}
- \item \texttt {\PrintChar{092}textsection}\pfill a-255
- \subitem default\pfill \main{a-225}, \main{a-944}
- \subitem \texttt {OMS} encoding\pfill \main{a-606}
- \subitem \texttt {T1} encoding\pfill \main{a-478}
- \subitem \texttt {T2A} encoding\pfill \main{b-61}
- \subitem \texttt {T2B} encoding\pfill \main{b-61}
- \subitem \texttt {T2C} encoding\pfill \main{b-61}
- \subitem \texttt {TS1} encoding\pfill \main{a-815}
- \subitem \texttt {X2} encoding\pfill \main{b-61}
- \item \texttt {\PrintChar{092}textservicemark}\efill
- \subitem default\pfill \main{a-936}
- \subitem \texttt {TS1} encoding\pfill \main{a-807}
- \item \texttt {\PrintChar{092}textsevenoldstyle}\efill
- \subitem default\pfill \main{a-883}
- \subitem \texttt {TS1} encoding\pfill \main{a-748}
- \item \texttt {\PrintChar{092}textsixoldstyle}\efill
- \subitem default\pfill \main{a-882}
- \subitem \texttt {TS1} encoding\pfill \main{a-747}
- \item \texttt {\PrintChar{092}textsterling}\pfill a-263, a-972,
- a-974
- \subitem default\pfill \main{a-214}, \main{a-940}
- \subitem \texttt {OT1} encoding\pfill \main{a-393}
- \subitem \texttt {OT4} encoding\pfill \main{a-679}
- \subitem \texttt {T1} encoding\pfill \main{a-479}
- \subitem \texttt {TS1} encoding\pfill \main{a-811}
- \item \texttt {\PrintChar{092}textsuperscript}\pfill a-247,
- a-249, a-250
- \item \texttt {\PrintChar{092}textsurd}\efill
- \subitem default\pfill \main{a-964}
- \subitem \texttt {TS1} encoding\pfill \main{a-835}
- \item \texttt {\PrintChar{092}TextSymbolUnavailable}\pfill
- \main{a-3}, a-635
- \item \texttt {\PrintChar{092}textthreeoldstyle}\efill
- \subitem default\pfill \main{a-879}
- \subitem \texttt {TS1} encoding\pfill \main{a-744}
- \item \texttt {\PrintChar{092}textthreequarters}\efill
- \subitem default\pfill \main{a-967}
- \subitem \texttt {TS1} encoding\pfill \main{a-838}
- \item \texttt {\PrintChar{092}textthreequartersemdash}\efill
- \subitem default\pfill \main{a-867}
- \subitem \texttt {TS1} encoding\pfill \main{a-732}
- \item \texttt {\PrintChar{092}textthreesuperior}\efill
- \subitem default\pfill \main{a-956}
- \subitem \texttt {TS1} encoding\pfill \main{a-827}
- \begin{figure*}[tp]
- A verbatim extract from the index (without \textsf{docidx2e}):
-
- \let\item=\listenvironmentitem
- \expandafter\def \expandafter\MacroFont \expandafter{%
- \MacroFont\footnotesize}
-\begin{verbatim}
- \item \texttt {\PrintChar{092}U}\efill
- \subitem \texttt {T2A} encoding\pfill \main{b-26}
- \subsubitem \texttt {\PrintChar{092}CYRI} composite\pfill \main{b-443}
- \subsubitem \texttt {\PrintChar{092}cyri} composite\pfill \main{b-444}
- \subsubitem \texttt {\PrintChar{092}CYRU} composite\pfill \main{b-453}
- \subsubitem \texttt {\PrintChar{092}cyru} composite\pfill \main{b-455}
- \subitem \texttt {T2B} encoding\pfill \main{b-26}
- \subsubitem \texttt {\PrintChar{092}CYRI} composite\pfill \main{b-443}
- \subsubitem \texttt {\PrintChar{092}cyri} composite\pfill \main{b-444}
- \subsubitem \texttt {\PrintChar{092}CYRU} composite\pfill \main{b-453}
- \subsubitem \texttt {\PrintChar{092}cyru} composite\pfill \main{b-455}
- \subitem \texttt {T2C} encoding\pfill \main{b-26}
- \subsubitem \texttt {\PrintChar{092}CYRI} composite\pfill \main{b-443}
- \subsubitem \texttt {\PrintChar{092}cyri} composite\pfill \main{b-444}
- \subitem \texttt {X2} encoding\pfill \main{b-26}
- \subsubitem \texttt {\PrintChar{092}CYRI} composite\pfill \main{b-443}
- \subsubitem \texttt {\PrintChar{092}cyri} composite\pfill \main{b-444}
- \subsubitem \texttt {\PrintChar{092}CYRU} composite\pfill \main{b-453}
- \subsubitem \texttt {\PrintChar{092}cyru} composite\pfill \main{b-455}
- \item \texttt {\PrintChar{092}u}\efill
- \subitem default\pfill \main{a-187}
- \subitem \texttt {OT1} encoding\pfill \main{a-343}
- \subitem \texttt {OT4} encoding\pfill \main{a-631}
- \subitem \texttt {T1} encoding\pfill \main{a-411}
- \subsubitem \texttt {A} composite\pfill \main{a-484}
- \subsubitem \texttt {a} composite\pfill \main{a-511}
- \subsubitem \texttt {G} composite\pfill \main{a-491}
- \subsubitem \texttt {g} composite\pfill \main{a-518}
- \subitem \texttt {T2A} encoding\pfill \main{b-21}
- \subitem \texttt {T2B} encoding\pfill \main{b-21}
- \subitem \texttt {T2C} encoding\pfill \main{b-21}
- \subitem \texttt {X2} encoding\pfill \main{b-21}
- \item \texttt {\PrintChar{092}@uclclist}\pfill a-270, a-271, a-318
- \item \texttt {\PrintChar{092}UndeclareTextCommand}\pfill \usage{4},
- \main{a-141}, a-972--a-977
- \item \texttt {\PrintChar{092}@undefined}\pfill a-145, a-147
- \item \texttt {\PrintChar{092}update@uclc@with@cyrillic}\pfill a-269,
- a-297, a-321, a-327
- \item \texttt {\PrintChar{092}upshape}\pfill a-390, a-609, a-676, a-758
- \item \texttt {\PrintChar{092}@use@text@encoding}\pfill \main{a-110}
- \item \texttt {\PrintChar{092}UseTextAccent}\pfill \usage{3},
- \main{a-110}, a-138
- \item \texttt {\PrintChar{092}UseTextSymbol}\pfill \usage{2},
- \main{a-110}, a-136
-\end{verbatim}
- \end{figure*}
- \item \texttt {\PrintChar{092}texttildelow}\efill
- \subitem default\pfill \main{a-903}
- \subitem \texttt {TS1} encoding\pfill \main{a-774}
- \item \texttt {\PrintChar{092}texttimes}\efill
- \subitem default\pfill \main{a-969}
- \subitem \texttt {TS1} encoding\pfill \main{a-840}
- \item \texttt {\PrintChar{092}texttrademark}\efill
- \subitem default\pfill \main{a-247}, \main{a-928}
- \subitem \texttt {TS1} encoding\pfill \main{a-799}
- \item \texttt {\PrintChar{092}texttwelveudash}\efill
- \subitem default\pfill \main{a-866}
- \subitem \texttt {TS1} encoding\pfill \main{a-731}
- \item \texttt {\PrintChar{092}texttwooldstyle}\efill
- \subitem default\pfill \main{a-878}
- \subitem \texttt {TS1} encoding\pfill \main{a-743}
- \item \texttt {\PrintChar{092}texttwosuperior}\efill
- \subitem default\pfill \main{a-955}
- \subitem \texttt {TS1} encoding\pfill \main{a-826}
- \item \texttt {\PrintChar{092}textunderscore}\pfill a-259
- \subitem default\pfill \main{a-236}
- \subitem \texttt {T1} encoding\pfill \main{a-480}
- \subitem \texttt {T2A} encoding\pfill \main{b-54}
- \subitem \texttt {T2B} encoding\pfill \main{b-54}
- \subitem \texttt {T2C} encoding\pfill \main{b-54}
- \subitem \texttt {X2} encoding\pfill \main{b-54}
- \item \texttt {\PrintChar{092}textuparrow}\efill
- \subitem default\pfill \main{a-894}
- \subitem \texttt {TS1} encoding\pfill \main{a-765}
- \item \texttt {\PrintChar{092}textvisiblespace}\efill
- \subitem default\pfill \main{a-238}
- \subitem \texttt {T1} encoding\pfill \main{a-481}
- \subitem \texttt {T2A} encoding\pfill \main{b-46}
- \subitem \texttt {T2B} encoding\pfill \main{b-46}
- \subitem \texttt {T2C} encoding\pfill \main{b-46}
- \subitem \texttt {X2} encoding\pfill \main{b-46}
- \item \texttt {\PrintChar{092}textwon}\efill
- \subitem default\pfill \main{a-919}
- \subitem \texttt {TS1} encoding\pfill \main{a-790}
- \item \texttt {\PrintChar{092}textyen}\efill
- \subitem default\pfill \main{a-942}
- \subitem \texttt {TS1} encoding\pfill \main{a-813}
- \item \texttt {\PrintChar{092}textzerooldstyle}\efill
- \subitem default\pfill \main{a-876}
- \subitem \texttt {TS1} encoding\pfill \main{a-741}
- \item \texttt {\PrintChar{092}TH}\efill
- \subitem \texttt {T1} encoding\pfill \main{a-439}
- \item \texttt {\PrintChar{092}th}\efill
- \subitem \texttt {T1} encoding\pfill \main{a-482}
- \item \texttt {\PrintChar{092}@thirdofthree}\pfill a-147
- \item \texttt {\PrintChar{092}@typeset@protect}\pfill a-21, a-27,
- a-160, a-168
-
- \indexspace
-{\bfseries\hfil U\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}U}\efill
- \subitem \texttt {T2A} encoding\pfill \main{b-26}
- \subsubitem \texttt {\PrintChar{092}CYRI} composite\pfill
- \main{b-443}
- \subsubitem \texttt {\PrintChar{092}cyri} composite\pfill
- \main{b-444}
- \subsubitem \texttt {\PrintChar{092}CYRU} composite\pfill
- \main{b-453}
- \subsubitem \texttt {\PrintChar{092}cyru} composite\pfill
- \main{b-455}
- \subitem \texttt {T2B} encoding\pfill \main{b-26}
- \subsubitem \texttt {\PrintChar{092}CYRI} composite\pfill
- \main{b-443}
- \subsubitem \texttt {\PrintChar{092}cyri} composite\pfill
- \main{b-444}
- \subsubitem \texttt {\PrintChar{092}CYRU} composite\pfill
- \main{b-453}
- \subsubitem \texttt {\PrintChar{092}cyru} composite\pfill
- \main{b-455}
- \subitem \texttt {T2C} encoding\pfill \main{b-26}
- \subsubitem \texttt {\PrintChar{092}CYRI} composite\pfill
- \main{b-443}
- \subsubitem \texttt {\PrintChar{092}cyri} composite\pfill
- \main{b-444}
- \subitem \texttt {X2} encoding\pfill \main{b-26}
- \subsubitem \texttt {\PrintChar{092}CYRI} composite\pfill
- \main{b-443}
- \subsubitem \texttt {\PrintChar{092}cyri} composite\pfill
- \main{b-444}
- \subsubitem \texttt {\PrintChar{092}CYRU} composite\pfill
- \main{b-453}
- \subsubitem \texttt {\PrintChar{092}cyru} composite\pfill
- \main{b-455}
- \item \texttt {\PrintChar{092}u}\efill
- \subitem default\pfill \main{a-187}
- \subitem \texttt {OT1} encoding\pfill \main{a-343}
- \subitem \texttt {OT4} encoding\pfill \main{a-631}
- \subitem \texttt {T1} encoding\pfill \main{a-411}
- \subsubitem \texttt {A} composite\pfill \main{a-484}
- \subsubitem \texttt {a} composite\pfill \main{a-511}
- \subsubitem \texttt {G} composite\pfill \main{a-491}
- \subsubitem \texttt {g} composite\pfill \main{a-518}
- \subitem \texttt {T2A} encoding\pfill \main{b-21}
- \subitem \texttt {T2B} encoding\pfill \main{b-21}
- \subitem \texttt {T2C} encoding\pfill \main{b-21}
- \subitem \texttt {X2} encoding\pfill \main{b-21}
- \item \texttt {\PrintChar{092}@uclclist}\pfill a-270, a-271, a-318
- \item \texttt {\PrintChar{092}UndeclareTextCommand}\pfill \usage{4},
- \main{a-141}, a-972--a-977
- \item \texttt {\PrintChar{092}@undefined}\pfill a-145, a-147
- \item \texttt {\PrintChar{092}update@uclc@with@cyrillic}\pfill a-269,
- a-297, a-321, a-327
- \item \texttt {\PrintChar{092}upshape}\pfill a-390, a-609, a-676,
- a-758
- \item \texttt {\PrintChar{092}@use@text@encoding}\pfill \main{a-110}
- \item \texttt {\PrintChar{092}UseTextAccent}\pfill \usage{3},
- \main{a-110}, a-138
- \item \texttt {\PrintChar{092}UseTextSymbol}\pfill \usage{2},
- \main{a-110}, a-136
-
- \indexspace
-{\bfseries\hfil V\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}v}\efill
- \subitem default\pfill \main{a-188}
- \subitem \texttt {OT1} encoding\pfill \main{a-344}
- \subitem \texttt {OT4} encoding\pfill \main{a-632}
- \subitem \texttt {T1} encoding\pfill \main{a-410}
- \subsubitem \texttt {C} composite\pfill \main{a-487}
- \subsubitem \texttt {c} composite\pfill \main{a-514}
- \subsubitem \texttt {D} composite\pfill \main{a-488}
- \subsubitem \texttt {d} composite\pfill \main{a-515}
- \subsubitem \texttt {E} composite\pfill \main{a-489}
- \subsubitem \texttt {e} composite\pfill \main{a-516}
- \subsubitem \texttt {L} composite\pfill \main{a-493}
- \subsubitem \texttt {l} composite\pfill \main{a-520}
- \subsubitem \texttt {N} composite\pfill \main{a-495}
- \subsubitem \texttt {n} composite\pfill \main{a-522}
- \subsubitem \texttt {R} composite\pfill \main{a-498}
- \subsubitem \texttt {r} composite\pfill \main{a-525}
- \subsubitem \texttt {S} composite\pfill \main{a-500}
- \subsubitem \texttt {s} composite\pfill \main{a-527}
- \subsubitem \texttt {T} composite\pfill \main{a-502}
- \subsubitem \texttt {t} composite\pfill \main{a-529}
- \subsubitem \texttt {Z} composite\pfill \main{a-508}
- \subsubitem \texttt {z} composite\pfill \main{a-535}
- \subitem \texttt {T2A} encoding\pfill \main{b-20}
- \subitem \texttt {T2B} encoding\pfill \main{b-20}
- \subitem \texttt {T2C} encoding\pfill \main{b-20}
- \subitem \texttt {X2} encoding\pfill \main{b-20}
- \item \texttt {\PrintChar{092}vrule}\pfill a-239, a-241
-
- \indexspace
-{\bfseries\hfil W\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}@width}\pfill a-237, a-240
- \item \texttt {\PrintChar{092}@wrong@font@char}\pfill a-121
-
- \indexspace
-{\bfseries\hfil X\hfil}\nopagebreak
-
- \item \texttt {\PrintChar{092}@xxxii}\pfill a-377, a-379
-
- \end{theindex}
-
-\end{document}