summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/generic/xypic/xyguide.man
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/generic/xypic/xyguide.man')
-rw-r--r--Master/texmf-dist/source/generic/xypic/xyguide.man2285
1 files changed, 0 insertions, 2285 deletions
diff --git a/Master/texmf-dist/source/generic/xypic/xyguide.man b/Master/texmf-dist/source/generic/xypic/xyguide.man
deleted file mode 100644
index fa96c7b5c6c..00000000000
--- a/Master/texmf-dist/source/generic/xypic/xyguide.man
+++ /dev/null
@@ -1,2285 +0,0 @@
-%% $Id: xyguide.man,v 3.6 1998/03/06 01:28:05 krisrose Exp $
-%%
-%% ``Xy-pic User's Guide''.
-%%
-%% This file is part of the Xy-pic package for graphs and diagrams in TeX.
-%% See the companion README and INSTALL files for further information.
-%% Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@ens-lyon.fr>
-%%
-%% The Xy-pic package is free software; you can redistribute it and/or modify
-%% it under the terms of the GNU General Public License as published by the
-%% Free Software Foundation; either version 2 of the License, or (at your
-%% option) any later version.
-%%
-%% The Xy-pic package is distributed in the hope that it will be useful, but
-%% WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-%% or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-%% for more details.
-%%
-%% You should have received a copy of the GNU General Public License along
-%% with this package; if not, write to the Free Software Foundation, Inc.,
-%% 675 Mass Ave, Cambridge, MA 02139, USA.
-
-\documentclass{article}
-%begin{latexonly}
-\usepackage{xydoc}
-%end{latexonly}
-\begin{htmlonly}
-\usepackage{xyhtmldoc}
-\end{htmlonly}
-\input{version}
-\CompilePrefix{xygui-}
-\makeindex
-\begin{document}
-
-\title{ \Xy-pic User's Guide }
-\author{ Kristoffer H. Rose\quad<krisrose@ens-lyon.fr>\thanks{%
- Laboratoire de l'Informatique du Parall\'elisme,
- Ecole Normale Sup\'erieure de Lyon;
- 46, All\'ee d'Italie; F--69364 Lyon 7, France.}}
-\date{Version \xyversion, \printdate{\xydate}}
-\maketitle
-
-\begin{abstract}
-%
- \Xy-pic is a package for typesetting graphs and diagrams using
- Knuth's \TeX\ typesetting system. \Xy-pic works with most of the
- many formats available; \eg, plain \TeX, \LaTeX, and \AMS-\TeX.
- Several styles of input for various diagram types are supported; they
- all share a mnemonic notation based on the \emph{logical composition
- of visual components}. This guide concentrates on how to typeset
- ``matrix-like'' diagrams, such as ??w![commutative diagrams], in the
- following style:
-%
-\begin{displaymath}
-\begin{code}
-\xymatrix{
- U \ar@/_/[ddr]_y \ar@/^/[drr]^x
- \ar@{.>}[dr]|-{(x,y)} \\
- & X \times_Z Y \ar[d]^q \ar[r]_p
- & X \ar[d]_f \\
- & Y \ar[r]^g & Z }
-\end{code}
-%
-\docode
-\end{displaymath}
-%
-was typeset by the \Xy-pic input lines
-%
-\displaycode\noindent
-%
-Such diagrams have the following characteristics:
-%
-\begin{itemize}
-
-\item
- Specified as a matrix of entries that are automatically aligned in rows and
- columns.
-
-\item
- Any entry may be connected to any other entry using a variety of
- arrow styles all rotated and stretched as required.
-
-\item
- Arrows may be decorated with labels that are tied to a specified
- point along the arrow and extend in a particular direction; and
- arrows may be paired, cross, and visit/bend around other entries ``on
- the way.''
-
-\end{itemize}
-%
- Several other styles of input are supported; a short survey of the
- possibilities is included last at the end along with information on
- how \Xy-pic can be obtained.
-%
-\end{abstract}
-
-\tableofcontents
-
-
-
-\section*{Preface}\noindent
-\addcontentsline{toc}{section}{Preface}%
-%
- This guide explains some features of \Xy-pic that are relevant to
- typesetting of ``matrix-like diagrams'' as used in, for example,
- category theory; please refer to the reference
- manual~\cite{RM95:Xy-picRM} for complete information on the described
- constructions. The guide assumes that you have some experience in
- using \TeX\ for typesetting mathematics, \eg, have
- studied~\cite[ch.~16--19]{K84:TeXbook}, \cite[sec.~3.3]{L94:LaTeX},
- or~\cite{S90:JoyT}, and that \Xy-pic is installed on your \TeX\
- system as described in the |INSTALL| file accompanying the
- distribution.
-
- The first section describes what you need to get started, in
- particular all that is needed to typeset the diagram in the abstract.
- Section~??[arrows] and~??[entries] explain advanced use of arrows and
- entries, respectively. Finally, section~??[avail] explains where and
- under what conditions \Xy-pic is available, gives the relation of
- version \xyversion\ to previous versions, and lists further sources
- of information.
-
- Throughout we give exercises that you should be able to solve as you
- go along; all exercises are answered at the end just prior to the
- references and index.
-
-
-
-\section{Basics}
-??=[basics]
-%
- This section explains the \Xy-diagram construction concepts needed to
- get started with typesetting matrix-like diagrams.
-
-
-\subsection{Loading}
-??=[basics.loading]
-%
- The \Xy-pic setup used in this guide is loaded??w[loading] by
- inserting the lines
-%
-\begin{defs1}
- \cs{input} |xy| \cr
- ??c![\xyoption]|{all}|
-\end{defs1}
-\noindent\unskip
-%
- in the definitions part of your
- document.\footnote{??w![\LaTeXe]~\cite{L94:LaTeX} users can use
- ??c![\usepackage]|[all]{xy}|.} If you wish to load only the
- features you use, or you wish to use non-standard facilities like the
- |v2| backwards compatibility mode\footnote{If you use the version~2
- loading command \cs{input} |xypic| (or the |xypic| document style
- option) then the ??c![v2] option described in section ??[compat] will
- be loaded automatically.} or the ??c![ps] \PS\ backend then this is
- also possible as described in the reference
- manual~\cite{RM95:Xy-picRM}.
-
-
-\subsection{Entries}
-??=[basics.entries]
-%
- A diagram is created by the command
-%
-\begin{defs1}
- ??c![\xymatrix]|{|~\dots~|}|
-\end{defs1}
-\noindent\unskip
-%
- where the ``\dots'' should be replaced by \emph{entries}??w[entry] to
- be aligned in \emph{??w![rows]} and \emph{??w![columns]} where
-%
-\begin{itemize}
-
-\item
- entries in a row are separated by ??c![&],\footnote{Thus when using
- \protect\Xy-constructions involving |&| inside other tabular
- constructions then enclose the \protect\Xy-pic construction in an
- extra pair of braces!} and
-
-\item
- entire rows are separated by ??c![\\].
-
-\end{itemize}
-%
- For example,
-\begin{displaymath}
-\begin{code}
-\xymatrix{
- A &*+[F]{\sum_{i=n}^m {i^2}} \\
- & {\bullet} & D \ar[ul] }
-\end{code}
-\docode
-\end{displaymath}
-%
- was typeset by
-%
-\displaycode\noindent
-%
- Notice the following:
-%
-\begin{itemize}
-
-\item
- entries are typeset as mathematics (using ``??w![text style]'');
- entries should not start with a macro (as illustrated by the use of
- |{}| around |\bullet|\,.
-
-\item
- all entries are centered and the separation between rows and columns
- is usually quite large in a diagram,
-
-\item
- empty entries at the end of rows may be omitted,
-
-\item
- ``\Xy-decorations'' (here |\ar[ul]|) in entries allow drawing of
- arrows and such relative to the entries without changing the overall
- layout, and
-
-\item
- ``\Xy-modifiers'' (here |*+[F]|) first in entries allow changing the
- format and shape in many ways.
-
-\end{itemize}
-
-
-
-\subsection{Arrows}
-??=[basics.arrows]
-%
- An ``??w![arrow]'' in an \Xy-pic diagram is a generic term for the
- drawn decorations between the entries of the basic matrix structure.
- In \Xy-pic all arrows must be specified along with the entry in which
- they start; this is called their \emph{??w![base entry]}. Each
- particular arrow command then refers explicitly to its
- \emph{??w![target entry]}. This is obtained using the ??c![\ar]
- command which accepts many options of which we will describe a few
- here and some more in section~??[arrows]. In its simplest form an
- arrow is entered as |\ar[|\emph{hop}|]| where \emph{??w![hop]} is
- a sequence of single letters: ??c![u] for up, ??c![d] for down,
- ??c![l] for left, and ??c![r] for right, \eg, the arrow |\ar[ur]|
- reads ``typeset an arrow from the current entry to that one up and one
- right.''
-
-\begin{exercise}
- Which entry does ??C![] refer to?
-\answertext{The target |[]| is the current entry itself.}
-\end{exercise}
-
-\vspace{\medskipamount}\noindent
-%
- The relative ??w![coordinates] specified in this way are purely
- logical, \eg, if the diagram contains very wide entries then
- ``diagonal'' arrows will be nearly horizontal. The constructed arrows
- are aligned along the line between the centers of the base and target
- entries; they will not automatically disappear under entries that
- they cross (we discuss how this is achieved in
- section~??[arrows.pass]).
-
- The ??w![arrow style] kan be changed by writing the command as
- |\ar@|\emph{style}|[|\emph{hop}|]|. This will be described in
- more detail in section~??[arrows.styles]; here we just list the most
- common ??c![@]\emph{style}s (obvious variations also work):
-%
-\begin{displaymath}
-\begin{code}
- \DEF\st#1{\hbox{\lower1ex\rlap{\kern1pc %
- \xy*{}+/r2pt/\ar@{#1},<1pc,-1.8pc>*{}\endxy}|@{#1}|}}
- \st{=>}\quad\st{.>}\quad\st{:>}\quad\st{~>}\quad\st{-->}\quad\st{-}\quad\st{}
-\end{code}
-\begin{IMAGE}
-\docode
-\end{IMAGE}
-\end{displaymath}
-
-\begin{exercise}
-%
- Typeset
-%
-\begin{displaymath}
-\begin{code}
-\xymatrix{
- {\bullet} \ar@{--}[d]\ar@{=}[dr]\ar@{-}[r]
- & {\bullet} \ar@{.}[d] \\
- {\bullet} & {\bullet} \ar[l] }
-\end{code}
-\docode
-\end{displaymath}
-%
-\answercode
-\answertext{The author did }
-\answerdisplaycode
-\answertext{\noindent Notice how
- $\bullet$ has been enclosed in |{}| since it is an ``expandable''
- entity, \ie, a defined macro: this is recommended.}
-\end{exercise}
-
-
-\subsection{Labels}
-??=[basics.labels]
- You can put ??w![label]s on arrows. Labels are conceptualized as
- sub- and superscripts on arrows such that they are placed in the
- usual positions (as ``limits''), \ie, ??c![^] reads ``above'' and
- ??c![_] ``below'' on an arrow pointing right. Notice that the
- positions depend \emph{only} on the direction of the arrow, the
- absolute notions of ``up,'' ``down,'' etc. are not important. For
- example,
-%
-\begin{code}
-$\xymatrix@1{
- X\ar[r]^a_b & Y & Z\ar[l]^A_B }$
-\end{code}
-\displaycode\noindent
-%
- will set \begin{IMAGE}\docode\end{IMAGE} (the ??c![@1] is a
- special code that can be
- used for ``one-line'' diagrams to improve the placement on the line;
- more such spacing codes are described in section~??[entries.resizing]).
-
- It is possible to use labels that are not single letters, digits, or
- control sequences: if a simple math formula in the default style
- (script style) is desired then simply enclose in |{|\dots|}|. In
- practice anything can be used as a label as described in
- section~??[arrows.objects].
-
- Each label is placed perpendicular to the arrow at the point halfway
- between the centers of the base and target objects. This is usually
- the most ęsthethic, however, in diagrams where the sizes of the
- entries vary much it is sometimes nicer to place the label at the
- center of the actual arrow??w[label centered on arrow]. This
- behaviour is requested by inserting a ??c![-] (minus) right after the
- |^| or~|_|:
-%
-\begin{code}
-$\xymatrix@1{
- A\times B\times C\times D \ar[r]^-{+} &B
-}$
-\end{code}
-%
-\begin{IMAGE}
-\docode
-\end{IMAGE} was typeset by
-%
-\displaycode\noindent
-%
- (it becomes
-%
-\begin{code}
-$\xymatrix@1{
- A\times B\times C\times D \ar[r]^{+} &B
-}$
-\end{code}
-%
-\begin{IMAGE}
-\docode
-\end{IMAGE}without the~|-|). In fact |-| is in just one of the may
- possible placings of labels described in section~??[arrows.places].
-
-\begin{exercise}
-%
- Typeset the second axiom of category theory as
-%
-\begin{displaymath}
-\begin{code}
-\xymatrix{
- A \ar[r]^f \ar[dr]_{f;g}
- & B \ar[d]^g \ar[dr]^{g;h} \\
- & C \ar[r]_h & D }
-\end{code}
-\docode
-\end{displaymath}
-%
-\answercode
-\answertext{The author used }
-\answerdisplaycode
-\end{exercise}
-
-
-\subsection{Breaks}
-??=[basics.breaks]
- It is also possible to ``??w![break]'' an arrow with a label using the
- ??c![|] character:
-%
-\begin{code}
-$\xymatrix@1{A\ar[r]|f&B}$
-\end{code}
-%
- \thecode\ will set
-\begin{IMAGE}
-\docode
-\end{IMAGE}.
-
- If you just want an empty break you should use the special
- ??c![\hole] break:
-%
-\begin{code}
-$\xymatrix@1{ A\ar[r]|\hole & B }$
-\end{code}
-%
- the arrow \begin{IMAGE}\docode\end{IMAGE} was typeset by
- including \thecode\ in the text.
-
- A different use of breaks is to place a label somewhere in a diagram
- outside the normal matrix mesh??w[entry outside matrix]: this is
- accomplished by ``breaking'' an ??w![invisible arrow] obtained using
- the ??c![@{}] ??w![arrow style]: the square
-%
-\begin{displaymath}
-\begin{code}
-\xymatrix{\ar @{} [dr] |{=}
- A \ar[d] \ar[r] & B \ar[d] \\
- B \ar[r] & C }
-\end{code}
-\docode
-\end{displaymath}
-%
- was typeset by
-%
-\displaycode\noindent
-%
- There is more on breaks in section~??[arrows.pass].
-
-\begin{exercise}
-%
- Typeset the first axiom of category theory as the display
-%
-\begin{displaymath}
-\begin{code}
-\xymatrix{
- A \ar[d]_f \ar[r]^f
- & B \ar[dl]|{i_B} \ar[d]^g \\
- B \ar[r]_g & C }
-\end{code}
-\docode
-\end{displaymath}
-%
-\answercode
-\answertext{The author entered }
-\answerdisplaycode
-\end{exercise}
-
-
-\subsection{Curving}
-??=[basics.bends]
-%
- Arrows can be made to ??w![curve], for example to avoid going through
- another entry, using the special style |@/|\emph{curving}|/|. The
- simplest styles of \emph{curving} are the following, shown applied
- to an arrow from $A$ to $B$:
-%
-\begin{displaymath}
-\begin{code}
-\DEF\a#1{*\hbox{\DEF\1{#1}\enspace\tt\codeof\1}& A \ar#1[r] & B}
-\xymatrix @R-1.4pc{
- \a{@/^/} \\
- \a{@/_/} \\
- \a{@/_1pc/} }
-\end{code}
-\begin{IMAGE}
-\docode
-\end{IMAGE}??c[@/^/]??c[@/_/]
-\end{displaymath}
-%
- As the last example shows a dimension can be inserted just after |^|
- or |_| if more or less curving is desired.
-
- In case it is easier to specify the in- and out-going directions of
- the curving then that is also possible: use
-%
-\begin{defs1}
- ??c![@(]\emph{in}|,|\emph{out}|)|
-\end{defs1}
-\noindent\unskip
-%
- where \emph{in} and \emph{out} are one of the following
- \emph{??w![direction]s}:
-%
-\begin{displaymath}
-\begin{code}
-\xy *=<2pc>[o][F]{}="c",
- "c"; (-1,-1)**{},p+/3pc/ *+{|dl|} **@{-}?>*@{>},
- "c"; ( 0,-1)**{},p+/3pc/ *+{|d|} **@{-}?>*@{>},
- "c"; ( 1,-1)**{},p+/3pc/ *+{|dr|} **@{-}?>*@{>},
- "c"; ( 1, 0)**{},p+/3pc/ *+{|r|} **@{-}?>*@{>},
- "c"; ( 1, 1)**{},p+/3pc/ *+{|ur|} **@{-}?>*@{>},
- "c"; ( 0, 1)**{},p+/3pc/ *+{|u|} **@{-}?>*@{>},
- "c"; (-1, 1)**{},p+/3pc/ *+{|ul|} **@{-}?>*@{>},
- "c"; (-1, 0)**{},p+/3pc/ *+{|l|} **@{-}?>*@{>}
-\endxy
-\end{code}
-\docode
-\end{displaymath}
-\noindent\unskip
-%
- In this case the curving is computed such that the curve begins at the
- base entry in the \emph{in} direction and ends at the target entry
- from the \emph{out} direction (this means that $|@(|d_1|,|d_2|)|$
- and $|@(|d_2|,|d_1|)|$ are mirror images. See
- section~??[arrows.changing] for more directions).
-
-\begin{exercise}
-%
- Typeset
-%
-\begin{displaymath}
-\begin{code}
-\xymatrix{
- x \ar@(ul,dl)[]|{id} \ar@/^/[rr]|f
- && f(x) \ar@/^/[ll]|{f^{-1}} }
-\end{code}
-\docode
-\end{displaymath}
-%
-\answercode
-\answertext{The author did }
-\answerdisplaycode
-\answertext{\noindent Note that both arrows are
- curved ``above'' relative to their direction.}
-\end{exercise}
-
-
-\subsection{Speeding up typesetting}
-??=[basics.speeding]
-%
- One thing that you will notice is that \Xy-pic is sometimes slow in
- typesetting diagrams (this is to be expected considering the number
- of drawing operations performed as reflected by the number last in
- each |xymatrix| message). If you follow the rule of starting all
- entries with a (nonexpandable) character or |{| then you can insert
- the declaration
-%
-\begin{defs1}
- ??c![\CompileMatrices]
-\end{defs1}
-\noindent\unskip
-%
- in the preamble of your document: this will create temporary
- files\footnote{The temporary files are named the same as your
- document but |.tex| is replaced by |-|$n$|.xyc| where $n$ is a
- sequence number.} containing \emph{compiled} versions of each
- matrix that can be loaded very quickly; they are automatically
- recreated when a matrix is changed.
-
- If this causes some diagrams to not work, then such compilation can be
- explicitly switched off by using ??c![\xymatrixnocompile] in place of
- |\xymatrix|. Compilation can be switched off completely with
- ??c![\NoCompileMatrices] (which respects \TeX\ grouping as does
- ??c![\CompileMatrices], by the way).
-
- And if you are still not satisfied with the speed then you can add
- the following:
-%
-\begin{defs1}
- ??c![\OnlyOutlines]
-\end{defs1}
-\noindent\unskip
-%
- which will omit all compiled pictures; the additional command
- ??c![\ShowOutlines] will add a dotted rectangle outlining the size of
- the picture.
-
-
-
-\section{More Arrows and Labels}
-??=[arrows]
-%
- In this section we explain a number of variations of the
- ??w![arrow]??c[\ar] commands that are useful in ??w![commutative
- diagrams].
-
-
-\subsection{Explicit label positioning}
-??=[arrows.places]
-%
- The ??w![label]??w[explicit positioning] commands explained in
- section~??[basics.labels] place the label text near the point along
- the arrow halfway between the centers of the base and target entries.
- This, however, may be changed by inserting a \emph{place} between
- the ??c![^], ??c![_], or ??c![|], and the actual label (in fact |-|
- is a \emph{place}). In general you may insert the following:
-%
-\begin{itemize}
-
-\item
- ??c![<] will place the label at the point where the actual arrow
- begins, \ie, ``appears from under'' the base, so
-%
-\begin{code}
-$\xymatrix@1{A\ar[r]^<{+}&B}$
-\end{code}
-%
- \thecode\ will typeset \begin{IMAGE}\docode\end{IMAGE}.
-
-\item
- Similarly, ??c![>] will place the label at the point where the actual
- arrow ends, \ie, ``disappears below'' the target, so
-%
-\begin{code}
-$\xymatrix@1{A\ar[r]^>{+}&B}$
-\end{code}
-%
- \thecode\ will typeset \begin{IMAGE}\docode\end{IMAGE}.
-
-\item
- ??c![<<] and ??c![>>] will place the following label at a point just
- a bit\footnote{``A bit'' is in fact a \TeX\ ??c![\jot] which is usually
- 3pt.}\ further from the beginning and end of the arrow, so
-%
-\begin{code}
-$\xymatrix@1{A\ar[r]^>>{+}&B}$
-\end{code}
-%
- \thecode\ will typeset \begin{IMAGE}\docode\end{IMAGE}.
- Using more |<|s or |>|s will move the label further in.
-
-\item
- A factor in ??c![()]s: $|(|a|)|$ indicates that the label should be
- ``tied'' to the point $a$ of the way from the center of the base entry
- (called ??c![(0)]) to the center of the target (called ??c![(1)])
- instead of in the middle, so
-%
-\begin{code}
-$\xymatrix@1{A\ar[r]^(.3){+}&B}$
-\end{code}
-%
- \thecode\ will typeset \begin{IMAGE}\docode\end{IMAGE}.
-
-\item
- A factor can be given \emph{after} some |<| or |>|s, in which case
- the place is computed as if the base was specified by the
- |<|s and target specified by the |>|s. Hence
-%
-\begin{code}
-$\xymatrix@1{A\ar[r]^<(0){+}&B}$
-\end{code}
-%
- \thecode\ will typeset \begin{IMAGE}\docode\end{IMAGE}.
-
-\item
- Finally, there is a simple way to denote the place on an arrow where
- it ??w![intersects]??w[crossing arrows] with a straight line between
- two points: the place |!{|$t_1$|;|$t_2$|}|??c[!{;}] places the label
- relative to the point on the arrow where the line from the target
- $t_1$ to the target $t_2$ crosses it. \BUG: Only works for straight
- arrows at present.
-
-\end{itemize}
-%
- As usual more possibilities can be found in the reference
- manual~\cite[fig. 2]{RM95:Xy-picRM}.
-
-\begin{exercise}??=[x.intercept]
-%
- Typeset
-%
-\begin{displaymath}
-\begin{code}
-\xymatrix{
- 1 \ar[rr] ^-{1000000x}
- \ar[dr] _(.2){2000x} |!{[d];[rr]}\hole
- && 1000000 \\
- 1000 \ar[r] _{2x}
- \ar[urr] _>>>>{x^2}
- & 2000 }
-\end{code}
-\docode
-\end{displaymath}
-%
-\answercode
-\answertext{The author used the display }
-\answerdisplaycode
-\answertext{\noindent In particular
- notice how the break was specified to happen exactly where the two
- arrows cross. For an easier but not so general method see
- exercise~??[x.cube] last in section~??[arrows.pass].}
-\end{exercise}
-
-
-\subsection{Labeling with any object}
-??=[arrows.objects]
-%
- \Xy-pic supports a general format for entering any \TeX\
- ??w![text]??w[text label] as labels (as well as entries to be
- explained later). The character |*| is reserved for this: in its
- simplest form |*{|\emph{math}|}| will typeset the \emph{math}
- material as an object. This is like |{|\emph{math}|}| except that
- the default style is ignored and there is no added blank margin.
-
- However, in general??w[label with any object] the following form of
- ??c![*]\emph{object}??w[object] is available:
-%
-\begin{defs1}
-|*|\emph{modifiers}|{|\emph{text}|}|
-\end{defs1}
-\noindent\unskip
-%
- where \emph{modifiers}??w[object modifier] can be used to change
- the ??w![shape] and ??w![size] of the constructed object. The
- following are the most common, the full list of possibilities can be
- found in the reference manual~\cite[fig. 3]{RM95:Xy-picRM}:
-%
-\begin{defs}
- ??c![+] & ??w![grow] \cr
- |+<|\emph{dimen}|>| & grow by \emph{dimen} \cr
- ??c![+=] & grow to enclosing ??w![square] \cr
- ??c![-] & ??w![shrink] \cr
- |-<|\emph{dimen}|>| & shrink by \emph{dimen} \cr
- ??c![-=] & shrink to contained square \cr
- ??c![!] & do not center \cr
- ??C![o] & round??w[round shape] \cr
- ??C![l] ??C![r] ??C![u] ??C![d] & adjust left, right,\dots??w[adjust] \cr
- ??C![F] ??C![F=] &
-\begin{IMAGE}
-\xy*[F-]\hbox{\strut~frame~}\endxy
-\end{IMAGE}??w[frame]
-%
-\begin{IMAGE}
-\xy*[F=]\hbox{\strut~double~}\endxy
-\end{IMAGE}??w[double frame]\cr
- ??C![F.] ??C![F--]
- &
-\begin{IMAGE}
-\xy*[F.]\hbox{\strut~dotted~}\endxy
-\end{IMAGE}??w[dotted frame]
-%
-\begin{IMAGE}
-\xy*[F--]\hbox{\strut~dashed~}\endxy
-\end{IMAGE}??w[dashed frame]\cr
- ??C![F-,] ??C![F-:<3pt>]
- &
-\begin{IMAGE}
-\xy*[F-,]\hbox{\strut~shaded~}\endxy
-\end{IMAGE}??w[shaded frame]
-\begin{IMAGE}
-\xy*[F-:<3pt>]\hbox{\strut~rounded~}\endxy
-\end{IMAGE}??w[rounded frame]
-\end{defs}
-\noindent\unskip
-%
- Since objects specified this way start with no margin, a single |+|
- is usually included to get the ??w![default spacing].
-
-\begin{exercise}
-%
-\begin{code}
-\xymatrix@1{ A \ar[r]^*+[o][F-]{x} & B }
-\end{code}
-%
- Typeset $\smash{\docode}$~.
-%
-\answercode
-\answertext{The author typed }
-\answerdisplaycode
-\end{exercise}
-\vspace{3ex}
-
- There can only be one \emph{boxing}. This can be any box
- generation command. The following are the most useful
- \emph{boxing}|{|\emph{text}|}| combinations:
-%
-%\filbreak
-\begin{defs}
- ??c![@]\emph{variant}|{|\emph{tip}|}| & ??w![tip] (or ??w![shaft]) object \cr
- ??c![\txt]|{|\dots|}| & ordinary \emph{??w![text]} \cr
- ??c![\composite]|{|\dots??c![*]\dots|}| & ??w![combined objects] \cr
- ??c![\frm]|{}| & ??w![repeat last object]
-\end{defs}
-\noindent\unskip
-%
- (the possibilities for \emph{variant} and \emph{tip} are given in the
- following section). Finally, ??c![\hbox]|{|\dots|}|\footnote{The
- plain \TeX\ command |\hbox| corresponds to |\mbox| in \LaTeX\
- and |\text| in the \AMS\ variants.} is a quick way to ensure
- text-mode interpretation of a single object. However, ??c![\txt]
- allows the use of ??c![\\] in \emph{text} to create a ??w![line
- break], and the special form |\txt<6pc>{|\dots|}| will constrain the
- text to a ??w![centered] 6pc wide column. By the way, |\txt| can be
- used outside of \Xy-pic constructions.
-
- Finally, several objects can be combined using the last form; the
- |*|s serve to separate the composed object.
-
-\begin{exercise}
-%
-\begin{code}
-\xymatrix@1{
- A \ar @{/*\composite{{+}*{\times}}/} [rr]
- ^*+\txt{High\\label}
- && B}
-\end{code}
-%
- Typeset $\docode$~.
-%
-\answercode
-\answertext{The author did }
-\answerdisplaycode
-\end{exercise}
-
-\vskip-\baselineskip
-\subsection{More arrow styles}
-??=[arrows.styles]
-%
- The ??w![arrow style]s described in section~??[basics.arrows] are all
- examples of the general \emph{??w![arrow style]} constructions
-%
-\begin{defs1}
-??c![@]\emph{??w![variant]}|{|\emph{??w![tail]} \emph{??w![shaft]}
- \emph{??w![head]}|}|\cr
-??c![@]\emph{variant}|{|\emph{head}|}|
-\end{defs1}
-\noindent\unskip
-%
- that in describes arrows with the indicated \emph{tail},
- \emph{shaft}, and \emph{head} (on the first form the tail and
- head can be omitted; the second style defaults to having no tail and
- a standard shaft).??w[arrow head]??w[arrow shaft]??w[arrow tail]
-
- The following possibilities exist for \emph{head} and \emph{tail}
- which we will denote \emph{tips} (here shown as heads):
-%
-\begin{unformatteddefs}
-\begin{code}
-{\DEF\DT#1#{\DTx{#1}}
- \DEF\DTx#1#2{\Dx{#1}{#2}&\xy-(4,0)*{};(4,2)*+{}**{}?>*@#1{#2} **@#1{.}\endxy}
- \DEF\Dx#1#2{\hbox{\DEF\1{#2}\enspace{\tt\codeof\1}\index code{#2}}}
- \DEF\Darray#1{{\let\\=\cr \tabskip=2em plus 1fil minus.8em %
- \halign to\hsize{&\hfil$##$\tabskip=1em&$##$\hfil\tabskip=2em plus 1fil \cr
- #1\crcr}}}
- %
- \Darray{%
- \DT{<} &\DT{>} &\DT{x} \\
- \DT{<<} &\DT{>>} &\DT{+} \\
- \DT{|<} &\DT{>|} &\DT{|} \\
- \DT{|<<} &\DT{>>|} &\DT{||} \\
- \DT{(} &\DT{)} &\DT{o} \\
- \DT{/} &\DT{//}}}
-\end{code}
-\begin{IMAGE}
-\docode
-\end{IMAGE}
-\end{unformatteddefs}
-%
- and the \emph{shaft} should be one of the following:??w[dotted
- arrow]??w[dashed arrow]??w[squiggly arrow]
-%
-\begin{unformatteddefs}
-\begin{code}
-{\DEF\DC#1#{\DCx{#1}}
- \DEF\DCx#1#2{ \Dx{#1}{#2} & \xy *+{} ; (12,4)*+{} **@#1{#2}\endxy}
- \DEF\Dx#1#2{\hbox{\DEF\1{#2}\enspace\tt\codeof\1\index code{#2}}}
- \DEF\Darray#1{{\let\\=\cr \tabskip=2em plus 1fil %
- \halign to\hsize{&\hfil$##$\tabskip=1em&$##$\hfil\tabskip=2em plus 1fil \\
- #1\crcr}}}
- \Darray{%
- \DC{-} &\DC{--} \\
- \DC{~} &\DC{~~} \\
- \DC{.} }}%
-\end{code}
-\begin{IMAGE}
-\docode
-\end{IMAGE}
-\end{unformatteddefs}
-\goodbreak
-%
- The \emph{variant} should be empty or one of the following:
-%
-\begin{defs}
-??c![^] & ``above'' variant??w[half arrow] \cr
-??c![_] & ``below'' variant \cr
-|2| & ``double'' variant??w[double arrow] \cr
-|3| & ``triple'' variant??w[triple arrow]
-\end{defs}
-\noindent\unskip
-%
- Here are some standard arrows in this notation, all from $A$ to $B$
- as usual:
-%
-\begin{displaymath}
-\begin{code}
-\DEF\a#1{*\hbox{\DEF\next{#1}\tt\codeof\next}& A \ar#1[rr] && B}
-\xymatrix @R-1.8pc @C-1pc {
- \a{@{<->}} \\
- \a{@^{<->}} \\
- \a{@_{<->}} \\
- \a{@2{<->}} \\
- \a{@3{<->}} }
-\end{code}
-\begin{IMAGE}
-\docode
-\end{IMAGE}
-\end{displaymath}
-%
- As a special convenience |=| and |:| are provided as abbreviations
- for |-| and |.| with variant forced to~|2|.
-
- As it can be seen, the variant will affect the \emph{entire} arrow.
- Sometimes this is not what is wanted. In that case a \emph{local
- variant} can be used by entering any of the \emph{tail},
- \emph{shaft}, and \emph{head}, on the following form:
-%
-\begin{defs1}
-\emph{variant}|{|\emph{tip}|}|\cr
-\emph{variant}|{|\emph{shaft}|}|
-\end{defs1}
-\noindent\unskip
-%
- Here are some arrows where this is required:
-%
-\begin{displaymath}
-\begin{code}
-\DEF\a#1{*\hbox{\DEF\next{#1}\tt\codeof\next}& A \ar#1[r] & B}
-\xymatrix @R-1.8pc{
-\a{@{^{(}->}} \\
-\a{@{|-_{>}}} }
-\end{code}
-\begin{IMAGE}
-\docode
-\end{IMAGE}
-\end{displaymath}
-%
- Notice that there is no distinction between shafts and tips using
- this form, thus it is necessary to include all three of
- \emph{tail}, \emph{shaft}, and \emph{head}, when using it. The
- advantage is that it is possible then to ``fill with a tip.''??w[tip in
- shaft]??w[shaft as tip] Furthermore, the following additional
- possibilities are available when using this notation:
-%
-\begin{unformatteddefs}
-\begin{code}
-{\DEF\DT#1#{\DTx{#1}}
- \DEF\DTx#1#2{\Dx{#1}{#2}&\xy-(4,0)*{};(4,2)*+{}**{}?>*@#1{#2} **@#1{.}\endxy}
- \DEF\Dx#1#2{\hbox{\DEF\1{#1{#2}}\enspace{\tt\codeof\1}\index code{#1{#2}}}}
- \DEF\Darray#1{{\let\\=\cr \tabskip=0pt plus 1fil %
- \halign to\hsize{&\hfil$##$\tabskip=1em&$##$\hfil\tabskip=1em plus 1fil \cr
- #1\crcr}\bigskip}}
- \Darray{%
- \DT{|-} &\DT^{|-} &\DT_{|-} \\
- &&\DT {|=} &\DT3{|-} \\
- \DT{*} &\DT^{`} &\DT_{`} \\
- &&\DT^{'} &\DT_{'} }}%
-\end{code}
-\begin{IMAGE}
-\docode
-\end{IMAGE}
-\end{unformatteddefs}
-\noindent\unskip
-%
- The even more general form |*|\emph{object} can be used, where
- \emph{object} refers to any of the constructions described in
- section~??[arrows.objects].
-
-\begin{exercise}
-%
-\begin{code}
-\xymatrix{
- A \ar @/^/ @{^{<}-_{>}} [r]
- \ar @/_/ @{{*}{x}{*}} [r] & B }
-\end{code}
-%
- Typeset $\docode$~.
-%
-\answercode
-\answertext{The author entered }
-\answerdisplaycode
-\end{exercise}
-
-
-\subsection{Sliding arrows sideways}
-??=[arrows.sliding]
-%
- It is often desirable to have several ??w![parallel] arrows between
- two objects. This can be done by ??w![sliding] either or both arrows
- ??w![sideways] a distance given as a \TeX\ dimension enclosed in
- ??c![@<>]s: it specifies how far ``sideways'' the arrow should be
- moved, \eg,
-%
-\begin{code}
-\xymatrix{
- A \ar@<1ex>[dr]^a_{.} \\
- & B \ar@<1ex>[ul]^b \ar@<1ex>[r]^c
- & C \ar@<1ex>[l]^d_{.} }
-\end{code}
-\displaycode
-%
-\noindent will typeset
-%
-\begin{displaymath}
-\docode
-\end{displaymath}
-%
- A positive distance will slide the arrow in the ``|^|-direction,'' \eg,
- the two arrows above are slid in the direction of the labels~$a$,
- $b$, $c$, and $d$, respectively; a negative distance in the
- ``|_|-direction.'' The distance |<@1ex>| is often appropriate since it
- corresponds roughly to the height of letters like ``x,'' in the type size
- being used.
-
-\begin{exercise}
-%
-\begin{code}
-\xymatrix@1{
- A \ar@/^/[r] \ar@/^/@<-1ex>[r] & B }
-\end{code}
-%
- Typeset $\docode$~.
-%
-\answercode
-\answertext{The author typed }
-\answerdisplaycode
-\end{exercise}
-
-
-\subsection{More targets}
-??=[arrows.targets]
-%
- The ??w![target] address can be given in a large number of formats
- called \emph{??w![position]s}. The full range of possibilities is
- described in the reference manual~\cite[fig. 1]{RM95:Xy-picRM}; here
- is a number of useful ones in addition to the \emph{hop} format
- described in section~??[basics.arrows]:
-%
-\begin{itemize}
-
-\item
- $|[|r|,|c|]|$??C[], where $r,c$ are integers, denotes the
- \emph{??w![relative entry]} found $r$~??w![rows] below and
- $c$~??w![columns] to the right of the current entry (the ??w![current
- entry] itself is thus |[0,0]|). This always corresponds to a
- |[|\emph{??w![hop]}|]|, \eg, |[1,2]| is the same as |[drr]| and
- |[-2,0]| is the same as |[uu]|.
-
-\item
- $|"|r|,|c|"|$, where $r,c$ are positive integers, denotes the
- \emph{??w![absolute entry]} found in the $r$th row and $c$th column
- of the diagram. The top left entry is |"1,1"|.
-
-\item
- $t'??c![;]t$~, where $t'$ is any target, changes the ??w![base entry]
- of the present arrow to $t'$ and then sets the target to $t$ relative
- to the original base entry. For example,
-%
-\begin{code}
-\xymatrix{ A \\
- B & C \ar@<1ex>[ul]
- \ar@<1ex>[ul];[] }
-\end{code}
-\displaycode
-%
-\noindent\unskip typesets
-%
-\begin{displaymath}
-\docode
-\end{displaymath}
-%
- \ie, the second |\ar[ul]| arrow starts at the |[ul]| entry and ends
- in the current entry.
-
-\end{itemize}
-%
- See section~??[entries.naming] for how to use a label as a target.
-
-
-\subsection{Changing the target}
-??=[arrows.changing]
-%
- It is possible to ??w![overwrite] a ??w![target] with another by
- appending something of the form ??c![*]\emph{object} to it. This
- has the effect of typesetting the \emph{object} at the current
- position, thus effectively on top of the target, and then use what
- was typeset as the target.
-
- A target may also have its ??w![position] changed??w[changing
- position]??w[adjusting position]??w[moving target] by one of the
- following constructions:
-%
-\begin{itemize}
-
-\item
- ??c![+]\emph{vector} or ??c![-]\emph{vector} which changes the
- target to be a zero-sized one at the position obtained by adding or
- subtracting the \emph{vector} to its center, or
-
-\item
- ??c![!]\emph{vector} which moves the center of the target by the
- \emph{vector};
-
-\end{itemize}
-%
- where a \emph{??w![vector]} should have the form
-%
-\begin{itemize}
-
-\item
- $|<|D_x|,|D_y|>|$ , where $D_x,D_y$ are \TeX\ dimensions, is the
- vector with those coordinates??w[vector coordinates],
-
-
-\item
- the following ``corner offsets'' of a target are vectors as shown:
-%
-\begin{displaymath}
-\begin{code}
-\DEF\corner#1{\POS"box"+0;"box"+#1 **@{-} ?>*@{>} +/1pc/ *\hbox{\tt#1}}
-%
-\xy 0.(-11,-6).(11,6)!C="box"*\frm{.},"box";
- "box"+L**@{.}, "box"+R**@{.}, "box"+D**@{.}, "box"+U**@{.}
-%
- \corner{L} \corner{R} \corner{D} \corner{U}
- \corner{DL}\corner{DR}\corner{UL}\corner{UR}
-\endxy
-\end{code}
-\begin{IMAGE}
-\docode
-\end{IMAGE}
-\end{displaymath}
-%
- (they must be specified in upper case)??w[vector to corner], and
-
-\item
- ??c![/]$d$ \emph{dimen}|/| is the \emph{vector} going
- \emph{dimen} in the particular ??w![direction]??w[vector in
- direction] $d$ which can be either the eight simple ones in
- section~??[basics.bends], empty to denote that the
- \emph{??w![current direction]} (the last direction of an arrow)
- should be used, or one of the following:
-%
-\begin{defs}
- |va(|$\alpha$|)|??c[va()] & ??w![absolute angle] \cr
- $d$|:a(|$\alpha$|)|??c[:a()] & ??w![relative angle] in ??w![degrees] \cr
- $d$|:(|$x$,$y$|)|??c[:()] & ??w![relative vector] \cr
- $d$??c![^] / $d$??c![_] & short for |:a(90)| / |:a(-90)|
-\end{defs}
-\noindent\unskip
-%
- where the $d$ in the last four may be empty to denote the ``current
- direction.''
-
-\item
- ??c![0] is the zero vector.
-
-\end{itemize}
-%
- Many, many more possibilities are described in the reference
- manual~\cite{RM95:Xy-picRM}.
-
-\begin{exercise}
- What is the difference between a target $t$ and the target $t$|+0|?
-\answertext{The size: $t$|+0| always has zero size.}
-\end{exercise}
-
-
-\subsection{Arrows passing under}
-??=[arrows.pass]
-%
- Arrows can pass under??w[arrow passing under] (or via) any other
- entry: Just insert ??c![']$t$, \ie, a quote (apostrophe) character
- followed by a target, for each entry that should be visited except
- the last, ``ordinary \& final'' entry:
-%
-\begin{code}
-\xymatrix{
- {\circ}
- \ar@{|-->} '[dr] ^a
- '[rr]+D*{\bullet} ^b
- [drrr] ^c
- & {\circ} & {\circ} & {\circ} \\
- {\circ} & {\circ} & {\circ} & {\circ} }
-\end{code}
-\displaycode
-\noindent
- typesets
-%
-\begin{displaymath}
-\docode
-\end{displaymath}
-%
- As you see, labels are set separately on each ??w![segment].
-
-\begin{exercise}??=[x.cube]
-%
- Typeset the ``lambda ??w![cube]''??w[crossing arrows]
-%
-\begin{displaymath}
-\begin{code}
-\xymatrix@!0{
- & \lambda\omega \ar@{-}[rr]\ar@{-}'[d][dd]
- & & \lambda C \ar@{-}[dd]
-\\
- \lambda2 \ar@{-}[ur]\ar@{-}[rr]\ar@{-}[dd]
- & & \lambda P2 \ar@{-}[ur]\ar@{-}[dd]
-\\
- & \lambda\underline\omega \ar@{-}'[r][rr]
- & & \lambda P\underline\omega
-\\
- \lambda{\to} \ar@{-}[rr]\ar@{-}[ur]
- & & \lambda P \ar@{-}[ur]
-}
-\end{code}
-\docode
-\end{displaymath}
-%
-\noindent\unskip
-%
- \emph{Hint}: ``going under'' an empty entry leaves a small gap at
- that location.??w[crossing arrows] The compactness is achieved using
- a trick described in section~??[entries.resizing].
-%
-\answercode
-\answertext{The author constructed }
-\answerdisplaycode
-\answertext{A special thing is added: |@!| forces rows and columns to be
- equally spaced as discussed in section~??[entries.resizing]; |@!0|
- furthermore makes the spacing ignore the entry sizes, giving a
- completely fixed grid. The gaps could also be made with the
- |!|\dots\ crossing notation of exercise~??[x.intercept] last in
- section~??[arrows.places] but the above is shorter.}
-\end{exercise}
-
-
-\subsection{More bending arrows}
-??=[arrows.bend]
-%
- Finally, arrows can ??w![bend] around entries: just insert
- ??c![`]$d\,t$, \ie, a backquote and a ??w![direction] $d$ followed by
- a target $t$, for each ``??w![turn]'' that starts out in the
- $d$-direction and ends in a ??w![quarter turn] towards the
- target~$t$. This is different from the curving??w[curve] described
- earlier in that all turns consist of a straight part ending in a turn
- which is a multiple of \slashedfrac18 ??w![circle segments], and each
- segment allows separate ??w![label]s.
-
- The possible directions are those of section~??[basics.bends] and
- ??[arrows.changing], and the possible targets include all those
- discussed above. Actually the direction is only required for the
- first in a series of turns since the final direction of one turn is
- the obvious choice for the following turn. Furthermore, turns can be
- changed from the default by adding either ??c![^]$d$ for
- anticlockwise turn to $d$ or ??c![_]$d$ for clockwise turn to $d$,
- where $d$ is the ``exit direction'' of the turn.
-
- Finally, the turns will have ??w![radius] 10pt by default, but this
- can be changed to any dimension $R$ from a particular turn and
- onwards by inserting ??c![/]$R$ immediately after the |``| of the
- turn??w[changing turn radius]. Here is an example involving all of
- these features:
-%
-\begin{code}
-\xymatrix{
- {\circ} \ar `r[d] ^a
- `[rr] ^b
- `/4pt[rr] ^c
- `[rrr] ^d
- `_dl[drrr]^e
- [drrr]^f
- & {\circ} & {\circ} & {\circ} \\
- {\circ} & {\circ} & {\circ} & {\circ} }
-\end{code}
-\displaycode
-\noindent
-%
- typesets
-%
-%
-\begin{displaymath}
-\docode
-\end{displaymath}
-%
- The example illustrates the following points:
-%
-\begin{itemize}
-
-\item
- If the segment can not be made as short as required then it will
- point ``past'' the target. This is useful for ``??w![going around]''
- entries.
-
-\item
- There is \emph{one |`| per turn} thus each target appears as many
- times as there are turns towards it, except the last target that
- appears one more time namely both with |`| for each turn towards it
- \emph{and} once as an ``ordinary'' target to set the final stretch.
-
-\item
- The sizes of the intermediate targets are ignored.
-
-\end{itemize}
-
-\begin{exercise}
-%
- Typeset
-\begin{IMAGE}$%
-%
-\begin{code}
-\xymatrix@1{
- A \ar@<-2pt> `d[r] `[r] [r]
- \ar@<+2pt> `d[r] `[r] [r] & B }
-\end{code}
-%
- \docode$
-\end{IMAGE}~.
-%
-\answercode
-\answertext{The author typed }
-\answerdisplaycode
-\end{exercise}
-
-
-\subsection{Defining new arrow types}
-??=[arrows.defining]
-%
- Last in this treatment of arrows we will explain how ??w![new arrows]
- can be defined??w[defining arrows]. The crucial fact is that the
- characters used for \emph{??w![tip]s} and \emph{??w![shaft]s} are
- restricted to the following:
-%
-\begin{defs}
- |><||ox+/()[]|\verb*+ + &\quad \emph{tip} characters??w[tip characters]\cr
- |-.~:=| &\quad \emph{shaft} characters??w[shaft characters]
-\end{defs}
-\noindent\unskip
-%
- When an arrow is interpreted by \Xy-pic it is first split into the
- three components and then each component is looked up in a library of
- so-called ``??w![directionals].'' It is possible to add new such
- directionals using the command
-%
-\begin{defs1}
- ??c![\newdir]|{| \emph{directional} |}{| \emph{composite} |}|
-\end{defs1}
-\noindent\unskip
-%
- where \emph{directional} should be a sequence either of tip
- characters or of shaft characters, and \emph{composite} should be a
- list of objects??w[combined objects] separated with ??c![*] just like
- the argument to ??c![\composite] described in
- section~??[arrows.objects]. If arrows of a particular
- \emph{??w![variant]} (always one of the letters |^_23|) needs an
- alternate definition then another declaration can be given with the
- variant inserted between |\newdir| and the first |{|.
-
- There is one ??w![object modifier] which is very useful in this
- context, in addition to those of section~??[arrows.objects]:
-%
-\begin{defs}
- ??c![!]\emph{vector} &\quad shift object \emph{vector}
-\end{defs}
-\noindent\unskip
-%
- (where the possibilities for \emph{vector} are described in
- section~??[arrows.changing]). Combined with the direction code this
- is very powerful, for example,
-%
-\begin{code}
-\newdir{|>}{%
- !/4.5pt/@{|}*:(1,-.2)@^{>}*:(1,+.2)@_{>}}
-\end{code}
-\displaycode
-\noindent\unskip
-%
- defines a new tip that makes
-%
-\begin{code}
-\xymatrix{ A \ar @{=|>} [r] & B }
-\end{code}
-\displaycode
-\noindent\unskip
-%
- typeset
-%
-\begin{code}
-\newdir{|>}{!/4.5pt/@{|}*:(1,-.2)@^{>}*:(1,+.2)@_{>}}
-\xymatrix{ A \ar @{=|>} [r] & B }
-\end{code}
-%
- $\docode$~. Notice how the ``relative direction'' is used here to
- rotate??w[rotation] some of the composed components.
-
-\begin{exercise}??=[arrows.def.ex]
- Often tips used as ``tails'' have their ink on the wrong side of the
- point where they are placed. Fortunately space (\verb*+ +) is also a
- tip character so we can define the directional \verb*+ >+ to generate
- a ``tail-spaced'' arrow. Do this such that
-%
-\begin{code}
-\xymatrix{ A \ar @{>->} @< 2pt> [r]
- \ar @{ >->} @<-2pt> [r] & B }
-\end{code}
-\displaycode
-\noindent
-%
- typesets
-%
-\begin{displaymath}
-\begin{code}
-\newdir{ >}{{}*!/-5pt/@{>}}
-\xymatrix{ A \ar @{>->} @< 2pt> [r]
- \ar @{ >->} @<-2pt> [r] & B }
-\end{code}
-\docode
-\begin{code}
-\newdir{ >}{{}*!/-5pt/@{>}}
-\end{code}
-\end{displaymath}
-%
-\answercode
-\answertext{The author used }
-\answerdisplaycode
-\end{exercise}
-
- Finally, when \Xy-pic diagrams are used in conjunction with Knuth's
- \emph{??w![computer modern fonts]} then the declaration
-%
-\begin{defs1}
- ??c![\SelectTips{cm}{}]
-\end{defs1}
-\noindent\unskip
-%
- will change the tips to some that look similar, \eg,
-%
-\begin{code}
-$\SelectTips{cm}{}
- \xymatrix@1{A\ar@{->>|}[r]&B}$
-\end{code}
-\displaycode\noindent
-%
- typesets
-\begin{IMAGE}
-\docode
-\end{IMAGE}. The second argument (here |{}|) can be used
- to specify a point size |{10}|, |{11}|, or |{12}|, if desired (the
- default is |{10}|\footnote{Except when \Xy-pic is loaded as a
- \LaTeXe\ package where the default size is used.}); |{cm}| can be
- replaced by |{eu}| and |{xy}| to get tips in ``Euler'' and the
- default technical style, respectively. The declaration respects
- \TeX\ grouping.
-
-\begin{exercise}
-\begin{code}
-\xymatrix@1{
- A \ar[r] |-{\SelectTips{cm}{}\object@{>>}}
- |>{\SelectTips{eu}{}\object@{>}}
- & B }
-\end{code}
-%
- Typeset $\docode$~. \emph{Hint}: With the construction
- ??c![\object]\emph{object} one can typeset an \Xy-pic \emph{object}
- (anything that could follow a |*| in section~??[arrows.objects]) in
- any context.
-%
-\answercode
-\answertext{The author typed }
-\answerdisplaycode
-\end{exercise}
-
-
-
-\section{More Entries}
-??=[entries]
-%
- This section explains what can go in an entry and how the general
- form of the entries??w[entry] is changed.
-
-
-\subsection{Manual entry formatting}
-??=[entries.manual]
-%
- All the entries we have seen thus far have been simple math objects.
- However, it is possible to change the ??w![format] of an individual
- ??w![entry]??w[entry format] by using the form:
-%
-\begin{defs1}
- ??c![*]\emph{object} \emph{arrows}
-\end{defs1}
-\noindent\unskip
-%
- This allows complete control over what object is placed in the entry,
- overriding any spacing and other conventions for the entry. This was
- how the frame was obtained in the figure in
- section~??[basics.entries].
-
- A simple use of this is to insert ??w![text in entries]??w[entries
- with text]??w[labels with text] using ??c![\txt] objects just like
- labels as described above in section~??[arrows.objects]:
-%
-\begin{code}
-\xymatrix{
- *\txt{A very long and stupid\\program}
- \ar[rr]^-{\txt{weird\\arrow}}
- &&*\txt<2pc>{Com\-pli\-cated\\Code}}
-\end{code}
-\displaycode
-%
-\noindent will typeset
-%
-\begin{displaymath}
-\docode
-\end{displaymath}
-
-\begin{exercise}
-%
-\begin{code}
-\xymatrix{
- *=0{\bullet}
- \ar@/^/[dr]!U|1
- \ar@/^/[drr]!U|2
- \ar@/^/[drrr]!U|3
-\\
- &*+[F]\txt{x}
- &*+[F]\txt{x\\x}
- &*+[F]\txt{x\\x\\x}
-}
-\end{code}
-%
- Typeset
-%
-\begin{displaymath}
-\docode
-\end{displaymath}
-%
-\answercode
-\answertext{The author typed}
-\answerdisplaycode
-\end{exercise}
-
-
-\subsection{Extra entries outside the matrix}
-??=[entries.extra]
-%
- It is possible to put ??w![extra entries]??w[entries outside matrix]
- in your diagrams that are not part of any ``entry'' of the matrix
- created by |&| and |\\|. This is done with the
- \emph{??w![excursion]} command
-%
-\begin{defs1}
- |\save|~$t$~|\restore|
-\end{defs1}
-\noindent\unskip
-%
- where $t$ should be a target in one of the formats described in
- sections~??[arrows.targets]-??[arrows.changing]. $t$ can do
- any kind of typesetting desired, for example,
-%
-\begin{code}
-\xymatrix{
- A \ar@{-}[dr]
- &{}\save[]+<3cm,0cm>*\txt<8pc>{%
- This is a very big commentary
- but it does not otherwise affect
- the diagram.}
- \ar[l] \ar[d] \restore \\
- & B \ar@{-}[r] & C \ar@{-}[r] & D
-}
-\end{code}
-\displaycode
-%
-\noindent will typeset
-%
-\begin{displaymath}
-\docode
-\end{displaymath}
-%
- It illustrates how a ``down'' arrow does not necessarily have to point
- particularly straight down -- in this case because it is based in the
- displaced pseudo entry.
-
-
-\subsection{Spacing and rotation}
-??=[entries.resizing]
-%
- The |*|\emph{object} form described above can be used to space
- individual objects differently, however, it is also possible to
- change the overall ??w![spacing] of a matrix by inserting the
- following codes \emph{between} |\xymatrix| and the following |{|:
-%
-\begin{defs}
- ??c![@=]\emph{dimen} & set spacing \cr
- ??c![@R=]\emph{dimen} & set row spacing \cr
- ??c![@C=]\emph{dimen} & set column spacing \cr
- ??c![@M=]\emph{dimen} & set entry default margin \cr
- ??c![@W=]\emph{dimen} & set entry default width \cr
- ??c![@H=]\emph{dimen} & set entry default height \cr
- ??c![@L=]\emph{dimen} & set label margin
-\end{defs}
-\noindent\unskip
-%
- ??c![=] can be replaced by any of ??c![+], ??c![+=], ??c![-],
- and ??c![-=] of section~??[arrows.objects] with the same meaning,
- \ie, replace ``set'' with ``increase,'' ``increase to at most,''
- ``decrease,'' and ``decrease to at least,'' respectively. For example,
-%
-\begin{code}
-$\xymatrix@1@=0pt@M=0pt{A&B\\C&D}$
-\end{code}
-%
- \thecode\ in the text typesets \begin{IMAGE}\docode\end{IMAGE}.
-
- In case \emph{??w![uniform spacing]} is desired, several alternative
- forms exist.
-%
-\begin{defs}
- ??c![@!] & force all spaces equal \cr
- |@!0| & --- and ignore entry sizes \cr
- |@!R| & force equal row spacing \cr
- |@!C| & force equal column spacing
-\end{defs}
-\noindent\unskip
-%
- Finally a special notation allows \emph{??w![rotation]} of an
- entire matrix:
-%
-\begin{defs}
- ??c![@]\,$d$ & rotate towards $d$
-\end{defs}
-\noindent\unskip
-%
- Only the matrix grid will rotate, however, not the actual contents.
-
-\begin{exercise}
-\begin{code}
-\xymatrix@dr@C=1pc{
- a \ar[r]\ar@{->>}[d] & a' \ar@{.>>}[d] \\
- b \ar@{.>>}[r] & b' }
-\end{code}
-%
- Typeset the ``strip lemma'' $$\docode$$
-%
-\answercode
-\answertext{The author entered the display}
-\answerdisplaycode
-\end{exercise}
-
-
-\subsection{Entry style}
-??=[entries.style]
-%
- As mentioned above, the entries of a diagram are set in math mode in
- text style. You may change this by redefinining the macro
- ??c![\objectstyle]??w[entry style], and the label style by redefining
- ??c![\labelstyle]??w[label style]. We can combine this with the
- above to get ``small diagrams,'' \eg, typing
-%
-\begin{code}
-$\left(
- \def\objectstyle{\scriptstyle}
- \def\labelstyle{\scriptstyle}
- \vcenter{\xymatrix @-1.2pc @ur {
- A \ar[r]^{a} & B \ar[d]^{b} \\
- A'\ar[u]^{a'} & B'\ar[l]^{b'} }}
-\right)$
-\end{code}
-\displaycode
-%
-\begin{code}
-$\left(
- \DEF\objectstyle{\scriptstyle}
- \DEF\labelstyle{\scriptstyle}
- \vcenter{\xymatrix @-1.2pc @ur {
- A \ar[r]^{a} & B \ar[d]^{b} \\
- A'\ar[u]^{a'} & B'\ar[l]^{b'} }}
-\right)$
-\end{code}
-\noindent in a paragraph will typeset ``\begin{IMAGE}\docode\end{IMAGE}.''
-
- You can even abandon the use of math mode entirely: the command
- |\def| |\objectstyle| |{\hbox}|\ will change the format of entries to
- plain text.??w[plain text entries]
-
- Similarly, all entries are rectangular by default, but it is possible
- to change this to \emph{??w![round]??w[elliptical]??w[circular]} by
- declaring the default \emph{modifiers}??w[object
- modifier]??w[default modifier] to be applied to all entries that do
- not override them (\cf\ section~??[arrows.objects]):
-%
-\begin{code}
-\entrymodifiers={++[o][F-]}
-\SelectTips{cm}{}
-\xymatrix @-1pc {
- *\txt{start} \ar[r]
- & 0 \ar@(r,u)[]^b \ar[r]_a
- & 1 \ar[r]^b \ar@(r,d)[]_a
- & 2 \ar[r]^b
- \ar `dr_l[l] `_ur[l] _a [l]
- &*++[o][F=]{3}
- \ar `ur^l[lll]`^dr[lll]^b [lll]
- \ar `dr_l[ll] `_ur[ll] [ll] }
-\end{code}
-\displaycode
-%
-\noindent will typeset
-%
-\begin{displaymath}
-\docode
-\end{displaymath}
-%
- Notice how we obtain the double ring using the |*|\emph{object}
- form which then has to include all the desired modifiers (and how the
- use of computer modern tips is nice for diagrams as these).
-
-
-\subsection{Naming for later use as targets}
-??=[entries.naming]
-%
- If you build an entry with a long and complicated excursion then you
- might wish to be able to refer to it later. \Xy-pic provides a
- mechanism for this: there is a special ??w![target] form which we
- haven't discussed yet:
-%
-\begin{defs1}
- $t$ ??c![=]|"|\emph{name}|"|
-\end{defs1}
-\noindent\unskip
-%
- This will introduce the new target |"|\emph{name}|"| which will
- refer to the target just before the |=|. This is particularly useful
- inside excursions, of course, and can also be used after
- labels??w[labels as targets].
-
-\begin{exercise}
-%
-\begin{code}
-\xymatrix{
- A \ar[r] ^a="a" & B \ar[r] ^b="b" & C
- \ar @/^/ "a";"b" }
-\end{code}
-%
- Typeset $\docode$.
-%
-\answercode
-\answertext{The author typed }
-\answerdisplaycode
-\answertext{\noindent Notice the use
- of both explicit base and target in the arrow between the labels.}
-\end{exercise}
-
-
-\subsection{Grouping objects}
-??=[entries.grouping]
-%
- Sometimes you wish to frame or otherwise treat a rectangle of objects
- as a single object??w[grouping]. This is possible with the last two
- target position forms that we will mention:
-%
-\begin{defs}
- $t$|.|$s$ & merge $t$ with simple $s$ \cr
- |{|$t$|}| & make $t$ simple
-\end{defs}
-\noindent\unskip
-%
- The first will enlarge $t$ to also ``??w![cover]'' the ``simple'' $s$
- (simple means that it cannot have changes etc.\ attached unless
- encapsulated in |{}|s). Here is an example where we ??w![merge] and
- frame:
-%
-\begin{code}
-\xymatrix @R=1pc {
- 1,1 & 1,2 & 1,3 & 1,4 & 1,5 \\
- 2,1 & 2,2 & 2,3 & 2,4 & 2,5
- \save "1,2"."2,4"*[F.]\frm{}
- \ar"1,1" \ar"2,1" \ar"1,5" \ar"2,5"
- \restore }
-\end{code}
-\displaycode
-\noindent will typeset
-\begin{displaymath}
-\docode
-\end{displaymath}
-%
- As you can see, the center of the merged object is the same as the
- one of the target \emph{before} the ``|.|.''
-
- Finally a more advanced example where we create two merged objects
- with center in their ``real'' center, ??w![name] them and then connect
- to them. It also shows how macros can be used inside diagrams: they
- should always expand to ``commands'' like |\ar|\dots, etc.:
-%
-\begin{displaymath}
-\begin{code}
-\def\g#1{\save
- [].[dr]!C="g#1"*[F]\frm{}\restore}%
-\xymatrix{
- \g1 A\ar[r]&B\ar[d]&\g2 A'\ar[r]&B'\ar[d]\\
- C\ar[u]&D\ar[l]& C'\ar[u]&D'\ar[l]
- \ar @{.>} "g1" ;"1,4"
- \ar @{-->} "2,1";"g2" }
-\end{code}
-\docode
-\end{displaymath}
-%
- can be typeset by
-%
-\displaycode\noindent
-%
- Then we can make arrows from/to the two frames by using the two new
- targets |"g1"| and |"g2"| as shown.
-
-\begin{exercise}
-%
- Change the lambda cube of exercise~??[x.cube] such it is enclosed in
- a transparent (\ie, dotted) cube.
-%
-\answertext{The author added the \Xy-code}
-\begin{code}
-\save [].[dd].[ddrr].[rr]*[F.]\frm{}="back"
- \restore
-\end{code}
-\answercode
-\answerdisplaycode
-\answertext{in the entry with $\lambda\omega$, and}
-\begin{code}
- \save [].[dd].[ddrr].[rr]*[F.]\frm{}
- \ar@{.} +UL;"back"+UL \ar@{.} +UR;"back"+UR
- \ar@{.} +DL;"back"+DL \ar@{.} +DR;"back"+DR
- \restore
-\end{code}
-\answercode
-\answerdisplaycode
-\answertext{in the entry with $\lambda2$ to produce}
-\begin{code}
-\xymatrix @!0 {
- & \lambda\omega \ar@{-}[rr]\ar@{-}'[d][dd]
- \save [].[dd].[ddrr].[rr]*[F.]\frm{}="back"\restore
- & & \lambda C \ar@{-}[dd]
-\\
- \lambda2 \ar@{-}[ur]\ar@{-}[rr]\ar@{-}[dd]
- \save [].[ddrr]*[F.]\frm{}
- \ar@{.} +UL;"back"+UL \ar@{.} +UR;"back"+UR
- \ar@{.} +DL;"back"+DL \ar@{.} +DR;"back"+DR \restore
- & & \lambda P2 \ar@{-}[ur]\ar@{-}[dd]
-\\
- & \lambda\underline\omega \ar@{-}'[r][rr]
- & & \lambda P\underline\omega
-\\
- \lambda{\to} \ar@{-}[rr]\ar@{-}[ur]
- & & \lambda P \ar@{-}[ur] }
-\end{code}
-\answercode
-\answertext{$$\begin{IMAGE}\docode\end{IMAGE}$$}
-\end{exercise}
-
-
-
-\section{Availability and Further Information}
-??=[avail]
-%
- Below we describe how to and the conditions for obtaining \Xy-pic
- version~\xyversion, the compatibility with previous versions, and we
- conclude with a few appetisers to lure the reader into reading more
- about \Xy-pic.
-
-
-\subsection{Getting \Xy-pic}
-??=[avail.ftp]
-%
- The easiest way to retrieve??w[retrieving {\Xy}-pic] the latest version
- of \Xy-pic is through the \Xy-pic home page~\cite{Xy-picHP} on the
- ??w![World Wide Web]; it is also available by Internet ??w![ftp] from
- \url{ftp://ftp.diku.dk/diku/users/kris/TeX/} as well as
- \url{ftp://ftp.mpce.mq.edu.au/pub/maths/TeX/} in files starting with
- |xy|. Finally, \Xy-pic has been contributed to the CTAN archives
- where it is located in the directory \texttt{macros\slash generic\slash
- diagrams\slash xypic}.
-
-\paragraph*{License:}
-%
- \Xy-pic is free software in the sense that it is available under the
- following ??w![license]??w[copyright] conditions:
-%
-\begin{center}\ordinarybars
-\begin{tabular}{|l|}
- \hline
- ~\Xy-pic: Graphs and Diagrams with \TeX~\\
- \quad\copyright~1991--1997\quad Kristoffer H. Rose\\
- \quad\copyright~1994--1997\quad Ross Moore\\
- \hline
-\end{tabular}
-\end{center}
-%
-\begin{quotation}
-%
- The \Xy-pic package is ??w![free software]; you can redistribute it
- and/or modify it under the terms of the ??w![GNU General Public
- License] as published by the Free Software Foundation; either version
- 2 of the License, or (at your option) any later version.
-
- The \Xy-pic package is distributed in the hope that it will be
- useful, but \emph{without any ??w![warranty]}; without even the
- implied warranty of \emph{merchantability} or \emph{fitness for a
- particular purpose}. See the GNU General Public License for more
- details.
-
- You should have received a copy of the GNU General Public License
- along with this package; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-%
-\end{quotation}
-%
- In practice this means that you are free to use \Xy-pic for your
- documents but if you distribute any part of \Xy-pic (including
- modified versions) to someone then you are obliged to ensure that the
- full source text of \Xy-pic is available to them (the full text of
- the license in the file ??c![COPYING] explains this in somewhat more
- detail~\smiley~).
-
-
-\subsection{Backwards compatibility}
-??=[compat]
-%
- The first widely distributed version of \Xy-pic was ??w![version 2]
- (from release 1.40 to release 2.6). A special
- \emph{??w![compatibility]} mode is used automatically if the
- ??w![old style of loading] is used (using files named ??c![xypic.tex]
- and ??c![xypic.sty]). You can also mix old and new diagrams in a
- document if you load as described in section~??[basics.loading] and
- add the declaration ??c![\xyoption]|{v2}|. This provides almost full
- backwards compatibility: the following are the only known exceptions:
-%
-\begin{itemize}
-
-\item
- Automatic ``shortening'' of arrow tails by ??c![|<<] break was a bug
- and has been ``fixed'' so it does not work any more. \emph{Fix}: Put a
- |||<\hole| break before it as described in section~??[arrows.styles].
-
-\item
- The release~2.6 ??c![*] position operator is not available.
- \emph{Fix}: Use the |:| and |::| operators (described in detail in
- the reference manual~\cite{RM95:Xy-picRM}).
-
-\item
- Using $t_1|;|t_2|:(|x|,|y|)|$ as the target of an arrow command does
- not work. \emph{Fix}: Enclose it in braces, \ie, write
- $|{|t_1|;|t_2|:(|x|,|y|)}|$.
-
-\item
- The old ??c![\pit], ??c![\apit], and ??c![\bpit] commands are not
- defined. \emph{Fix}: Use |*@{>}| (or |\tip|) with variants and
- rotation.
-
-\item
- The even older notation where an argument in braces to |\rto| and the
- others was automatically taken to be a ``tail'' is not supported.
- \emph{Fix}: Use the supported |||<|\dots\ notation.
-
-\end{itemize}
-%
- Finally note that sometimes the spacing with version~\xyversion\ is
- ``improved'' relative to earlier versions~\smiley~. Please report all
- other things that do not work the same in version~2.6 and~\xyversion\
- to the author.
-
-
-\subsection{Further reading}
-??=[avail.further]
-%
- The reference manual~\cite{RM95:Xy-picRM} describes several more
- input modes that are useful when the diagram is not organised as a
- matrix. We'll give some examples of such diagrams but refer to the
- reference manual for the details.
-%
-\begin{itemize}
-
-\item The ``??w![graph]'' feature allows input of data structured as
- \emph{??w![directed graphs]} to make it easy to produce such
- pictures as
-%
-\begin{displaymath}
-%
-% From xygraph.doc.
-%
-\begin{code}
-\SelectTips{cm}{}
-\objectmargin={1pt}
-\xygraph{ !{0;(.77,-.77):0}
- !~:{@{-}|@{>}}
- w (:[r(.6)]{x_1}
- ,:[d]z:[r]y:[u(.6)]{x_2}:@/_/"x_1" (:@/_/"x_2") :"z"
- :@( {"w";"z"}, {"y";"z"})"z" :"x_2" ) }
-\end{code}
-\begin{IMAGE}
-\docode
-\end{IMAGE}
-\end{displaymath}
-
-\item The ``??w![knot]'' feature allows drawing of mathematical \emph{knots
- and ??w![links]} like
-%
-% From xyknot.doc:
-%
-\begin{displaymath}
-%
-\UseComputerModernTips
-\vtop{\vbox{\xygraph{!{0;/r1.5pc/:} !{\vover}[u]
- !{\hcap[-2]<<} [d] !{\vover-} [ruu] !{\hcap[2]><}}\smallskip}
-\hbox{\qquad\ \small simple link}}\hfil
-%
-% Figure-eight
-%
-\vtop{\vbox{\xygraph{!{0;/r1.5pc/:}
- [u] !{\vloop<(-.005)\khole||\vcrossneg \vunder- }
- [] !{\ar @{-}@'{p-(1,0)@+}+(-1,1)}
- [ul] !{\vcap[3]>\khole}
- [rrr] !{\ar @{-}@'{p-(0,1)@+}-(1,1)}
-}\smallskip}\hbox{\small figure-8 knot}}\hfil\quad
-%
-% cinque-foil
-%
-\vtop{\vbox{\xygraph{!{0;/r1.25pc/:}
- !P5"a"{~>{}} !P10"b"{~:{(1.7487,0):}~>{}}
- !P20"c"{~={-9}~:{(2.2,0):}~>{}}
- !{\xunderv~{"b3"}{"b2"}{"a2"}{"a1"}}
- !{\xunderv~{"b5"}{"b4"}{"a3"}{"a2"}}
- !{\xunderv~{"b7"}{"b6"}{"a4"}{"a3"}}
- !{\xunderv~{"b9"}{"b8"}{"a5"}{"a4"}}
- !{\xunderv~{"b1"}{"b10"}{"a1"}{"a5"}}
- !{\vloop~{"c3"}{"c2"}{"b2"}{"b1"}<<}
- !{\vloop~{"c7"}{"c6"}{"b4"}{"b3"}<<}
- !{\vloop~{"c11"}{"c10"}{"b6"}{"b5"}<<}
- !{\vloop~{"c15"}{"c14"}{"b8"}{"b7"}<<}
- !{\vloop~{"c19"}{"c18"}{"b10"}{"b9"}<<}
-}\smallskip}\hbox{\quad\ \small cinquefoil}}
-%
-\vbox{\hbox to 2em{\hss}}
-\end{displaymath}
-
-\item The ``??w![2cell]'' feature provides special support for
- \emph{categorical ??w![twocells]} like
-%
-\begin{displaymath}
-%
-% From xy2cell.doc.
-%
-\begin{code}
-\begin{xy}
- *+{A}="A",+<1cm,1.5cm>*+{B}="B",
- +<2cm,0pt>*+{C}="C",
- +<1cm,-1.5cm>*+{D}="D",
-"A";"B",{\uppertwocell^\alpha{}},
-"B";"C",{\twocell^\zeta_\xi{\gamma}},
-"C"; \afterPOS{\drop\compositemap{}}"D"
-\POS "A";
- \afterPOS{\drop\lowertwocell{}}"D"
-\end{xy}
-\end{code}
-\begin{IMAGE}
-\docode
-\end{IMAGE}
-\end{displaymath}
-
-\item The ``??w![poly]'' feature allows \emph{??w![polygon-like]}
- structures:
-%
-\begin{displaymath}
-%
-% From xypoly.doc:
-%
-\begin{code}
-\begin{xy}
-/r2pc/: ="A", +(.2,1.5)="B","A",
-{\xypolygon6{~:{(1,-.1):(0,.33)::}
- ~<>{;"B"**@{-}}}}\endxy
-\qquad \xy /r2pc/:
-{\xypolygon4"A"{~:{(0,.7)::}}},+(.7,1.1),
-{\xypolygon4"B"{~:{(.8,0):(0,.75)::}}},
-"A1";"B1"**@{.},"A2";"B2"**@{.},
-"A3";"B3"**@{.},"A4";"B4"**@{.}
-\endxy\qquad \xy /r2pc/:
-{\xypolygon3"A"{~:{(0,.7)::}}},+(.7,1.1),
-{\xypolygon3"B"{~:{(-.85,0):(-.15,.8)::}}}
-,"A1"\PATH~={**@{.}}'"B2"'"A3"'"B1"
-'"A2"'"B3"'"A1"
-\end{xy}
-\end{code}
-\begin{IMAGE}
-\docode
-\end{IMAGE}
-\end{displaymath}
-
-\item The ``??w![web]'' feature allows composition in lattices such as
-%
-\begin{displaymath}
-%
-% From xyweb.doc:
-%
-\begin{code}
-\def\latticebody{\dimen0=\latticeX pt
- \ifdim\dimen0>0pt \divide\dimen0 by 64
- \dimen0=\latticeY\dimen0 \relax
- \ifdim 0pt>\dimen0 \dimen0=-\dimen0 \fi
- \ifdim 2.5pt>\dimen0 \drop{\bullet}%
- \else\drop{.}\fi \else\drop{.}\fi}
-\begin{xy}
-*\xybox{0;<1.5pc,1.28mm>:<.41pc,1.12pc>::
-,0,{\croplattice{-3}5{-5}5
- {-1.3}{4.5}{-3.4}{4.4}}}="L"
-,{"L"+L \ar "L"+!R*+!L{\sigma^{(1)}}}
-,{"L"+D \ar "L"+!U*+!D{\sigma^{(2)}}}
-\end{xy}
-\end{code}
-\begin{IMAGE}
-\docode
-\end{IMAGE}
-\end{displaymath}
-
-\item The ``??w![arc]'' feature is suitable for effects like
-%
-\begin{displaymath}
-%
-% From xyarc.doc:
-%
-\begin{code}
-\begin{xy}
-0;/r5pc/:*@{*}="p",*+!DR{p};
-p+(.5,-.5)*@{*}="c",*+!UL{c}**@{-}
-,"c",{\ellipse<15pt>_,=:a(45){=}}
- ,{\ellipse<>__,=:a(30){-}}
-,{\ellipse(1,.4){.}}
- ,{\ellipse(1,.4)_,=:a(120){--}}
-,{\ellipse(,.75){.}}
- ,{\ellipse(,.75)_,^,^{-}}
-\end{xy}
-\end{code}
-\begin{IMAGE}
-\docode
-\end{IMAGE}
-\end{displaymath}
-
-\end{itemize}
-%
- In each case the figure is produced with relatively few lines using
- techniques documented in the respective sections of the reference
- manual together with the details of the \Xy-pic kernel and
- extensions, ``arrow,'' and ``matrix'' features as used in this guide;
- further extensions provide support for use of colour, \PS\ effects,
- and much more.
-
- Finally, the following documents might prove useful: \emph{How to
- Typeset Pretty Diagram Arrows with {\TeX}}~\cite{R92:HowTPDAT}
- presents some of the design decisions behind \Xy-pic,
- \emph{{\Xy}-pic and Notation for Categorical
- Diagrams}~\cite{R94:Xy-picNCD} explains how the modularity of \Xy-pic
- can be used to obtain complex effects with commutative diagrams, and
- \emph{Typesetting Neural Nets using
- {\Xy}-pic}~\cite{M94:TypesettingNNX} explains how \emph{neural
- networks} can be typeset using the package. Finally, a collection of
- complex examples is maintained on the \Xy-pic home page and the ftp
- servers discussed above.
-
-
-\subsection{Credits}
-??=[avail.credits]
-%
- \Xy-pic version 2 was a small package created by the author. The
- present version \xyversion\ is the result of more than three years of
- continued collaboration with Ross Moore,\footnote{Mathematics
- Department, Macquarie University, Sydney, Australia 2109;
- e-mail: ross@mpce.mq.edu.au.} and would never have been developed
- without his support and \TeX-nical expertise.\footnote{Partial
- funding for this collaboration has been provided by a Macquarie
- University Research Grant (MURG), by the Australian Research Council
- (ARC), and through a research agreement with the Digital Equipment
- Corporation (DEC).} This includes many of the modes mentioned above
- which were created for use within specialised branches of
- mathematics, however, the notations are designed to fit quite
- naturally within the framework of \Xy-pic and are useful more
- generally. Finally, we are grateful to Y\&Y Inc.\ for making very
- nicely done \PS\ versions of the \Xy-pic fonts available.
-
-
-\appendix\section{Answers to all exercises}
-\Answers
-
-\BIBLIOGRAPHY
-\INDEX
-
-\end{document}
-
-
-% $Log: xyguide.man,v $
-% Revision 3.6 1998/03/06 01:28:05 krisrose
-% Releasing (with Y&Y fonts).
-%
-% Revision 3.5 1997/05/29 21:02:36 krisrose
-% Fixed "missing breaks"...and tidied up documentation!
-%
-% Revision 3.4 1997/05/18 01:14:25 krisrose
-% Essential bugfixes.
-%
-% Revision 3.3 1996/12/19 13:17:15 krisrose
-% Maintenance release.
-%
-% Revision 3.2 1995/09/19 18:22:27 kris
-% Bug fix release.
-%
-% Revision 3.1 1995/09/05 20:31:32 kris
-% Releasing!
-%
-% Revision 3.0 1995/07/07 20:14:21 kris
-% Major release w/new User's Guide!
-%
-% Revision 2.13 1995/07/04 15:11:17 kris
-% Ready to release v3?
-%
-% Revision 2.12 1994/10/25 11:34:25 kris
-% Interim release just before v3 [works with AMS-LaTeX 1.2]...
-%
-% Revision 2.10 1994/06/15 12:55:07 kris
-% Second 3beta release: bug fixes.
-%
-% Revision 2.9 1994/06/09 14:59:19 kris
-% Release 3beta.
-%
-% Revision 2.8 1994/04/08 04:30:00 kris
-% Second (bug fix) 3alpha release.
-%
-% Revision 2.7 1994/03/08 02:06:01 kris
-% Release 3alpha.
-%
-% Revision 2.6.9.1 1994/03/07 04:22:46 kris
-% Last internal 3alpha and pre-2.7 release.
-%
-% Reformatted for LaTeX with companion xydoc.sty.
-% Renamed from xypicman.doc to xyguide.man.
-%
-% Revision 2.6.1.1 1992/07/01 07:08:24 kris
-% Send to EuroTeX '92...
-%
-% Revision 2.6 1992/06/24 01:23:34 kris
-% Reorganised...
-% Documented new features: hooks, triple lines, positions, and LaTeXdiagrams.
-%
-% Revision 2.5 1992/02/24 03:30:54 kris
-% Documented changes in xypic.doc[2.5].
-%
-% Revision 2.4 1992/01/22 02:15:10 kris
-% Cosmetic changes; removed \pit and introduced \rotate.
-%
-% Revision 2.3 1992/01/13 01:51:02 kris
-% Changed to use `pure' XPPT [1.20].
-% Several cosmetic changes, e.g., corrected definition of \ddtor in footnote.
-%
-% Revision 2.2 1992/01/09 04:05:40 kris
-% Patched to fix problem with \text and support AMS-LaTeX.
-%
-% Revision 2.1 1992/01/02 14:54:07 kris
-% Release version.
-%
-% Revision 1.7 1991/12/17 04:53:23 kris
-% Version distributed as `final draft' on Usenet.
-% Added bent arrows properly; support for double tips; proper \Text;
-% fixed name clashes...
-% This version is for bug fixes only!!
-%
-% Revision 1.6 1991/12/06 08:53:06 kris
-% Draft ready for wider distribution...
-% Fits xypic.doc[1.39]; still needs better examples.
-%
-% Revision 1.5 1991/12/03 07:53:28 kris
-% Extended with the xypic.doc[1.37] possibility for exotic arrow
-% tips; also added description of \merge.
-%
-% Revision 1.4 1991/12/02 06:08:42 kris
-% Fixed various things; fits xypic.doc[1.36].
-%
-% Revision 1.3 1991/12/01 07:40:07 kris
-% Corresponds to xypic.doc[1.35].
-%
-% Revision 1.2 1991/11/28 04:42:49 kris
-% Corresponds to xypic.doc[1.34].
-% Cleaned up a lot; now only bending arrows are missing...and good examples.
-%
-% Revision 1.1 1991/11/27 06:48:17 kris
-% Initial: \beta-test on DIKU.
-%
-% Based on version in DIKU student report 91-7-10.
-
-
-% Tell Emacs that this is a LaTeX document and how it is formatted:
-% Local Variables:
-% mode:latex
-% fill-prefix:"\t"
-% fill-column:77
-% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]"
-% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]"
-% End: