diff options
Diffstat (limited to 'Master/texmf-dist/source/generic/xypic/xyguide.man')
-rw-r--r-- | Master/texmf-dist/source/generic/xypic/xyguide.man | 2285 |
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: |