summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/kuvio/doc-src/tdwk-s.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/kuvio/doc-src/tdwk-s.tex')
-rw-r--r--Master/texmf-dist/source/latex/kuvio/doc-src/tdwk-s.tex2123
1 files changed, 2123 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/kuvio/doc-src/tdwk-s.tex b/Master/texmf-dist/source/latex/kuvio/doc-src/tdwk-s.tex
new file mode 100644
index 00000000000..3cc26ec793a
--- /dev/null
+++ b/Master/texmf-dist/source/latex/kuvio/doc-src/tdwk-s.tex
@@ -0,0 +1,2123 @@
+% tdwk-s.tex
+% Anders G S Svensson
+
+% Time-stamp: <1996/06/09 03:30:06 PDT agss@klagshamn>
+
+% $Revision: 1.21 $
+% $Date: 1996/06/09 11:31:01 $
+
+\autocompileto{tdwk/tdwk-s}
+
+\Graphpad=5pt
+
+\def\entry{\leavevmode\vtop\bgroup
+ \openup3pt
+ \FontSize{13}\currentfont
+ \catcode`\^^M=\active\Entry}
+{\catcode`\^^M=\active
+ \gdef\Entry#1{\anotherline #1%
+ \let\relax\entrystrut\aftergroup\lastline^^M\egroup}
+ \gdef\anotherline#1^^M{\hbox to \hsize{#1\relax\hfil}\anotherline}
+}
+
+\ifAAAA
+\def\endentry{\vskip20pt\goodbreak}
+\else
+\def\endentry{\vskip15pt\goodbreak}
+\fi
+\def\entrystrut{\vphantom{\vrule width 0pt depth 8pt}}
+\def\lastline#1{}
+\def\mod{\par\leavevmode\modmarker}
+\def\modmarker{{\llap{$\bullet$\hskip.4in}}}
+
+\def\d{\hfill\tt}
+\def\hs{\hskip15mm}
+
+\def\harebra{\epsfxsize=3cm \rot1\epsffile{harebra.eps}\endrot}
+
+\def\int{\emph{integer}}
+\def\dim{\emph{dimen}}
+\def\text{\emph{text}}
+\def\math{\emph{math}}
+\def\{{{\escapechar=-1 \tt\string\{}}
+\def\}{{\escapechar=-1 \tt\string\}}}
+\def\:{{\escapechar=-1 \tt\string\:}}
+\def\*{{\escapechar=-1 \tt\string\*}}
+\def\|{{\escapechar=-1 \tt\string\|}}
+\def\({{\escapechar=-1 \tt\string\(}}
+\def\){{\escapechar=-1 \tt\string\)}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Summary}
+\label{Summary}
+
+Brief descriptions (plus some examples) of the available control
+sequences and modifiers, including several not mentioned thus far.
+Modifiers are indicated by a $\bullet$ in the left margin. Default or
+predefined values, where appropriate, are listed in the right margin.
+{\let\egroup\relax\endentry}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\sindex mc\^\sindex mc\_%
+ \sindex mc\<\sindex mc\>%
+ \ch\^\{\math\}\qquad \ch\_\{\math\}
+ \ch\<\{\math\}\qquad \ch\>\{\math\}}
+Place labels on an arrow in \csq\labelstyle.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\sindex mc\(\tt\(\int,\int\)}
+Specify coordinates to an \csq\a\type\ or \csq\b\type\ cell macro.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\sindex mc\(\tt\(\num,\num\)}
+Specify coordinates to a modification.
+Both \index mm{Box} and \index mm{Frame} modifications require two sets of
+coordinates while others can accept either one or two sets.
+
+\side
+\Graph{2cm,2}{1cm}
+\Txt{bitterness} (2,.5) *{1.1}
+\Txt{bereavement} (3,.5) (4,.5) :{1.1} *0
+\Box (2,0) (3,1) \Frame (3,1) (4,0)
+\endGraph
+\endside
+
+For modifications on a Figure or Graph,
+a coordinate may be given as a dimension.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\sindex mc\*\ch\*\{\num\}\d .5}
+Set the tag point of a modification.
+Has no effect on type 2 modification cells,
+\index tm{Box} modifications or \index tm{Frame} modifications.
+
+\side
+\Graph{1cm}{1cm}
+\To (1,.5) *0 \Line (1,.5) *{1.5}
+\Text{chaos} (1,.5) *{-2}
+\endGraph
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\sindex mc\/\ch\/\{\int\}\d 0}
+Rotate a modification by \int\ degrees counterclockwise.
+Has no effect on type 2 modification cells,
+\index tm{Box} modifications or \index tm{Frame} modifications.
+
+\side
+\Graph{3cm}{1cm}
+\Line (0,.5) /{90} \Line (1,.5) /{90}
+\Txt{losfer words} (.5,.5) /{180}
+\endGraph
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\sindex mw{"|@\BAR}\ch\|\{\dim\}}
+Set the length of a type 1 modification cell.
+See \csq\celllength.
+
+\side
+\Graph{2cm}{5mm}
+\To (.5,1) \Two (.5,0) |{2cm}
+\endGraph
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\sindex mc\:%
+ \:\{\num\}\d .5
+ \:\{\dim\}\d 0pt
+ \:\{\num\ch\,\dim\} or \:\{\dim\ch\,\num\}}
+Adjust the positioning of a label tied to an arrow, \num\ determining
+a point along the line joining the endpoints of the arrow and \dim\ a
+point on a line perpendicular to the arrow.
+
+\eg
+\Diagram A & \rTo ^f :{.75} & B & \rTo ^g :{.75,5pt} & C & \rTo ^h :{5pt} & D \\
+\endDiagram
+\endeg
+
+A semicolon can also be used as the argument separator.
+In fact, in this case we can replace the label pad \dim\ by a
+comma-separated pair of
+dimensions, the first moving a label parallel to the
+direction of an arrow and a second being a label pad. That is,
+the forms \:\{\dim\ch\,\dim\}, \:\{\num\ch\;\dim\ch\,\dim\}
+and \:\{\dim\ch\,\dim\ch\;\num\} are also legal.
+
+\eg
+\Diagram A & \rTo ^f :{-10pt,0pt} & B & \rTo ^g :{0;10pt,0pt} & C \\
+\endDiagram
+\endeg
+
+Label positioning with \ch\: applies to all labels placed on an arrow.
+For any individual label, this can be overridden by supplying a
+positioning specification to \index tc\^, \index tc\_,
+\index tc\<\ or \index tc\>,
+delimited by square braces.
+This may be useful for cell types whose arrows are composed of many pieces,
+although the same results can be obtained using null arrows (see \csq\nl).
+
+\side
+\newcell{Adj}
+\def\Adjbox#1{\vcenter{\offinterlineskip\dimen0=#1
+ \hbox to #1{\leftarrowfill\hskip.2\dimen0} \hbox to #1{\hskip.2\dimen0\rightarrowfill}}}
+\labelpad{Adj}=2.5pt
+
+\Diagram A & \rAdj ^[.6]{f_1} _[.4]{f_2} & B \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\sindex mc\:\ch\:\{\num\}\d .5}
+For \index tm{Label}, \index tm{Math}, \index tm{Text}, \index tm{Txt}
+and \index tm{Vertex} modifications, specify a coordinate as a fractional
+distance from one point to another.
+
+{\edge{.75}
+\side
+\Graph{15mm}{15mm}
+\Line (0,1) (1,0)
+\Text{X} (0,1) (1,0) :{.25} *0
+\Math\bullet (0,1) (1,0) :{.75}
+\endGraph
+\endside
+}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{al}}
+Move the column in which this control sequence occurs.
+Like \csq\dl\ except that, instead of also moving columns to
+the right of the given column, recursively moves those which are
+\sindex mw{binding}\emph{bound} to it.
+
+A column is bound to another in the following situations.
+
+{\parindent=30pt
+\item{(1)}If an arrow goes between two entries in columns $C_\ell <
+C_r$ and both columns are on or to the left of the
+gravitating column then $C_\ell$ is bound to $C_r$.
+\item{(2)}If two entries in the same row of columns $C_\ell < C_r$
+are adjacent (in the sense that these entries typeset material with
+non-zero dimensions and there are no other such entries in columns
+strictly between $C_\ell$ and $C_r$) and both columns are on or to the
+left of the \index tm{gravitating column} then $C_\ell$ is bound to
+$C_r$.
+\item{(3)}If an arrow goes between two entries in columns $C_\ell <
+C_r$ and both columns are on or to the right of the gravitating column
+then $C_r$ is bound to $C_\ell$.
+\item{(4)}If two entries in the same row of columns $C_\ell < C_r$
+are adjacent and both columns are on or to the right of the
+gravitating column then $C_r$ is bound to $C_\ell$.
+\par}
+
+The control sequence \index tm{displaybindings} causes a message of
+the form {\tt (B:$C$-$C'$)} to be displayed whenever column $C'$ is
+bound to column $C$.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{ar}}
+Move the column in which this control sequence occurs.
+Like \csq\dr\ except that, instead of also moving columns to
+the left of the given column, recursively moves those which are
+bound to it. See \csq\al.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{arrsy}}
+Load the font {\tt \index tw{arrsy10}} and define several control sequences
+and cell types using this font. Of course, the font has to have been installed
+on your system for this to work.
+
+\verbatim
+\input kuvio \arrsy % plain TeX \usepackage[arrsy]{kuvio} % LaTeX
+\endverbatim
+\hskip\egindent{\verbatimit blah, blah, blah...}
+\endentry
+\sindex tw{LaTeX@\LaTeX}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{atpush}%
+ \csq{\atpush=}\dim\d 3pt
+ \csq{\atpush+=}\dim
+ \csq{\atpush\{\type\}=}\dim\hs\csq{\atpush\{\type\}+=}\dim}
+Global and type-specific amounts by which the end of an arrow attached
+to another arrow (using \csq\pt) is shortened whenever a vertex has not been
+attached using \csq\hd\ or \csq\tl.
+The type-specific quantity applies to ends attached to an arrow of
+cell type \type. Spaces in \type\ are ignored.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{autocompile}}
+Abbreviation for \@\autocompileto{.\jobname}@\.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{autocompilecounter}}
+Count register used with \index tm{autocompileto}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{autocompileto}\{\name\}}
+Cause all diagrams to be compiled unless otherwise specified using
+\index tm{nocompile}. The files \name\@-\the\@\{\tt auto\-compilecounter.kdg}
+and \name\@-\the\@\{\tt autocompilecounter.kuv} are either written or read,
+the count register \index tm{autocompilecounter} being incremented with each
+diagram being compiled. Spaced in \name\ are ignored.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{ax}\{\dim\}}
+Move the column in which this control sequence occurs rightward by \dim.
+Like \csq\dx\ except that, instead of also moving columns to
+the right of the given column, recursively moves those which are
+bound to it. See \csq\al.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{base}}
+Make the baseline of a Diagram coincide with that of a row in its alignment.
+Takes precedence over any baseline specification given outside the alignment
+(using \index tm{tall}, \index tm{deep}, etc).
+
+{\edge{.7}
+\side
+\newDiagram{Ydiag}
+\def\everyYdiag{\flexible \xgrid=0pt \ygrid=4pt \joined \columndist=9pt}
+
+\def\Y#1#2#3{%
+ \Ydiag
+ & & #2 \\
+ \\ \\
+ & \rdLine & & \ldLine & \\
+ & \base & \stop\my{2pt} \\
+ & #1 & \qquad\dLine & #3 \\
+ \\
+ \endYdiag}
+
+Thus, $\Y\alpha\beta\gamma = \Y\delta\epsilon\zeta$.
+\endside
+}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{black}}
+Typeset an arrow or modification with graylevel 0.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mp{black}\endblack}
+Typeset the enclosed material with graylevel 0.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{Box}}
+Typeset a box as a modification. The coordinates of two
+diagonally opposite corners must be specified.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{Boxcell}\{\emph{box} \emph{macro}\}}
+Typeset an arrow as a modification without naming a cell type.
+Possibly the most useless control sequence of the lot!
+Has ten equally useless siblings for use in the alignment part
+of a Diagram: \csq\aBoxcell, \csq\bBoxcell, \csq\rBoxcell,
+\csq\rdBoxcell, \csq\dBoxcell, \csq\ldBoxcell, \csq\lBoxcell,
+\csq\luBoxcell, \csq\uBoxcell\ and \csq\ruBoxcell.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{bpad}%
+ \csq{\bpad=}\dim\d 0pt
+ \csq{\bpad+=}\dim}
+Padding added to the bottom of a diagram or framed material.
+Does not alter the baseline.
+
+\side
+\framed \bpad=10pt
+\Diagram
+A & \rTo & B \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{br}%
+ \csq\br\{\dim\}}
+Typeset an arrow on top of a white rule.
+
+\side
+\Graph{3cm,3}{12mm,2}
+\To (1,2) (1,0)
+\Line (0,2) (3,0) \br \Two (2,0) (2,2) \br
+\endGraph
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{braced}}
+With flexible grids, make all diagonal arrows fully braced by default and
+invert the action of \index tm{db}: An arrow will be unbraced when \csq\db\ is
+specified.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{bracewidth}%
+ \csq{\bracewidth=}\dim\d 1cm
+ \csq{\bracewidth+=}\dim}
+With flexible grids, width of the
+\emph{brace} used with braced diagonal arrows.
+
+\side
+\braced
+\Dg
+A \\ & \rdTo \\ B & & X \\
+\endDg
+\qquad\bracewidth+=1cm
+\Dg
+A \\ & \rdTo \\ B & & X \\
+\endDg
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{breakpad}%
+ \csq{\breakpad=}\dim\d 2.5pt
+ \csq{\breakpad+=}\dim
+ \csq{\breakpad\{\type\}=}\dim\hs\csq{\breakpad\{\type\}+=}\dim}
+Global and type-specific pads to determine the rule width used
+with \index tm{br} and \index tm{rl}. Spaces in \type\ are ignored.
+
+\side
+\breakpad{One}=5pt \yscale=.75
+\Diagram
+\\ & \dTo \br & \rTo \pp \dOne \br & \\ \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{celllength}%
+ \csq{\celllength=}\dim\d 1cm
+ \csq{\celllength+=}\dim}
+Default length of a type 1.
+\sindex tw{modification cell!type 1}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{cellpush}%
+ \csq{\cellpush=}\dim\d 2pt
+ \csq{\cellpush+=}\dim
+ \csq{\cellpush\{\type\}=}\dim\hs\csq{\cellpush\{\type\}+=}\dim}
+Global and type-specific cell pushes. Spaces in \type\ are ignored.
+
+\side
+\cellpush=-10pt
+\Graph{2cm}{5mm,2}
+\Line (0,2) (1,2) \tl{\bullet} \hd{}
+\Line (0,0) (1,0) \hd{\bullet}
+\endGraph
+\endside
+
+Note the use of \index tm{tl} and \index tm{hd} in this example.
+Cell pushes are applied to a modification cell only when a vertex is attached
+using one of these two.\sindex tw{modification cell!applying cell pushes}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{cellwidth}%
+ \csq{\cellwidth=}\dim\d 1cm
+ \csq{\cellwidth+=}\dim}
+With flexible grids, the minimum distance between vertices at the ends of
+horizontal alignment cells.\sindex tw{alignment cell!length}
+
+{\edge{.5}
+\side
+\Dg A & \rTo & B & {} = C \\ \endDg
+\qquad\cellwidth+=1cm
+\Dg A & \rTo & B & {} = C \\ \endDg
+\endside
+}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{center} or \index mm{centre}}
+Center diagrams on the math axis. With the exception of Diagrams
+consisting of a single row, this is the default in math modes.
+\endentry
+\pagedef{center def}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{centermath} or \index mm{centremath}}
+Center diagrams in math modes only. This is the default behaviour.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{columndist}%
+ \csq{\columndist=}\dim\d 15mm
+ \csq{\columndist+=}\dim}
+With flexible grids, the minimum distance between the centers of columns at
+either end of an unbraced diagonal arrow.
+\sindex tw{grid!flexible}
+
+\side
+\Dg
+A \\ & \rdTo \\ B & & X \\
+\endDg
+\qquad\columndist+=1cm
+\Dg
+A \\ & \rdTo \\ B & & X \\
+\endDg
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{compileto}\{\name\}}
+Compile a diagram to, or read a diagram from, the files \name{\tt .kdg} and
+\name{\tt .kuv}. Spaces in \name\ are ignored.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{db}}
+Make a diagonal arrow fully braced unless \index tm{braced} has been
+specified, in which case the arrow is made unbraced.
+\sindex tw{arrows!braced}
+
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{deep}}
+Make the baseline of a \sindex tw{Diagram!baseline}Diagram coincide
+with that of its topmost row and the baseline of a \sindex
+tw{Figure!baseline}Figure or \sindex tw{Graph!baseline}Graph coincide
+with that of its upper edge. This is the default for Diagrams in
+non-math modes.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mw{Dg@{\tt Dg}}\tt Dg}
+Diagram type having \index tm{flexible}, \index tm{xgrid}{\tt =0pt},
+\index tm{ygrid}{\tt +=-2mm}, \index tm{cellwidth}{\tt +=3mm} and
+\index tm{bracewidth}{\tt +=-2.5mm}.
+
+\eg
+\Dg
+\eta_k:\qquad & {\bb R} & \rInto & X_k & {} =
+ \{\,(A,\vect v)\in W_k\times{\bb R}^n \mid A\vect v = \lambda_k\vect v\,\} \\
+ & & & \dTo \\ % \vect is from arrsy10
+ & & & W_k \\
+\endDg
+\endeg
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{dh}\{\dim\}}
+Fudge the length of an arrow at its head.
+
+\side
+\Diagram
+A & \rTo \dh{-10pt} & B \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{dh}\{\dim\ or \num\ch\,\dim\}}
+Fudge the positioning of an arrow at its head.
+Equivalent to \csq\hx\{\dim\ or \num\} \csq\hy\{\dim\}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{%
+ \index mm{dh}\{\dim1 or \num\ch\,\dim2\ch\;\dim3\}
+ \csq\dh\{\dim3\ch\;\dim1 or \num\ch\,\dim2\}}
+Fudge both the length and positioning at the head of an arrow.
+Equivalent to \csq\hx\{\dim1 or \num\} \csq\hy\{\dim2\} \csq\dh\{\dim3\}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mw{Diag@{\tt Diag}}\tt Diag}
+Diagram type having \csq\flexible\ and \csq{\xgrid=0pt}.
+
+\eg
+\ygrid=7mm
+\Diag
+\cdots& \rTo& H_n A& \rTo& H_n X& \rTo& H_n(X,A)& \rTo& H_{n-1}A& \rTo& \cdots \\
+ & & \dTo & & \dTo & & \dTo & & \dTo \\
+\cdots& \rTo& H_n B& \rTo& H_n Y& \rTo& H_n(Y,B)& \rTo& H_{n-1}B& \rTo& \cdots \\
+\endDiag
+\endeg
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mp{Diagram}\endDiagram}
+Diagram delimiters. Uses a rigid grid unless \csq\flexible\ is specified.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{diagramdot}\d\csq\bullet}
+Token used with \csq\dotted\ and \csq\Dot.
+
+\side
+\let\diagramdot\circ \dotted
+\Diagram
+ & \\
+ \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{Diagrampad}%
+ \csq{\Diagrampad=}\dim\d 5pt
+ \csq{\Diagrampad+=}\dim}
+Padding added to all sides of a Diagram.
+
+\side
+\framed
+\Diagram A & \rTo & B \\ \endDiagram
+\Diagrampad=10pt \quad
+\Diagram A & \rTo & B \\ \endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{displayall}}
+Abbreviation for \index tm{displaybindings} \index tm{displaymovements}
+\index tm{displaystretches}, each of which announce certain computations.
+\endentry
+
+\comment
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\csq\displaybindings}
+Display the message (B:<C1>-<C2>) when column <C1> is bound to column <C2>.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\csq\displaymovements}
+Display the message (X<C>) when a column is moved and
+(Y<C>) when a row is moved.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\csq\displaystretches}
+Display messages of the form (A:r<R>,c<Cl>-<Cr>),
+(C:r<R>,c<C>) and (W:r<Rl>-<Rr>,c<Cl>-<Cr>) for stretches set by
+horizontal arrows, column entries and diagonal arrows respectively.
+\endentry
+\endcomment
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{Displaybox}}
+Control sequence, taking a single parameter (a box register),
+which displays a diagram.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{dl}}
+Move the column in which this control sequence occurs
+so that the alignment entry in which it occurs abuts it nearest
+neighbour to the left. Additionally, move each column to the right of the
+given column by the same amount.
+Many of the same effects can be obtained simply by using a flexible grid with
+\csq{\xgrid=0pt}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{Dot}}
+Abbreviation for \@\Math{\diagramdot}@\.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{dotted}}
+Place a \csq\diagramdot\ in every empty alignment entry
+in a Diagram unless prevented from doing so by \csq\nodot.
+
+\side
+\dotted
+\Diagram
+ & \nodot \\
+A \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{dr}}
+Move the column in which this control sequence occurs
+so that the alignment entry in which it occurs abuts it nearest
+neighbour to the right.
+Additionally, move each column to the left of the
+given column by the same amount.
+Many of the same effects can be obtained simply by using a flexible grid with
+\csq{\xgrid=0pt}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{dt}\{\dim\}}
+Fudge the length of an arrow at its tail.
+
+\side
+\Diagram
+A & \rTo \dt{-10pt} & B \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{dt}{\{\dim1 or \num\ch\,\dim2\}}}
+Fudge the positioning of an arrow at its tail.
+Equivalent to \csq\tx\{\dim1 or \num\} \csq\ty\{\dim2\}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{%
+ \index mm{dt}\{\dim1 or \num\ch\,\dim2\ch\;\dim3\}
+ \csq\dt\{\dim3\ch\;\dim1 or \num\ch\,\dim2\}}
+Fudge both the length and positioning at the tail of an arrow.
+Equivalent to \csq\tx\{\dim1 or \num\} \csq\ty\{\dim2\} \csq\dt\{\dim3\}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{dx}\{\num\ or \dim\}}
+Move the column in which this control sequence occurs.
+\csq\dx\{\dim\} moves the column rightward by \dim\ and
+also moves all columns to the right of the given column by the same amount.
+If the distance to the next column (to the right) is currently $d$,
+\csq\dx\{\num\} moves the column rightward by $\num\cdot d$ and also moves all
+columns to the left of the given column by the same amount.
+
+\side
+\gridlines
+\Diagram
+A & B \dx{5mm} & C & D & E \\
+A & B & C & D \dx{-.25} & E \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{dy}\{\num\ or \dim\}}
+Move the row in which this control sequence occurs.
+\csq\dy\{\dim\} moves the row upward by \dim\ and
+also moves all rows above the given row by the same amount.
+If the distance to the next row (above) is currently $d$,
+\csq\dy\{\num\} moves the row upward by $\num\cdot d$ and also moves all
+rows below the given row by the same amount.
+
+\side
+\gridlines
+\Diagram
+A \\
+\dEq & \dy{1} \\
+B & \rTo & C \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{epi}}
+An epimorphism arrow, as in $A\epi B$.
+The {\tt arrsy10} font must be loaded for this to work. See \csq\arrsy.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{fd}\{\emph{fudge}\}}
+Abbreviation for \csq\dt\{\emph{fudge}\} \csq\dh\{\emph{fudge}\}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mp{Figure}\endFigure}
+Figure delimiters.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{Figurepad}%
+ \csq{\Figurepad=}\dim\d 0pt
+ \csq{\Figurepad+=}\dim}
+Padding added to all sides of a Figure.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{Fillcell}\{{\it fill} \emph{macro}\}}
+Like, \csq\Boxcell, typeset an arrow as a modification without naming a
+cell type.
+Has ten siblings for use in the alignment part of a Diagram:
+\csq\aFillcell, \csq\bFillcell, \csq\rFillcell,
+\csq\rdFillcell, \csq\dFillcell, \csq\ldFillcell, \csq\lFillcell,
+\csq\luFillcell, \csq\uFillcell\ and \csq\ruFillcell.
+
+\side
+\Diagram
+A & \rFillcell\lrrrightarrowfill & B \\
+\Modify
+\Fillcell\rrightarrowxfill (3,0) /{90}
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{flexible}}
+Enable the flexible grid.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mp{flip}\endflip}
+Rotate the enclosed material by 180 degrees.
+The material cannot contain vertical commands (unless enclosed in a box).
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{forcekdg}}
+Force diagrams to be read from \csq{\jobname.kdg} if not otherwise
+being compiled. See \ref{Specifying Diagrams in Alignments}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{fr}\{\dim\}}
+Abbreviation for \csq\tr\{\dim\} \csq\hr\{\dim\}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{Frame}}
+Typeset a frame as a modification. The coordinates of two
+diagonally opposite corners must be specified.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mp{frame}\endframe}
+Put a frame around the enclosed material.
+The material cannot contain vertical commands (unless enclosed in a box).
+
+{\edge{.65}
+\side
+\frame\bf N\"ara skjuter ingen hare.\endframe
+\endside
+}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{framed}}
+Place diagrams in a frame.
+
+\eg
+\framed
+\Long
+H_n X\otimes G & \rMono & H_n(X;G) & \rEpi & {\rm Tor}(H_{n-1}X,G) \\
+\endLong
+\endeg
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{framegray}\sindex mm{framegrey}%
+ \csq{\framegray=}\num\ or \csq{\framegrey=}\num\d 0}
+Set the graylevel of the frame used with \csqq\frame\endframe.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{framepad}%
+ \csq{\framepad=}\dim\d 5pt
+ \csq{\framepad+=}\dim}
+Padding around material framed with \csqq\frame\endframe.
+
+\side
+\frame \TeX \endframe
+\framepad=10pt \frame \TeX \endframe
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{Framerulewidth}%
+ \csq{\Framerulewidth=}\dim\d .4pt
+ \csq{\Framerulewidth+=}\dim}
+Default thickness of the rule used when typesetting \csq\Frame\ modifications.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{framerulewidth}%
+ \csq{\framerulewidth=}\dim\d .4pt
+ \csq{\framerulewidth+=}\dim}
+Thickness of the rule used when typesetting frames with \csq\framed\ or
+\csqq\frame\endframe.
+
+\side
+\framerulewidth=2mm
+\frame Which way to the home world?\endframe
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{fs}\{\dim\ or \num\}}
+Abbreviation for \csq\ts\{\dim\ or \num\} \csq\hs\{\dim\ or \num\}.
+
+The following trick with %\sidx{fs@{\csqn{fs}}!trick}%
+\csq\fs\ can be used to typeset an arrow which is parallel to
+another but offset by some distance.
+
+\eg
+\Dg
+M & & \rTo ^\theta & & \beta^{-1}(W) \\
+ & \rdTo & & \ldTo \\
+ & & \beta^{-1}(F) \\
+\Modify
+\Mapsto (0,2) (2,0) \fs{-50pt} \tl{x} \hd{R(x)}
+\endDg
+\endeg
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{fx}\{\dim\ or \num\}}
+Abbreviation for \csq\tx\{\dim\ or \num\} \csq\hx\{\dim\ or \num\}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{fy}\{\dim\}}
+Abbreviation for \csq\ty\{\dim\} \csq\hy\{\dim\}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{gr}\{{\it number}\}}
+Typeset an arrow or modification with the specified graylevel.
+Probably none too pretty on many an output device.
+
+\side
+\Graph{1cm}{1cm}
+\Box (0,0) (1,1) \gr{.25}
+\endGraph
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\csq\gr\{{\it number}\} \csq\endgr\sindex mp{gr}\endgr}
+Typeset the enclosed material with the specified graylevel.
+
+\side
+\gr{.25}Anyone seen my bat'leth?\endgr
+\endside
+\sindex tw{bat'leth}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mp{Graph}\endGraph
+ \csq\Graph\{\dim\}\{\dim\} \csq\endGraph
+ \csq{\Graph\{\dim,}\dim\ or \int\}\{\dim\} \csq\endGraph
+ \csq\Graph\{\dim\}\{\dim{\tt ,}\dim\ or \int\} \csq\endGraph
+ \csq{\Graph\{\dim,}\dim\ or \int\}\{\dim{\tt ,}\dim\ or \int\} \csq\endGraph}
+Graph delimiters.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{Graphpad}%
+ \csq{\Graphpad=}\dim\d 0pt
+ \csq{\Graphpad+=}\dim}
+Padding added to all sides of a Graph.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{grav}}
+Explicitly set the gravitating column.
+Columns at the ends of an arrow which passes through the gravitating column
+will tend to be centered on it.
+
+\eg
+\loose
+\Dg
+p^{-1}(U) & & \rTo & & U\times F & {} \approx U\times {\bb R}P^2 \\
+ & \rdTo <p & & \ldTo >{\pi_1} \\
+ & & U \grav & & \\
+\endDg
+\endeg
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{gravitateleft}}
+Set the default location of the gravitating column to the first column of
+an alignment.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{gravitateright}}
+Set the default location of the gravitating column to the last column of
+an alignment.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{gray} or \index mm{grey}}
+Typeset an arrow or modification with the graylevel set by \csq\graygray.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mp{gray}\endgray\ or \index mp{grey}\endgrey}
+Typeset the enclosed material with the graylevel set by \csq\graygray.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{graygray}\sindex mm{greygrey}%
+ \csq{\graygray=}\num\ or \csq{\greygrey=}\num\d .5}
+Set the graylevel used with \csq\gray.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{grid}%
+ \csq{\grid=}\dim
+ \csq{\grid+=}\dim}
+Abbreviation for \csq{\xgrid=}\dim\ \csq{\ygrid=}\dim\ or
+\csq{\xgrid+=}\dim\ \csq{\ygrid+=}\dim.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{gridgray}\sindex mm{gridgrey}%
+ \csq{\gridgray=}\num\ or \csq{\gridgrey=}\num\d .5}
+Set the graylevel used with \csq\gridlines.
+
+\side
+\gridlines \gridgray=0
+\Diagram
+A \\
+ & \rdTo \\
+ & & B \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{gridlines}}
+Display gridlines.
+
+\side
+\gridlines
+\Diagram
+A \\
+ & \rdTo \\
+ & & B \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{hd}\{\math\}}
+Attach math material to the head of a type 2 modification cell.
+\sindex tw{modification cell!type 2}
+
+\side
+\Graph{5cm}{1cm}
+\To (0,.5) (1,.5) \hd{B}
+\endGraph
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mp{hmir}\endhmir}
+Reflect the enclosed material across a horizontal mirror lying
+on the baseline. The material cannot contain vertical commands
+(unless enclosed in a box).
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{hpad}%
+ \csq{\hpad=}\dim
+ \csq{\hpad+=}\dim}
+Abbreviation for \csq{\lpad=}\dim \csq{\rpad=}\dim\ or \csq{\lpad+=}\dim
+\csq{\rpad+=}\dim.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{hr}\{\dim\}}
+Raise the vertex attached to the head of a type 2 modification cell.
+\sindex tw{modification cell!type 2}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{hs}\{\dim\ or \num\}}
+Slide the vertex attached to the head of a type 2 modification cell
+horizontally.
+\sindex tw{modification cell!type 2}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{hx}\{\dim\ or \num\}}
+Fudge the positioning of an arrow at its head.
+Makes the head of an arrow point to a point which is offset horizontally
+from the center of the math axis of the head vertex
+($\num = 0 \leftrightarrow{}$left edge of
+head vertex, $\num = 1 \leftrightarrow{}$right edge of head vertex).
+Has no effect on type 1 modification cells.
+\sindex tw{modification cell!type 1}
+
+\side
+\Diagram
+X \\
+ & \rdTo \hx{.2} \\
+ & & X\times X \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{hy}\{\dim\}}
+Fudge the positioning of an arrow at its head.
+Makes the head of an arrow point to a point which is offset vertically
+from the math axis of the head vertex.
+Has no effect on type 1 modification cells.
+\sindex tw{modification cell!type 1}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{into}}
+Abbreviation for \@\lhook\joinrel\rightarrow@\, as in $A\into X$.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{jh}}
+Join the head of an arrow to the point at the coordinate of its head
+vertex by applying \csq\joinpush\ rather than \csq\cellpush\ (or \csq\ptpush\
+and \csq\atpush) and ignoring the dimensions of the vertex.
+
+\side
+\Diagram
+\bullet & \rLine \jh & \bullet \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{joined}}
+Invert the action of the \csq\jh, \csq\jn\ and \csq\jt\ modifiers:
+Ends of arrows are joined unless one of these is specified.
+
+\side
+\joined \scale=.5
+\Diagram
+ & \rLine & \\
+\dLine & & \dLine \\
+ & \rLine \jn & \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{joinpush}%
+ \csq{\joinpush=}\dim\d -1pt
+ \csq{\joinpush+=}\dim
+ \csq{\joinpush\{\type\}=}\dim\hs\csq{\joinpush\{\type\}+=}\dim}
+Global and type specific pushes used with \csq\jt, \csq\jh\ and \csq\jn.
+Spaces in \type\ are ignored.
+\endentry
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{jn}}
+Abbreviation for \csqq\jt\jh.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{jt}}
+Join the tail of an arrow to the point at the coordinate of its tail vertex.
+
+\side
+\Diagram
+\bullet & \rLine \jt & \bullet \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{kuvio}}
+Abbreviation for \@{\tt kuvio.tex}@\.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{kuviocs}\ch\\{\it name}}
+Access a control sequence which \kuvio\ makes available but does not define
+explicitly due to a name conflict with an existing control sequence.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{kuviodate}}
+Expands to the date of the current patchlevel of \kuvio.
+\endentry
+
+\comment
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{kuviodef}}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{kuviodefine}}
+\endentry
+\endcomment
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{kuviofmt}}
+Load all macros. This should be expanded when using \kuvio\ to build a
+format file.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{kuvioforce}\ch\\{\it name}}
+Force redefinition of \ch\\\emph{name} when \kuvio\ makes it available only
+through \csq\kuviocs.
+\endentry
+
+\comment
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{kuviolet}}
+\endentry
+\endcomment
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{kuviopatchlevel}}
+Expands to the current patchlevel of \kuvio.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{kuviorequire}\{\int\}}
+A warning of forthcoming disaster will be issued if \csq\kuviopatchlevel\ is
+not at least \int.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{kuviorevision}\{\text\}}
+With compilation, cause the string \text\ to be written to {\tt .kuv} files.
+A diagram is recompiled if this string doesn't match the one found in its
+{\tt .kuv} file.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{kuviospecial}\ch\\{\it name}}
+Set the \csq\special\ syntax. Not a good thing to do unless you know what
+you're doing. The following two lines in \kuvio\ set the syntax for
+{\tt dvips}.
+
+\code
+\def\dvipsspecial#1{\special{ps:#1}}
+\kuviospecial\dvipsspecial
+\endcode
+
+Experimentation with other {\tt dvi} to \PS\ translators is possible using
+\csq\kuviospecial.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{Label}\{\math\}}
+Typeset math material as a modification in \csq\labelstyle.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{labelpad}%
+ \csq{\labelpad=}\dim\d 3pt
+ \csq{\labelpad+=}\dim
+ \csq{\labelpad\{\type\}=}\dim\hs\csq{\labelpad\{\type\}+=}\dim}
+Global and type-specific label pads. Spaces in \type\ are ignored.
+
+\side
+\labelpad{One}=5pt
+\Diagram A & \rTo ^f & B \\ \endDiagram
+\quad
+\Diagram A & \rOne ^f & B \\ \endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{labelpoint}%
+ \csq{\labelpoint=}\num\d .5
+ \csq{\labelpoint\{\type\}=}\num}
+Set the default location of labels tied to an arrow. Spaces in \type\ are
+ignored.
+
+\side
+\labelpoint{One}=.75
+\Diagram A & \rTo ^f & B \\ \endDiagram
+\quad
+\Diagram A & \rOne ^f & B \\ \endDiagram
+\endside
+
+Once a type-specific
+default has been set it can be unset, causing the global default to be used,
+by making an empty assignment of the form
+\csq{\labelpoint\ch\{\type\ch\}=\ch\{\ch\}}.
+All predefined cell types in \kuvio\ have their \csq\labelpoint\
+unset.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{labelstyle}\d\csq\scriptstyle}
+Style in which labels of a diagram are typeset.
+
+\side
+\let\labelstyle\textstyle
+\Diagram
+A & \rTo ^f & B \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{labelwidthpad}%
+ \csq{\labelwidthpad=}\dim\d 5pt
+ \csq{\labelwidthpad+=}\dim
+ \csq{\labelwidthpad\{\type\}=}\dim\hs\csq{\labelwidthpad\{\type\}+=}\dim}
+With a flexible grid, \kuvio\ will stretch a horizontal arrow
+(specified using a \csq\l\type\ or \csq\r\type\ cell macro) so
+that a label centered along its length isn't wider than the arrow
+is long. The value of \csq\labelwidthpad\ determines the minimum
+allowable distance between the edges of the label and the ends of
+the arrow. Note that the comparison of the arrow length and label
+width occurs before the application of cell pushes specified using
+\csq\dt\ and \csq\dh.
+
+Spaces in \type\ are ignored.
+
+\csq\labelwidthpad\ has no effect on labels which are not centered and
+no attempt is made to ensure that these ``fit'' on the arrow to
+which they are attached. Also, \csq\labelwidthpad\ may not work well
+with arrows that are attached to other arrows and are thus also
+affected by \csq\atpush\ and \csq\ptpush. See also \csq\lw.
+
+\eg
+\let\labelstyle\textstyle
+\labelwidthpad{One}+=5pt
+\leavevmode
+\Dg
+X(s)\times |u| & & \rTo ^{(f_{s\to t},\pi_2)} & & X(t)\times |u| \\
+ & \rdTo <{f_{s\to u}} & & \ldTo >{f_{t\to u}} \\
+ & & X(u) \\
+\endDg\qquad
+\Dg
+X(s)\times |u| & & \rOne ^{(f_{s\to t},\pi_2)} & & X(t)\times |u| \\
+ & \rdTo <{f_{s\to u}} & & \ldTo >{f_{t\to u}} \\
+ & & X(u) \\
+\endDg
+\endeg
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mp{land}\endland}
+Rotate the enclosed material by 90 degrees counterclockwise.
+The material cannot contain vertical commands (unless enclosed in a box).
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{landscape}}
+Rotate a diagram 90 degrees counterclockwise.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{latexTo}}
+Load the font {\tt line10}, define \csq\sleftarrowfill\ and
+\csq\srightarrowfill\ using the arrowhead character from this font and do
+\@\let\Tofill\srightarrowfill@\.
+
+\side
+\latexTo
+\Dg
+A & \rTo & B & \rOne & C \\
+\endDg
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{lb}}
+Make an arrow left braced.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mw{Long@{\tt Long}}\tt Long}
+Diagram type having \csq\flexible, \csq{\xgrid=0pt} and \csq{\ygrid+=-5mm}.
+
+\eg
+\Long
+0 & & & & & & 0 \\
+\dEq & & & & & & \dEq \\
+\pi_j S^k & \rTo & \pi_j V(n,k) & \rTo & \pi_j V(n-1,k+1) & \rTo & \pi_{j-1} S^k \\
+\endLong
+\endeg
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{loose}}
+Make all diagonal alignment cells unbraced by default.
+Additionally, sets \csq{\columndist=0pt}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{lpad}%
+ \csq{\lpad=}\dim\d 0pt
+ \csq{\lpad+=}\dim}
+Padding added to the left of a diagram or framed material.
+
+\side
+\framed \lpad=10pt
+\Diagram
+A & \rTo & B \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{lw} or \csq\lw\{\dim\}}
+In the first case, don't stretch a horizontal
+arrow even if a centered label is wider than the arrow is long.
+In the second case, increase the effective width of the label by twice
+\dim. See \csq\labelwidthpad.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{Math}\{\math\}}
+Typeset math material as a modification in \csq\textstyle.
+\endentry
+
+\comment
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{%
+ \csq{\MinimumCellLength=}\dim\d 0pt
+ \csq{\MinimumCellLength+=}\dim}
+Minimum arrow length to be typeset.
+\endentry
+\endcomment
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{ml}}
+Move the column in which this control sequence occurs
+so that the alignment entry in which it occurs abuts it nearest
+neighbour to the left.
+Many of the same effects can be obtained simply by using a flexible grid with
+\csq{\xgrid=0pt}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{Modify}}
+Modifications are specified following an occurrence of this control sequence.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{mono}}
+A monomorphism arrow, as in $A\mono B$. The {\tt arrsy10} font must be loaded
+for this to work. See \csq\arrsy.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{mr}}
+Move the column in which this control sequence occurs
+so that the alignment entry in which it occurs abuts it nearest
+neighbour to the right.
+Many of the same effects can be obtained simply by using a flexible grid with
+\csq{\xgrid=0pt}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{mx}\{\num\ or \dim\}}
+Move the column in which this control sequence occurs.
+\csq\mx\{\dim\} moves the column rightward by \dim.
+If the distance to the next column (to the right) is currently $d$,
+\csq\mx\{\num\} moves the column rightward by $\num\cdot d$.
+
+\side
+\gridlines
+\Diagram
+A & B \mx{5mm} & C & D & E \\
+A & B & C & D \mx{-.25} & E \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{my}\{\num\ or \dim\}}
+Move the row in which this control sequence occurs.
+\csq\my\{\dim\} moves the row upward by \dim.
+If the distance to the next row (above) is currently $d$,
+\csq\my\{\num\} moves the row upward by $\num\cdot d$.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\sindex mm{mv}\csq{\mv\{\dim1,\dim2\}}}
+Abbreviation for \csq\rt\{\dim1\} \csq\up\{\dim2\}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{newcell}\{\type\}}
+Define a new cell type.
+One must define either the fill macro
+\ch{\\\type fill} or redefine
+the box macro \ch{\\\type box} before using a cell macro associated with
+this cell type. Spaces in \type\ are ignored.
+
+\side
+\newcell{Br}
+\def\Brfill{\linefill\ \rightarrowfill}
+
+\Diagram
+A & \rBr & B \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{newDiagram}\{\type\}}
+Define a new Diagram type. The macro pair \ch\\\type\ \csq\end\type\
+delimits Diagrams of this type. The macro \csq\every\type\ can be used
+to customize their setup. Spaces in \type\ are ignored.
+
+\side
+\newDiagram{Framed}
+\def\everyFramed{\Diagrampad=10pt \framed}
+
+\Framed
+A & \rTo & B \\
+\endFramed
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{newFigure}\{\type\}}
+Define a new Figure type. The macro pair \ch\\\type\ \csq\end\type\
+delimits Figures of this type. The macro \csq\every\type\ can be used
+to customize their setup. Spaces in \type\ are ignored.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{newfill}\{\name\}\{\emph{tail} \emph{tokens}\}%
+ \{\emph{mid} \emph{tokens}\}\{\emph{head} \emph{tokens}\}}
+Define a fill macro, which can then be used to construct arrows for diagrams.
+Spaces in \name\ are ignored.
+
+\side
+\font\tenln=line10
+\def\ltxah{\smash{\hbox{\kern-4pt\raise\fontdimen22\textfont2
+ \hbox{\tenln\char"2D}\hskip.5pt}}}
+\newfill{srightarrow}--\ltxah
+
+\hbox to 3cm{\srightarrowfill}
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{newGraph}\{\type\}}
+Define a new Graph type. The macro pair \ch\\\type\ \csq\end\type\
+delimits Graphs of this type. The macro \csq\every\type\ can be used
+to customize their setup. Spaces in \type\ are ignored.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{nonkuviocs}\ch\\{\it name}}
+Access the original definition of a control sequence which \kuvio\ has
+redefined.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{nl}}
+Typeset an arrow as a phantom.
+
+{\edge{.7}
+\side
+\newcell{Adj}
+\def\Adjbox#1{\vcenter{\offinterlineskip\dimen0=#1
+ \hbox to #1{\hskip.2\dimen0\rightarrowfill}
+ \hbox to #1{\leftarrowfill\hskip.2\dimen0}}}
+
+\labelpad{Adj}=2.5pt
+\Diagram
+A & \rAdj ^{f_1} :{.6} \rAdj \nl _{f_2} :{.4} & B \\
+\endDiagram
+\endside
+}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{nocompile}}
+Equivalent (almost) to \@\def\compileto#1{}@\.
+Note that \@\global\nocompile@\ behaves as expected.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{nodot}}
+Inhibit the typesetting of a \csq\diagramdot\ in an alignment entry of
+a Diagram for which \csq\dotted\ has been specified.
+See \csq\dotted.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{nw}}
+Ignore a horizontal alignment cell as far as positioning the columns at
+its head and tail.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mp{opland}\endopland}
+Rotate the enclosed material by 90 degrees clockwise.
+The material cannot contain vertical commands (unless enclosed in a box).
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{oplandscape}}
+Rotate a diagram 90 degrees clockwise.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{overgrid}}
+Typeset a grid on top of a Figure.
+For Diagrams and Graphs, synonymous with \csq\gridlines.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{pd}\{\math\}}
+Abbreviation for \csq\hd\{\csq\phantom\{\math\}\}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{pl}\{\math\}}
+Abbreviation for \csq\tl\{\csq\phantom\{\math\}\}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{pp}}
+Typeset an alignment cell before those corresponding to cell macros
+preceding it (above or to the left).
+Usually alignment cells are typeset in the same order in which
+their corresponding cell macros were processed (top to bottom, left to right)
+but order is important when breaking arrows with \csq\br\ or \csq\rl.
+Modification cells can be used for even greater control over the order in which
+arrows are typeset.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{Pt}\{\name\}}
+Name a point which can then be referenced using \csq\pt.
+Spaces in \name\ are significant.
+
+\side
+\Graph{2cm}{15mm}
+\Pt{tail} (0,1)
+\Pt{head} (1,0)
+\To \pt{tail} \tl{X} \pt{head} \hd{Y}
+\endGraph
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\sindex mm{pt}%
+ \csq{\pt\{\name,\num\}}
+ \csq{\pt\{\name\}}}
+Name, or reference as a coordinate, a point on an arrow.
+The string \name\ must be enclosed in parentheses if it contains a comma.
+Also, spaces in \name\ are significant.
+For type 1 modification cells \csq\pt\ is somewhat stunted: A defined point
+is always just the specified coordinate.
+\sindex tw{modification cell!type 1}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{ptpoint}%
+ \csq{\ptpoint=\num\d .5}
+ \csq{\ptpoint\{\type\}=\num}}
+Set the default location of points defined on arrows. Behaves like
+\csq\labelpoint. Spaces in \type\ are ignored.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{ptpush}%
+ \csq{\ptpush=}\dim\d 0pt
+ \csq{\ptpush+=}\dim
+ \csq{\ptpush\{\type\}=}\dim\hs\csq{\ptpush\{\type\}+=}\dim}
+Global and type-specific amounts by which the end of an arrow attached
+to another arrow (using \csq\pt) is shortened whenever a vertex has not been
+attached using \csq\hd\ or \csq\tl.
+The type-specific quantity applies to ends of arrows of cell type \type.
+Spaces in \type\ are ignored.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{range}\csq{\range=}\int}
+Set both \csq\xrange\ and \csq\yrange.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{rb}}
+Make an arrow right braced.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{recompile}}
+Equivalent (almost) to \@\let\compileto\recompileto@\.
+Note that \@\global\recompile@\ behaves as expected.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{recompileto}\{\name\}}
+Compile a diagram to the files \name{\tt .kdg} and \name{\tt .kuv}.
+Spaces in \name\ are ignored.
+\endentry
+
+\comment
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{rekuviodef}}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{rekuviodefine}}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{rekuviolet}}
+\endentry
+\endcomment
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{%
+ \index mm{rl}%
+ \csq\rl\{\dim\}}
+Like \csq\br\ except a white rule is typeset in place of an arrow.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\sindex mm{rm}\csq{\rm\{\dim1,\dim2\}}}
+Abbreviation for \csq\rr\{\dim1\} \csq\ru\{\dim2\}. This meaning is only taken
+when a modifier is expected so does not conflict with the usual meaning of
+\csq\rm. This is also true of all other modifiers.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{ro}}
+Rotate labels on an arrow.
+
+{\edge{.7}
+\side
+\Diagram
+ & & A \\
+ & \ldTo <L >R \ro & \dTo <L >R \ro & \rdTo <L >R \ro \\
+X & & X & & X \\
+\endDiagram
+\endside
+}
+
+If \csq\rotatedlabels\ is specified then \csq\ro\ inhibits rotation.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mp{rot}\endrot\csq\rot\{\num\} \csq\endrot}
+Rotate the enclosed material by \num\ degrees counterclockwise.
+The material cannot contain vertical commands (unless enclosed in a box).
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{rotatedlabels}}
+Invert the action of the \csq\ro\ modifier: Labels are rotated
+unless \csq\ro\ is specified.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{rpad}%
+ \csq{\rpad=}\dim\d 0pt
+ \csq{\rpad+=}\dim}
+Padding added to the right of a diagram or framed material.
+
+\side
+\framed \rpad=10pt
+\Diagram
+A & \rTo & B \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{rr}\{\dim\}}
+Move an arrow or modification
+to the right relative to a rotated coordinate system.
+
+\side
+\Diagram
+A & & B & \lTo ^f \rr{2\xgrid} & C \\
+\endDiagram
+\endside
+
+Note that \csq\xgrid\ is not actually a dimension
+register, although in the context of a Diagram it can be used as
+such. Ditto for \csq\ygrid.
+For a Figure or Graph one can use
+\csq\xunit\ and \csq\yunit\ in the same way.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{rt}\{\dim\}}
+Move an arrow or modification to the right.
+
+\side
+\Diagram
+A & & B & \rTo ^f \rt{-2\xgrid} & C \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{ru}\{\dim\}}
+Move an arrow or modification
+upwards relative to a rotated coordinate system.
+
+{\edge{.7}
+\side
+\Diagram
+A \\
+ & \luTo _f \ru{5pt} \luTo ^g \ru{-5pt} \\
+ & & B \\
+\endDiagram
+\endside
+}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mw{Rule@{\tt Rule}}\tt Rule}
+Cell type whose arrows are rules. The rule width can be set using \csq\rw.
+
+{\edge{.7}
+\side
+\Diagram
+A & \rRule ^{\rm above} _{\rm below} & B \\
+\endDiagram
+\endside
+}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{Rulewidth}%
+ \csq{\Rulewidth=}\dim\d 5pt
+ \csq{\Rulewidth+=}\dim}
+Default rule width used with {\tt Rule} cells.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{rw}\{\dim\}\d .4pt}
+Set the rule width for a {\tt Rule} cell or \csq\Frame\ modification.
+
+\side
+\Graph{.25\hsize}{5mm,2}
+\Frame (0,0) (.45,2) \rw{1mm}
+\Rule (.55,1) (1,1) \rw{3mm}
+\endGraph
+\endside
+\endentry
+
+\comment
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{safe}\ch\\{\it name}}
+Inside an alignment, access the usual definition of a special control
+sequence.
+\endentry
+\endcomment
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{scale}\csq{\scale=}\num}
+Abbreviation for \csq{\xscale=\num} \csq{\yscale=\num}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mp{shade}\endshade
+ \csq{\shade\{\dim,\dim\}\{\dim,\dim\}} \csq\endshade}
+Place a shadow behind a frame by specifying its offsets from the
+bottom left and top right corners of the enclosed material.
+The values of \csq\framegray, \csq\framepad\ and \csq\framerulewidth\ apply.
+
+\verbatim
+\shade{5pt,-5pt}{3pt,-3pt}\epsfxsize=3cm \epsffile{harebra.eps}\endshade
+\endverbatim
+
+\leavevmode\hskip\egindent\shade{5pt,-5pt}{3pt,-3pt}\harebra\endshade
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{shadegray}\sindex mm{shadegrey}%
+ \csq{\shadegray=}\num\ or \csq{\shadegrey=}\num\d 0}
+Set the graylevel of the shadow produced by \csqq\shade\endshade.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{stop}}
+Force an arrow to stop at an alignment entry. Has no effect on
+cell macros in the same alignment entry.
+
+{\edge{.7}
+\side
+\Diagram
+A & \rTo \up{-2pt} & \stop \rTo \up{2pt} & B \\
+\endDiagram
+\endside
+}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{squash}}
+Like \csq\smash\ from {\tt plain.tex} except typesets the following
+parenthesized material in a box
+having no height, depth or width. The typeset material is centered
+horizontally.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{squish}}
+Like \csq\smash\ from {\tt plain.tex} except typesets the following
+parenthesized material in a box
+having the same height and depth but no width.
+The typeset material is centered horizontally.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{tall}}
+Make the baseline of a Diagram coincide with that of
+its bottommost row and
+the baseline of a Figure or Graph coincide with that of
+its lower edge.
+This is the default for Figures and Graphs in non-math modes.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{Text}\{\text\}}
+Typeset \text\ as a modification.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{tl}\{\math\}}
+Attach math material to the tail of a type 2 modification cell.
+\sindex tw{modification cell!type 2}
+
+\side
+\Graph{5cm}{5mm}
+\To (0,.5) (1,.5) \tl{A}
+\endGraph
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{tpad}%
+ \csq{\tpad=}\dim\d 0pt
+ \csq{\tpad+=}\dim}
+Padding added to the top of a diagram or framed material.
+Does not alter the baseline.
+
+\side
+\framed \tpad=10pt
+\Diagram
+A & \rTo & B \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{tr}\{\dim\}}
+Raise the vertex attached to the tail of a type 2 modification cell.
+\sindex tw{modification cell!type 2}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{ts}\{\dim\ or \num\}}
+Slide the vertex attached to the tail of a type 2 modification cell
+horizontally.
+\sindex tw{modification cell!type 2}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{tx}\{\dim\ or \num\}}
+Fudge the positioning of an arrow at its tail. See \csq\hx.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{Txt}\{\text\}}
+Typeset \text\ as a modification, centered vertically on its math axis.
+
+\eg
+\gridlines
+\Graph{2cm}{1cm,2}
+\Text{left} (0,1) *0 \Txt{right} (1,1) *1
+\endGraph
+\endeg
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{ty}\{\dim\}}
+Fudge the positioning of an arrow at its tail.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\ch\\\type}
+Typeset an arrow of cell type \type\ as a modification.
+Has ten siblings for use in the alignment part of a Diagram:
+\csq\a\type, \csq\b\type, \csq\r\type,
+\csq\rd\type, \csq\d\type, \csq\ld\type, \csq\l\type,
+\csq\lu\type, \csq\u\type\ and \csq\ru\type.
+
+Non-empty alignment entries in a Diagram
+are implicitly attached (a la \csq\pl\ and \csq\pd) to the end of any
+type 2 modification cell having integral (no decimal point) coordinates.
+\sindex tw{modification cell!type 2}
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{unit}%
+ \csq{\unit=}\dim
+ \csq{\unit+=}\dim}
+Abbreviation for \csq{\xunit=\dim} \csq{\yunit=\dim} or \csq{\xunit+=\dim}
+\csq{\yunit+=\dim}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{up}\{\dim\}}
+Move an arrow or modification upwards.
+
+\side
+\Diagram
+A & \rTo ^f \up{-\ygrid} & B \\
+A & & B \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{Vertex}\{\math\}}
+Typeset math material as a modification in \csq\vertexstyle.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mm{vertexstyle}\d\csq\displaystyle}
+Style in which vertices of a diagram are typeset.
+
+\side
+\let\vertexstyle\scriptstyle
+\Diagram
+A & B \\
+C & D \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mp{vmir}\endvmir}
+Reflect the enclosed material across a vertical mirror located
+horizontally at the midpoint of the material. The material
+cannot contain vertical commands (unless enclosed in a box).
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{vpad}%
+ \csq{\vpad=}\dim
+ \csq{\vpad+=}\dim}
+Abbreviation for \csq{\bpad=}\dim\ \csq{\tpad=}\dim\ or \csq{\bpad+=}\dim\
+\csq{\tpad+=}\dim.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mod\entry{\index mm{white}}
+Typeset an arrow or modification with graylevel 1.
+
+\eg
+\font\big=cmss17
+\Graph{.25\hsize}{1cm}
+\Box (0,0) (1,1)
+\Txt{\big \"Ovningsk\"orning} (.5,.5) \white
+\endGraph
+\endeg
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\index mp{white}\endwhite}
+Typeset the enclosed material with graylevel 1.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{xgrid}%
+ \csq{\xgrid=}\dim\d 1cm
+ \csq{\xgrid+=}\dim}
+Set the default distance between the vertical gridlines of a
+Diagram. Sets \csq{\xscale=1}.
+
+\side
+\xgrid=2cm
+\Diagram
+A & B \\
+C & D \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{xrange}\csq{\xrange=}\int\d 1}
+Set the horizontal units for the coordinate
+system used when typesetting modifications on a Figure or Graph
+by dividing the default unit by \int.
+
+\side
+\xrange=2
+\Graph{1cm}{5mm}
+\Dot (0,.5) \Dot (1,.5) \Dot (2,.5)
+\endGraph
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{xscale}\csq{\xscale=}\num\d 1}
+Scale \csq\xgrid\ by \num.
+
+\side
+\xscale=1.5
+\Diagram
+A & B \\
+C & D \\
+\endDiagram
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{xunit}%
+ \csq{\xunit=}\dim
+ \csq{\xunit+=}\dim}
+Set the horizontal units for the coordinate
+system used when typesetting modifications on a Figure or Graph.
+
+\side
+\xunit=5mm
+\Graph{1cm}{5mm}
+\Dot (0,.5) \Dot (1,.5) \Dot (2,.5)
+\endGraph
+\endside
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{ygrid}%
+ \csq{\ygrid=}\dim\d 1cm
+ \csq{\ygrid+=}\dim}
+Set the default distance between the horizontal gridlines of a
+Diagram. Sets \csq{\yscale=1}.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{yrange}\csq{\yrange=}\int\d 1}
+Set the vertical units for the coordinate
+system used when typesetting modifications on a Figure or Graph
+by dividing the default unit by \int. See \csq\xrange.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{yscale}\csq{\yscale=}\num\d 1}
+Scale \csq\ygrid\ by \num. See \csq\xscale.
+\endentry
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\entry{\sindex mm{yunit}%
+ \csq{\yunit=}\dim
+ \csq{\yunit+=}\dim}
+Set the vertical units for the coordinate
+system used when typesetting modifications on a Figure or Graph.
+See \csq\xunit.
+\endentry
+
+\endinput
+
+
+% Local Variables:
+% mode:TeX
+% agss-tex-jobname:"tdwk"
+% End: