\documentclass[12pt]{jarticle}
%%%
\def\pdf{TF}		%  TT (pdf for dvipdfmx) <-> TF (dvi for dviout)
%%%
\usepackage{myhyper,amsmath,amssymb,amsfonts,amscd,alltt}
\if\pdf
\usepackage[nokeyin]{keyin}
\else
\usepackage{keyin}
\fi
\usepackage[dviout]{graphicx,color}
\AtBeginDvi{\special{dviout -hyper=144 -hyperoff=0 v0}}
% -hyper=144 : Blue letters without underline (hot spot)
% -hyperoff=0: HyperTeX is valid
% v0         : Minimal bars
% v0vs       : Minimal bars + Status bar
% !3         : Copy to Editor without CTRL
\if\pdf
\AtBeginDvi{\special{papersize=5.5in,8in}}
\hoffset=-1.03cm
\voffset=-3.18cm
\paperwidth=5.6in
\paperheight=8in
\else
\AtBeginDvi{\special{papersize=4.6in,7.07in}}
\hoffset=-2.3cm
\voffset=-4.45cm
\paperwidth=4.6in
\paperheight=7in
\fi
\textwidth=4.4in
\textheight=7.0in
\renewcommand\baselinestretch{0.92}
%\paraindent=0cm
\setlength{\oddsidemargin}{0cm}
\setlength{\parindent}{0cm}
\def\BK{\texttt{\symbol{'134}}}
\def\D#1{\keyin{#1}{#1}}
\def\E#1{\keyin{\string#1}{#1}}
\def\Q#1{\keyin{\string#1}{$#1$}}
\def\R#1{\keyin{\noexpand#1}{$#1$}}
\def\F#1{\special{html:<a href="dviout:`in .5c#1">}\BK#1\special{html:</a>}}
\def\G#1{\special{html:<a href="dviout:`in .5c#1=">}\BK#1\special{html:</a>}}
\def\Goto#1#2{\goto{#1}{\colorbox{green}{\tiny\sf #2}}}
% \def\gotop#1{\makebox[0mm]{\hspace{#1}\Goto{top}{Top}}}
\def\red#1{{\color{red}#1}}
\def\blue#1{{\color{blue}#1}}
\def\green#1{{\color{green}#1}}
\def\RED#1{{\it\color{red}#1}}
\def\MGNT#1{{\it\color{magenta}#1}}
\def\GREEN#1{{\it\color{green}#1}}
\def\ops#1{\{\MGNT{#1}\}}
\def\Ops#1{[\MGNT{#1}]}
\def\opt#1{\{\RED{#1}\}}
\def\Opt#1{[\RED{#1}]}
\def\ST{\hspace{-.1em}\raisebox{-0.25em}*}
%%
\if\pdf
\def\NEXT{\phantom{a}}
\def\BACK{\phantom{a}}
\else
\def\NEXT%
{\special{html:<a href="dviout: Je">}\colorbox{cyan}{\tiny$\Rightarrow$}\special{html:</a>}}
\def\BACK%
{\special{html:<a href="dviout: Jv">}\colorbox{cyan}{\tiny$\Leftarrow$}\special{html:</a>}}
\fi
\def\GOTO#1{

\vspace*{-2.7ex}
\hfill{\Goto{#1}{#1}}

}
%%
\pagestyle{empty}
%%%
\newlength{\minitwocolumn}
\newenvironment{z2col}[1][0pt]%
{\def\kaidan{\end{minipage}%
             \hspace{\columnsep}%
             \addtolength{\minitwocolumn}{-#1}%
             \begin{minipage}[t]{\minitwocolumn}}%
 \setlength{\minitwocolumn}{0.48\textwidth}%
 \addtolength{\minitwocolumn}{-0.5\columnsep}%
 \addtolength{\minitwocolumn}{#1}%
 \begin{minipage}[t]{\minitwocolumn}}%
{\end{minipage}}
%%%
\if\pdf
\usepackage[all,ps,dvips]{xy}
\else
\input xy
\xyoption{all}
\fi
\xyoption{poly}
\xyoption{arc}
\xyoption{2cell}
\xyoption{knot}
\xyoption{web}
\UseAllTwocells
%%%
\newenvironment{Alltt}{%
\renewcommand{\\}{\char`\\}
\begin{alltt}%
}{%
\end{alltt}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\if\pdf
%\def\Goto#1#2{}
%\def\goto#1#2{}
%\def\ToDef#1{}
%\def\ToEx#1{}
%\def\href#1#2{#2}
%\else
\def\ToDef#1{\goto{#1}{\colorbox{magenta}{\tiny\sf Def}}}
\def\ToEx#1{\goto{#1}{\colorbox{magenta}{\tiny\sf Ex}}}
%\fi
\def\La{\,$\leftarrow$\,}
\def\pos{\MGNT{pos}}
\def\Pos{\goto{pos}\pos}
\def\cod{\MGNT{cod}}
\def\Cod{\goto{cod}\cod}
\def\obj{\MGNT{obj}}
\def\Obj{\goto{obj}\obj}
\def\vector{\MGNT{vector}}
\def\Vector{\goto{vector}\vector}
\def\place{\MGNT{place}\/}
\def\Place{\goto{place}\place}
\def\stack{\MGNT{stack}\/}
\def\sav{\MGNT{save}}
\def\FAC{{\it\color{cyan}factor}}
\def\dr{\MGNT{direction}}
\def\dm{{\it\color{cyan}dimen}}
\def\Dm{\goto{dm}\dm}
\def\CIR{{\it\color{magenta}cir}}
\def\Cir{\goto{cir}\CIR}
\def\anchor{\MGNT{anchor}}
\def\Anchor{\goto{anchor}\anchor}
\def\DIR{{\MGNT{dir}}}
\def\Dir{\goto{dir}\DIR}
\def\TEXT{{\it\color{cyan}text}}
\def\ID{{\it\color{cyan}id}}
\def\diag{{\it\color{magenta}diag}}
\def\Diag{\goto{diag}\diag}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\small
\tolerance=10000
\name{Top}{}
\name{top}{}%
\if\pdf
\else
\href{file:input.dvi}{\colorbox{green}{\tiny\sf Return}}
\hfill
\fi
\Goto{S17}{Arrows}
\hfill
\Goto{S32}{Frame}
\hfill
\Goto{S41}{Path}
\hfill
\Goto{S11}{Xymatrix}
\hfill
\Goto{S42}{Xygraph}
\hfill
\Goto{S44}{Polygon}
\hfill
\Goto{S45}{Ellipse}
\hfill
\Goto{S47}{Lattice}
\hfill
\Goto{syntax}{Syntax}
\hfill\NEXT

\if\pdf
\rightline{\href{http://akagi.ms.u-tokyo.ac.jp/inputxy.pdf}{\colorbox{cyan}{\tiny\sf Tutorial (in Japanese)}}}
\else
\rightline{\href{file:inputxy.dvi}{\colorbox{cyan}{\tiny\sf Tutorial (in Japanese)}}}
\fi

\bigskip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\centerline{\Large\bf \Xy-pic}

\def\SP{\phantom{8}\ }
{\large 1.\quad xymatrix}

\smallskip
\href{#S11}{1.1.\SP Examples}

\href{#S12}{1.2.\SP Labels}

\href{#S13}{1.3.\SP Breaks}

\href{#S14}{1.4.\SP Curving}

\href{#S15}{1.5.\SP Explicit label positioning}

\href{#S16}{1.6.\SP Labeling with any object}

\href{#S17}{1.7.\SP More arrow styles}

\href{#S18}{1.8.\SP Sliding arrows sideways}

\href{#S19}{1.9.\SP More addresses of targets}

\href{#S110}{1.10. Changing the position of a target}

\href{#S111}{1.11. Arrows passing under}

\href{#S112}{1.12. More bending arrows}

\href{#S113}{1.13. Defining new arrow types}

\href{#S114}{1.14. Manual entry formatting}

\href{#S115}{1.15. Extra entries outside the matrix}

\href{#S116}{1.16. Spacing and rotation}

\href{#S117}{1.17. Entry style}

\href{#S118}{1.18. Naming for later use as targets}

\href{#S119}{1.19. Grouping objects}

\href{#S120}{1.20. More examples}

\bigskip
%\centerline
{\large 2.\quad Kernel}

\smallskip
\href{#S21}{2.1.\SP Positions}

\href{#S22}{2.2.\SP Stack}

\href{#S23}{2.3.\SP Objects}

\href{#S24}{2.4.\SP Decorators}

\href{#S25}{2.5.\SP Kernel object library}

\bigskip
%\centerline
{\large 3.\quad Extensions}

\href{#S31}{3.1.\SP Curve, Circle and Ellipse}

\href{#S32}{3.2.\SP Frame and Bracket}

\href{#S33}{3.3.\SP Import Graphics}
%{3.3.\SP Rotate ans Scale}

\newpage
%\centerline
{\large 4.\quad Features}\hfill\BACK

\smallskip
\href{#S41}{4.1.\SP Path and Arrow}

\href{#S42}{4.2.\SP Graph}

\href{#S43}{4.3.\SP Matrix}

\href{#S44}{4.4.\SP Polygon}

\href{#S45}{4.5.\SP Circle, Ellipse and Arc}

\href{#S46}{4.6.\SP Two-cell}

\href{#S47}{4.7.\SP Lattice and web}

\href{#S48}{4.8.\SP Knots and Links}

{4.9.\SP Other options}

\bigskip
%\hfill
{\large \href{#syntax}{5.\quad Basic syntax of \Xy-pic}}
%\hfill\phantom{.}

\bigskip

\bigskip
\centerline{\large Some informations through internet}
\href{http://www.tug.org/applications/Xy-pic/}{\Xy-pic home page}\\
\href{http://www.cl.cam.ac.uk/TeXdoc/xypic/xyguide-html/}%
{\Xy-pic user's guide}\\
\href{http://www.dpmms.cam.ac.uk/~al366/xytutorial.html}%
{\Xy-pic tutorial with an archive of examples}\\
\href{http://lf.starlogik.de/XYPic-Knot-Intro/index.html}%
{An introductory tutorial on drawing knots in XY-pic}\\
\\
\href{ftp://akagi.ms.u-tokyo.ac.jp/pub/TeX/macros/xypic.zip}%
{xypic.zip} \ \ Package of \Xy-pic(Ver.3.7)\\
\qquad\qquad\quad should be expanded where {\tt.\BK texmf} exists.\\
\qquad\qquad\quad This contains the followng first two references
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\bigskip
\centerline{\large References}
Kristoffer H.~Rose, {\sl \Xy-pic user's guide}, 1999. \\

Kristoffer H.~Rose and Ross R.~Moore, {\sl \Xy-pic reference manual}, 
1999.\\ 

Michel Goosens, Sebastian Rahtz, Franklin Mittebach, {\sl The {\LaTeX} Graphic Companion}, 1997.\\

\if\pdf
\href{http://akagi.ms.u-tokyo.ac.jp/inputxy.pdf}{\colorbox{cyan}{\sf Tutorial (in Japanese)}}
\else
\href{file:inputxy.dvi}{\colorbox{cyan}{\sf Tutorial (in Japanese)}}
\fi
\newpage
%%% Xy-pic %%%
\centerline{\Large{\tt Xy-pic} {\tt\BK xymatrix}}
\GOTO{Top}
\keyin{\input xy}{\texttt{\BK input xy}}
\keyin{\xyoption{all}}{\texttt{\BK xyoption\{all\}}}
\def\D{{\bullet}}

\smallskip
\begin{z2col}[-.5cm]
\begin{Alltt}
\\xymatrix\{
 \RED{entry} & \RED{entry} & \(\cdots\) \\\\
 \RED{entry} & \RED{entry} & \(\cdots\) \\\\
 \(\cdots\)\}
\end{Alltt}

\kaidan

\RED{entry}:\MGNT{modifier}~{\it object}~\GREEN{decoration}
\end{z2col}
\centerline{\name{S11}{\textbf{\large 1.1. Examples}}}
%\GOTO{Top}

\smallskip
\begin{z2col}[1.15cm]
\begin{Alltt}
\\xymatrix\{
 A &\textcolor{magenta}{*+[F]}\{\\sum_\{k=m\}^n a_k\} \\\\
   & \{\\bullet\} & D \textcolor{green}{\\ar[ul]} \}
\end{Alltt}

\kaidan

\xymatrix{
 A &*+[F]{\sum_{k=m}^n a_k} \\
   & \D & D \ar[ul] }
\end{z2col}

\vspace*{-5ex}
\begin{Alltt}
\\xymatrix\{
 U \textcolor{green}{\\ar@/_/[ddr]_y \\ar@/^/[drr]^x
   \\ar@\{.>\}[dr]|\{(x,y)\}} \\\\
    & X \\times_Z Y \textcolor{green}{\\ar[d]^q \\ar[r]_p} & X \textcolor{green}{\\ar[d]_f} \\\\
    & Y \textcolor{green}{\\ar[r]^g} & Z \} 
\end{Alltt}

\vspace*{-2ex}
\begin{z2col}[1cm]
\texttt{\color{magenta} *} draw object\\
\quad with \texttt{\color{magenta}+} room and \texttt{\color{magenta}{[F]}} frame

\smallskip
\texttt{\color{green}\BK ar} draw an arrow from 
\texttt{\color{magenta}c}urrent\\
\quad position to \texttt{\textcolor{green}{[}\textcolor{magenta}{\it hop}\textcolor{green}{]}} with options:\\
\textcolor{magenta}{\tt\it hop}: \textcolor{red}{\tt l}eft \textcolor{red}{\tt r}ight \textcolor{red}{\tt u}p \textcolor{red}{\tt d}own\\
\quad\texttt{\color{green}{[ddr]}}: 2 down $+$ 1 right

\smallskip
{\color{green}\verb|@/_/|}: curve right\quad
{\color{green}\verb|@/~/|}: curve left

\smallskip
{\color{green}[}{\color{magenta}{\it hop}}{\color{green}\verb|]_|}{\color{magenta}\{{\it it}\}}:~put~{\it \color{magenta}it}\/em~on~the~right~(down)~side\hspace*{-3cm}\phantom{.}\\
{\color{green}[}{\color{magenta}{\it hop}}{\color{green}\verb|]^|}{\color{magenta}\{{\it it}\}}: put {\it \color{magenta}it}\/em on the left (up) side\hspace*{-2cm}\phantom{.}
\kaidan

\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{z2col}

{\color{green}[}{\color{magenta}{\it hop}}{\color{green}\verb=]|=}{\color{magenta}\{{\it it}\}}: put {\it \color{magenta}it}\/em in the middle with a hole

\smallskip
{\color{green}\verb|@{|{\it\color{red}style}\verb|}|}: define a {\it\color{red}style} of the arrow (default: {\color{green}\verb|@{->}|})

\quad\RED{style}: \MGNT{tail} \MGNT{shaft} \MGNT{head}

%\def\AR#1{\keyin{\string@{#1}}}{\xymatrix@1{\string@{#1}}}
%\AR{=>}

\quad
\keyin{@{=>}}{\tt\string@\{=>\}}
\raisebox{.6ex}{\xymatrix@1{\ar@{=>}[r]&}}\hfill
\keyin{@{.>}}{\tt\string@\{.>\}}
\raisebox{.6ex}{\xymatrix@1{\ar@{.>}[r]&}}\hfill
\keyin{@{:>}}{\tt\string@\{:>\}}
\raisebox{.6ex}{\xymatrix@1{\ar@{:>}[r]&}}\hfill
\keyin{@{~>}}{\tt\string@\{\string~>\}}
\raisebox{.6ex}{\xymatrix@1{\ar@{~>}[r]&}}

\quad
\keyin{@{-->}}{\tt\string@\{-->\}}
\raisebox{0.6ex}{\xymatrix@1{\ar@{-->}[r]&}}\hfill
\!\!\!\keyin{@{-}}{\tt\string@\{-\}}
\raisebox{0.6ex}{\xymatrix@1{\ar@{-}[r]&}}\hfill
\keyin{@{<->}}{\tt\string@\{<->\}}
\raisebox{.6ex}{\xymatrix@1{\ar@{<->}[r]&}}\hfill
\!\!\keyin{@{|=>}}{\tt\string@3\{|->\}}
\raisebox{0.6ex}{\xymatrix@1{\ar@3{|->}[r]&}}

\quad
\keyin{@{<->}}{\tt\string@\{\{*\}-\{*\}\}}
\raisebox{.6ex}{\xymatrix@1{\ar@{{*}-{*}}[r]&}}\hfill
\keyin{@{}}{\tt\string@\{\}}
\raisebox{0.6ex}{\xymatrix@1{\ar@{}[r]&}}\!\!\!\!\!\!\!\!
\keyin{@{x->}}{\tt\string@\string_\{x->\}}
\raisebox{.6ex}{\xymatrix@1{\ar@_{x->}[r]&}}\hfill
\keyin{@{^{(}->}}{\tt\string@\{\string^\{(\}->\}}
\raisebox{.6ex}{\xymatrix@1{\ar@{^{(}->}[r]&}}\hfill

\quad
\keyin{@{>->}}{\tt\string@\{>->\}}
\raisebox{0.6ex}{\xymatrix@1{\ar@{>->}[r]&}}\hfill
\keyin{@2{~}}{\tt\string@2\{\string~\}}
\raisebox{0.6ex}{\xymatrix@1{\ar@2{~}[r]&}}\hfill
\keyin{@{.>>}}{\tt\string@\{.>>\}}
\raisebox{0.6ex}{\xymatrix@1{\ar@{.{>>}}[r]&}}\hfill
\keyin{@{{}{x}{}}}{\tt\string@\{\{\}\{x\}\{\}\}}
\raisebox{.6ex}{\xymatrix@1{\ar@{{}{x}{}}[r]&}}

%\quad\verb|@{=>} @{.>} @{:>} @{~>} @{-->} @{-} @{}| etc.

%\quad\xymatrix@1{\ar@{=>}[r] & \ar@^{.>}[r] & \ar@{:>}[r] & \ar@{~>}[r]& \ar@{-->}[r] & \ar@{-} & \ar@{} }
\begin{Alltt}
\\xymatrix\{
 \{\\bullet\} {\color{green}\\ar@\{--\}[d]\\ar@{=}[dr]\\ar@{-}[r]}
           & \{\\bullet\} {\color{green}\\ar@{.}[d]} \\\\
 \{\\bullet\} & \{\\bullet\} {\color{green}\\ar[l]} \}
\end{Alltt}
\vspace*{-13ex}
\hspace*{0.8\textwidth}
\keyin{\xymatrix{
 {\bullet} \ar@{--}[d]\ar@{=}[dr]\ar@{-}[r]
           & {\bullet} \ar@{.}[d] \\
 {\bullet} & {\bullet} \ar[l] }}{
\xymatrix{
 \D \ar@{--}[d]\ar@{=}[dr]\ar@{-}[r]
           & \D \ar@{.}[d] \\
 \D & \D \ar[l] }}


%\xymatrix{
% .\ar@{=>}[r] \ar@{..>}[rrd] & .\ar@^{.>}[r] & .\ar@{:>}[r] \ar@{~}[d] & .\ar@{->}[r]& .\ar@{-->}[r] &\\
%\ar@{~>}[r] & \ar@{==>}[r] & \ar@_{<->}[r] &\ar@3{<->}[r] 
%&\ar@2{<<-}[r] &
%}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\centerline{\name{S12}{\large\bf 1.2. Labels}}
\GOTO{Top}
\keyin{\xymatrix@1{X\ar[r]^a_b&Y&Z\ar[l]^A_B}}
{\tt\BK xymatrix{\color{magenta}\string@1}\{X\BK ar[r]{\color{magenta}\string^}a{\color{magenta}\_}b\&Y\&Z\BK ar[l]{\color{magenta}\string^}A{\color{magenta}\_}B\}}
\hfill
\xymatrix@1{X\ar[r]^a_b & Y & Z\ar[l]^A_B}\\[-1ex]
%
\quad{\tt\color{magenta}\verb|@1|}: \rm better result for one-line diagrams\\
\quad{\tt\color{magenta}\string^}\RED{\{\TEXT\}},  
{\tt\color{magenta}\string_}\RED{\{\TEXT\}}: put \TEXT\/ on the left or right side.\\[2pt]
%
\keyin{\xymatrix@1{A\cup B\cup C\cup D\ar[r]^-{+}&X}}
{\tt\BK xymatrix\string@1\{A\BK cup B\BK cup C\BK cup D\BK ar[r]\string^{\color{magenta}-}\{+\}\&X\}}\\
\quad\xymatrix@1{A\cup B\cup C\cup D\ar[r]^-{+}&X}\quad
\rm(\xymatrix@1{A\cup B\cup C\cup D\ar[r]^{+}&X}\ without the {\color{magenta}\tt-})\\
%
\begin{z2col}[1.5cm]
\begin{Alltt}
\\xymatrix\{
 A \\ar[r]{\color{red}^f} \\ar[dr]{\color{red}_\{f;g\}} 
  & B \\ar[d]{\color{red}^g} \\ar[dr]{\color{red}^\{g;h\}}\\\\
  & C \\ar[r]{\color{red}_h} & D\}
\end{Alltt}

\kaidan

\xymatrix{ A \ar[r]^f \ar[dr]_{f;g} & B \ar[d]^g \ar[dr]^{g;h} \\ & C \ar[r]_h & D }
\end{z2col}
%%%
\centerline{\name{S13}{\large\bf 1.3. Breaks}}
\verb|\xymatrix@1{A\ar[r]|\textcolor{red}{\tt |}\verb:f&B}:\hfill
\xymatrix@1{A\ar[r]|f&B}\qquad\phantom{.}

\verb|\xymatrix@1{A\ar[r]|\textcolor{red}{\tt |\BK hole}\verb:&B}:\hfill\xymatrix@1{A\ar[r]|\hole&B}\qquad\phantom{.}\\
\verb:\xymatrix{:%
\hfill\xymatrix{\ar @{} [dr] |{\color{red}\circlearrowright} A \ar[d] \ar[r] & B \ar[d] \\ C \ar[r] & {\color{green}D} }\ \,\quad\phantom{.}\\[-8ex]
\verb: \ar@{}[dr]:{\tt\color{red}|\{\BK color\{red\}%
\BK circlearrowright\}}\\
\verb: A \ar[d] \ar[r] & B \ar[d] \\:\\
\verb: C \ar[r] & {\color{green}D} }:

\medskip
%%%
\centerline{\large\bf \name{S14}{1.4. Curving}}
{\tt\color{green}\string@/\color{magenta}{\it curving}\color{green}/}\\
\ \verb|\xymatrix@1{A \ar|\textcolor{red}{\tt\string@/\string^/}\verb|[r] & B}|\hfill\xymatrix@1{A \ar@/^/[r] & B}\qquad\phantom{.}\\
\ \verb|\xymatrix@1{A \ar|\textcolor{red}{\tt\string@/\string_/}\verb|[r] & B}|\hfill\xymatrix@1{A \ar@/_/[r] & B}\qquad\phantom{.}\\
\ \verb|\xymatrix@1{A \ar|\textcolor{red}{\tt\string@/\string_1pc/}\verb|[r] & B}|\hfill\xymatrix@1{A \ar@/_1pc/[r] & B}\qquad\phantom{.}\\
%%
{\tt\color{green}\string@(\color{magenta}{\it in}\color{green},\color{magenta}{\it out}\color{green})}:
\MGNT{in}, \MGNT{out}: \textcolor{red}{\tt u ur r dr d dl l ul}\\
\verb: \xymatrix{ x \ar:{\tt\color{red}\string@(ul,dl)}\verb:[]|{id}:
\\
\verb:  \ar@:{\tt\color{red}/\string^/}\verb:[rr]|f:\hfill
\xymatrix{ x \ar@(ul,dl)[]|{id} \ar@/^/[rr]|f && f(x) \ar@/^/[ll]|{f^{-1}} }
\ \ \phantom{.}\\[-1.5ex]
\verb:   && f(x) \ar@:{\tt\color{red}/\string^/}\verb:[ll]|{f^{-1}} }:

\medskip
\hfill{\large\bf \name{S15}{1.5. Explicit label positioning}}\hfill\NEXT

{\color{red}\verb|<|} tail of the arrow\\
{\color{red}\verb|>|} head of the arrow\\
{\color{red}\verb|<<|} or {\color{red}\verb|<<<|} etc. intermediate position
and {\color{red}\verb|-|} is the center of arrow.\\
\ \verb|\xymatrix@1{A\ar[r]^|{\tt\color{red}<}\verb|{+}&B}|\hfill
\xymatrix@1{A\ar[r]^<{+}&B}\qquad\phantom{.}\\
\ \verb|\xymatrix@1{A\ar[r]^|{\tt\color{red}>}\verb|{+}&B}|\hfill
\xymatrix@1{A\ar[r]^>{+}&B}\qquad\phantom{.}\\
\ \verb|\xymatrix@1{A\ar[r]^|{\tt\color{red}>>}\verb|{+}&B}|\hfill
\xymatrix@1{A\ar[r]^>>{+}&B}\qquad\phantom{.}\\
\ \verb|\xymatrix@1{A\ar[r]^|{\color{red}\tt>>>}\verb|{+}&B}|\hfill
\xymatrix@1{A\ar[r]^>>>{+}&B}\qquad\phantom{.}
\newpage
%%%%%%%%%%%%%%%%%
{\tt\color{green}\ (\FAC)}: \FAC\/ based on the objects\\
{\tt\color{green}<(\FAC)}: \FAC\/ based on {\tt\color{green}<}\\
{\tt\color{green}>(\FAC)}: \FAC\/ based on {\tt\color{green}>}
\quad(\red{\tt-} equals {\color{red}\verb|<>(.5)|})\\
\verb|\xymatrix@1{A\ar[r]^|{\tt\color{red}(.2)}\verb|{+}&B}|\hfill
\xymatrix@1{A\ar[r]^(.2){+}&B}\qquad\phantom{.}\\
\verb|\xymatrix@1{A\ar[r]^|{\tt\color{red}<(.2)}\verb|{+}&B}|\hfill
\xymatrix@1{A\ar[r]^<(.2){+}&B}\qquad\phantom{.}\\
{\tt\color{green}!\{\MGNT{s};\MGNT{t}\}}:
the point where the line from \MGNT{s} to \MGNT{t} crosses it\\
\begin{z2col}[.4cm]
\begin{Alltt}
\\xymatrix\{
 1 \\ar[rr]^{\color{red}-}{1000000x}
   \\ar[dr]_{\color{red}(.2)}{2000x}
      |{\color{red}!\{[d];[rr]\}}\\hole
             && 1000000 \\\\
 1000 \\ar[r]_{2x}
   \\ar[urr]_{\color{red}>>>>}\{x^2\}
        & 2000 \}
\end{Alltt}

\kaidan

\vspace*{3ex}
\xymatrix{
 1 \ar[rr] ^-{1000000x}
   \ar[dr] _(.2){2000x} |!{[d];[rr]}\hole
                        && 1000000 \\
 1000 \ar[r] _{2x}
   \ar[urr] _>>>>{x^2}
               & 2000 }
\end{z2col}

\smallskip
\centerline{\bf\large \name{S16}{1.6. Labeling with any object}}
\GOTO{Top}
{\tt\color{green}\ \{\MGNT{math}\}}: \MGNT{math} material as object

{\tt\color{green}*\{\MGNT{math}\}}: similar but original style and blank margin are ignored

{\tt\color{green}*\MGNT{modifiers}\{\TEXT\}}: %
change the shape and side according to \MGNT{modifiers}\\[-4.5ex]
\begin{tabbing}
\ \=\hspace{3.5cm}\=ABC\kill
\>\RED{\tt +}  \>grow\\
\>\RED{\tt+\string<\dm\string>}\>grow by \Dm\\
\>\RED{\tt+=}  \>grow to enclosing square\\
\>\RED{\tt-}   \>shrink\\
\>\RED{\tt-\string<\dm\string>}\>shrink by \Dm\\
\>\RED{\tt-=}  \>shrink to contained square\\
\>\RED{\tt!}   \>do not center\\
\>\RED{\tt[o]} \>round\\
\>\RED{\tt [l] [r] [u] [d]}\>adjust left, right, \ldots\\
\>\RED{\tt[F] [F=]} \>frame, double frame\\
\>\RED{\tt[F,] [F--]} \>dotted frame, dashed frame\\
\>\RED{\tt[F-,] [F-;\string<\MGNT{3pt}\string>]}\>shaded frame, frame with rounded edges\\
\>\RED{\tt@\MGNT{variant}\{\MGNT{tip}\}}
  \> \MGNT{tip} (or \MGNT{shaft}) object (cf.~next section)\\
\>\RED{\tt\BK txt\MGNT{{\tt\string<}width{\tt\string>}}\{\TEXT\}}
  \> similar as \BK hbox\{\} but \BK\BK\ can be used in \TEXT\\
\>\RED{\tt\BK composit\{\MGNT{obj}*\MGNT{obj}\}}
\> combine objects\\
\>\RED{\tt\BK frm\{\}}\> last object
\end{tabbing}

\vspace*{-3.5ex}
\verb|\xymatrix@1{ A \ar[r]^|%
{\color{red}\verb|*+[Fo]{x}|}\verb| & B }|\hfill
\raisebox{4pt}{\xymatrix@1{ A \ar[r]^*+[Fo]{x} & B }}\quad\phantom{.}

\begin{z2col}
\begin{Alltt}
\\xymatrix@1\{ A \\ar 
  {\color{red}@\{/*\\composite\{\{+\}*\{\\times\}\}/\}} [rr]
  ^{\color{red}*+\\txt\{High\\\\label\}} && B\}
\end{Alltt}

\kaidan

\vspace*{-1ex}
\hfill\xymatrix@1{ A \ar @{/*\composite{{+}*{\times}}/} [rr]
 ^*+\txt{High\\label} && B}
\end{z2col}
\newpage
%%%
\centerline{\bf\large \name{S17}{1.7. More arrow styles}}
\GOTO{Top}
{\color{green}\tt@\MGNT{variant}\{\MGNT{tail shaft head}\}}:
\MGNT{tail} and \MGNT{head} can be omitted\\
{\color{green}\tt@\MGNT{variant}\{\MGNT{head}\}}\\
\ \MGNT{variant}{\tt\color{green}\{\MGNT{tip}\}}\qquad
\MGNT{variant}{\tt\color{green}\{\MGNT{shaft}\}} 
\if\pdf
\else
\hfill $\Rightarrow$\Goto{Arrow}{Arrow}
\fi
\\
\quad \MGNT{variant}: \RED{\tt\string^} left\qquad
\RED{\tt\string_} right\qquad
\RED{\tt2} double\qquad
\RED{\tt3} triple

\smallskip
\centerline{Plain \MGNT{shaft}s (in kernel library)}
\verb| @{-} |\xy*{}\ar@{-}(16,2)\endxy\hfill
\verb|@2{-} |\xy*{}\ar@2{-}(16,2)\endxy\hfill
\verb|@3{-} |\xy*{}\ar@3{-}(16,2)\endxy\\
%
\verb| @{.} |\xy*{}\ar@{.}(16,2)\endxy\hfill
\verb|@2{.} |\xy*{}\ar@2{.}(16,2)\endxy\hfill
\verb|@3{.} |\xy*{}\ar@3{.}(16,2)\endxy\\
%
\verb: @{~} :\xy*{}\ar@{~}(16,2)\endxy\hfill
\verb:@2{~} :\xy*{}\ar@2{~}(16,2)\endxy\hfill
\verb:@3{~} :\xy*{}\ar@3{~}(16,2)\endxy\\
%
\verb|@{--} |\xy*{}\ar@{--}(16,2)\endxy\hfill
\verb|@2{--} |\xy*{}\ar@2{--}(16,2)\endxy\hfill
\verb|@3{--} |\xy*{}\ar@3{--}(16,2)\endxy\\
%
\verb|@{~~} |\xy*{}\ar@{~~}(16,2)\endxy\hfill
\verb|@2{~~} |\xy*{}\ar@2{~~}(16,2)\endxy\hfill
\verb|@3{~~} |\xy*{}\ar@3{~~}(16,2)\endxy

\smallskip
\centerline{Plain \MGNT{tip}s which are \MGNT{head}s or \MGNT{tail}s
(in kernel library)}
\verb| @{.>} |\xy*{}\ar@{.>}(5,2)\endxy\hfill
\verb|@^{.>} |\xy*{}\ar@^{.>}(5,2)\endxy\hfill
\verb|@_{.>} |\xy*{}\ar@_{.>}(5,2)\endxy\hfill
\verb|@2{.>} |\xy*{}\ar@2{.>}(5,2)\endxy\hfill
\verb|@3{.>} |\xy*{}\ar@3{.>}(5,2)\endxy\\
%
\verb| @{.<} |\xy*{}\ar@{.<}(5,2)\endxy\hfill
\verb|@^{.<} |\xy*{}\ar@^{.<}(5,2)\endxy\hfill
\verb|@_{.<} |\xy*{}\ar@_{.<}(5,2)\endxy\hfill
\verb|@2{.<} |\xy*{}\ar@2{.<}(5,2)\endxy\hfill
\verb|@3{.<} |\xy*{}\ar@3{.<}(5,2)\endxy\\
%
\verb: @{.|} :\xy*{}\ar@{.|}(5,2)\endxy\hfill
\verb:@^{.|} :\xy*{}\ar@^{.|}(5,2)\endxy\hfill
\verb:@_{.|} :\xy*{}\ar@_{.|}(5,2)\endxy\hfill
\verb:@2{.|} :\xy*{}\ar@2{.|}(5,2)\endxy\hfill
\verb:@3{.|} :\xy*{}\ar@3{.|}(5,2)\endxy\\
%
\verb| @{.(} |\xy*{}\ar@{.(}(5,2)\endxy\hfill
\verb|@^{.(} |\xy*{}\ar@^{.(}(5,2)\endxy\hfill
\verb|@_{.(} |\xy*{}\ar@_{.(}(5,2)\endxy\hfill
\verb| @{.)} |\xy*{}\ar@{.)}(5,2)\endxy\hfill
\verb|@^{.)} |\xy*{}\ar@^{.)}(5,2)\endxy\\
%
\verb|@_{.)} |\xy*{}\ar@_{.)}(5,2)\endxy\hfill
\verb|@^{.`} |\xy*{}\ar@^{.`}(5,2)\endxy\hfill
\verb|@^{.'} |\xy*{}\ar@^{.'}(5,2)\endxy\hfill
\verb|@_{.`} |\xy*{}\ar@_{.`}(5,2)\endxy\hfill
\verb|@_{.'} |\xy*{}\ar@_{.'}(5,2)\endxy

\smallskip
\centerline{Constructed \MGNT{tip}s which are \MGNT{head}s or \MGNT{tail}s
(in kernel library)}

\vspace*{-2.5ex}
\begin{tabbing}
\hspace{2.9cm}\=\hspace{2.9cm}\=\hspace{2.9cm}\=\hspace{2.9cm}\kill
\verb| @{.>>}| \xy*{}\ar@{.>>}(5,2)\endxy\>
\verb|@^{.>>}| \xy*{}\ar@^{.>>}(5,2)\endxy\>
\verb|@_{.>>}| \xy*{}\ar@_{.>>}(5,2)\endxy\>
\verb|@2{.>>}| \xy*{}\ar@2{.>>}(5,2)\endxy\\
\verb|@3{.>>}| \xy*{}\ar@3{.>>}(5,2)\endxy\>
%
\verb| @{.<<}| \xy*{}\ar@{.<<}(5,2)\endxy\>
\verb|@^{.<<}| \xy*{}\ar@^{.<<}(5,2)\endxy\>
\verb|@_{.<<}| \xy*{}\ar@_{.<<}(5,2)\endxy\\
\verb|@2{.<<}| \xy*{}\ar@2{.<<}(5,2)\endxy\>
\verb|@3{.<<}| \xy*{}\ar@3{.<<}(5,2)\endxy\>
%
\verb: @{.||}: \xy*{}\ar@{.||}(5,2)\endxy\>
\verb:@^{.||}: \xy*{}\ar@^{.||}(5,2)\endxy\\
\verb:@_{.||}: \xy*{}\ar@_{.||}(5,2)\endxy\>
\verb:@2{.||}: \xy*{}\ar@2{.||}(5,2)\endxy\>
\verb:@3{.||}: \xy*{}\ar@3{.||}(5,2)\endxy\>
%
\verb:@{.{|-}}: \xy*{}\ar@{.{|-}}(5,2)\endxy\\
\verb:@^{.{|-}}: \xy*{}\ar@^{.{|-}}(5,2)\endxy\>
\verb:@_{.{|-}}: \xy*{}\ar@_{.{|-}}(5,2)\endxy\>
\verb:@2{.{|-}}: \xy*{}\ar@2{.{|-}}(5,2)\endxy\>
%
\verb:@3{.{|-}}: \xy*{}\ar@3{.{|-}}(5,2)\endxy\\
\verb: @{.>|}: \xy*{}\ar@{.>|}(5,2)\endxy\>
\verb:@{.>>|}: \xy*{}\ar@^{.>>|}(5,2)\endxy\>
\verb: @{.|<}: \xy*{}\ar@{.|<}(5,2)\endxy\>
\verb:@{.|<<}: \xy*{}\ar@{.|<<}(5,2)\endxy\\
\verb|@{.{*}}| \xy*{}\ar@{.{*}}(5,2)\endxy\>
\verb|  @{.o}| \xy*{}\ar@{.o}(5,2)\endxy\>
\verb|  @{.+}| \xy*{}\ar@{.+}(5,2)\endxy\>
\verb|  @{.x}| \xy*{}\ar@{.x}(5,2)\endxy\\
\verb:  @{./}: \xy*{}\ar@{./}(5,2)\endxy\> 
\verb| @{.//}| \xy*{}\ar@{.//}(5,2)\endxy
\end{tabbing}

\vspace*{-2ex}
\centerline{Some arrows}
\verb|@{^{(}->} |\xy*{}\ar@{^{(}->}(6,2)\endxy\hfill
\verb:@{|-_{>}} :\xy*{}\ar@{|-_{>}}(6,2)\endxy\hfill
\verb:@{*{x}*{y}*{z}} :\xy*{}\ar@{*{x}*{y}*{z}}(14,2)\endxy

\smallskip
\begin{z2col}
\verb|\xymatrix{A \ar @/^/ |{\color{red}\verb|@{^{<}-_{>}|}\verb| [rr]|\\
\verb| \ar @/_1pc/ |{\color{red}\verb|@{{*}{x}{*}}|}\verb| [rr] && B}|

\kaidan

\hfill
\xymatrix{A \ar @/^/ @{^{<}-_{>}} [rr] \ar @/_1pc/ @{{*}{x}{*}} [rr] && B}%
\!\!\!\!\!\!\!\!\!
\end{z2col}

%%% Sliding arrows sideways %%%
\medskip
\centerline{\bf\large \name{S18}{1.8. Sliding arrows sideways}}
{\color{green}\tt @\string<}\MGNT{len}{\color{green}\tt\string>}: slide the arrow left sideways by \MGNT{len}

\begin{z2col}
\begin{Alltt}
\\xymatrix\{ A \\ar{\color{red}@<1ex>}[dr]^a_{.} \\\\
  & B \\ar{\color{red}@<1ex>}[ul]^b \\ar{\color{red}@<1ex>}[r]^c
    & C \\ar{\color{red}@<1ex>}[l]^d_{.} \}
\end{Alltt}

\kaidan

\vspace*{-5ex}
\hfill\xymatrix{ A \ar@<1ex>[dr]^a_{.} \\ & B \ar@<1ex>[ul]^b \ar@<1ex>[r]^c & C \ar@<1ex>[l]^d_{.} }\!\!\!\!\!\!\!\!
\end{z2col}

\vspace*{-1ex}
\verb|\xymatrix@1{|\\
\verb|  A \ar@/^/[r] \ar@/^/|{\color{red}\verb|@<-1ex>|}\verb|[r] & B }|\hfill
\xymatrix@1{ A \ar@/^/[r] \ar@/^/@<-1ex>[r] & B }\\
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\centerline{\bf\large \name{S19}{1.9. More addresses of targets}}
\GOTO{Top}
{\color{green}\tt[\MGNT{r},\MGNT{c}]}: relative entry.
{\tt\color{red}[1,2]} and {\tt\color{red}[-2,0]} means {\color{red}\tt[drr]} and {\color{red}\tt[uu]}\\
%
{\color{green}\tt"\MGNT{r},\MGNT{c}"}: absolute entry.
The top left is {\tt\color{red}"1,1"}\\
%
{\color{green}\tt\MGNT{b};\MGNT{t}}:\quad\ \ change the base and target to \MGNT{b} and \MGNT{t}, respectively.\\[2ex]
\begin{z2col}
\begin{Alltt}
\\xymatrix\{ A \\\\
           B & C \\ar@<1ex>[ul]
                 \\ar@<1ex>{\color{red}[ul];[]} \}
\end{Alltt}
\kaidan

\vspace*{-4ex}
\hfill
\xymatrix{ A \\ B & C \ar@<1ex>[ul] \ar@<1ex>[ul];[] }
\end{z2col}
\centerline{\bf\large \name{S110}{1.10. Changing the position of a target}}
{\tt\color{green}!\MGNT{vector}}:
moves the center of the target by \MGNT{vector}\\
{\tt\color{green}+\MGNT{vector}} or {\tt\color{green}-\MGNT{vector}}:
change the target with size 0 and the central\\
\quad position is shifted by \MGNT{vector}:\\
\ \ {\tt\color{green}<\MGNT{x},\MGNT{y}>}: \MGNT{vector} giving by size\qquad
{\tt\color{red}0}: zero \MGNT{vector}\\
\ \ {\tt\color{red} U UR R DR D DL L UL} : \MGNT{vector} to the corners of the target\\
\ \ {\tt\color{green}/\!\MGNT{d} \dm/}: \MGNT{vector} going \Dm\/ in the \MGNT{d}\/irection where \MGNT{d} is:\\
\qquad{\tt\color{red} u ur r dr d dl l ul}\\
\qquad{\tt\color{red}va(\MGNT{$\theta$})}: absolute angle\\
\qquad{\tt\color{red}a(\MGNT{$\theta$})\ }: relative angle\\
\qquad{\tt\color{red}(\MGNT{x},\MGNT{y})}: relative vector\\
\qquad{\tt\color{red}\string^\ \  \string_\ }: {\tt\color{red}a(90)}
and {\tt\color{red}a(-90)}, respectively\\
\qquad{\it\color{magenta}empty}: empty means the current (=last)

\centerline{\bf\large \name{S111}{1.11. Arrows passing under}}
{\tt\color{green}'\MGNT{t}}: visited target \MGNT{t} except the last\\
\begin{z2col}
\begin{Alltt}
\\xymatrix\{ \{\\circ\}
 \\ar@\{|-->\} {\color{red}'[dr]} ^a
            {\color{red}'[rr]}+D*{\\bullet} ^b
             {\color{red}[drrr]} ^c
        &\{\\circ\}&\{\\circ\}&\{\\circ\}\\
 \{\\circ\}&\{\\circ\}&\{\\circ\}&\{\\circ\} \}
\end{Alltt}

\kaidan

\vspace*{1ex}
\hfill
\xymatrix{ {\circ}
 \ar@{|-->} '[dr] ^a
            '[rr]+D*{\bullet} ^b
             [drrr] ^c
        & {\circ} & {\circ} & {\circ} \\
 {\circ} & {\circ} & {\circ} & {\circ} }
\!\!\!\!\!\!
\end{z2col}

\smallskip
\begin{z2col}
\begin{Alltt}
\\xymatrix{\color{red}@!0}\{     %{\rm see 1.16 for }{\color{red}@!0}
 & \\lambda\\omega
   \\ar@\{-\}[rr]\\ar@\{-\}{\color{red}'[d][dd]}
  && \\lambda C \\ar@\{-\}[dd]\\\\
 \\lambda2 \\ar@\{-\}[ur]
   \\ar@\{-\}[rr]\\ar@\{-\}[dd]
  && \\lambda P2\\ar@\{-\}[ur]\\ar@\{-\}[dd]\\\\
 & \\lambda\\underline\\omega \\ar@\{-\}{\color{red}'[r][rr]}
   && \\lambda P\\underline\\omega\\\\
 \\lambda\{\\to\} \\ar@\{-\}[rr]\\ar@\{-\}[ur]
  && \\lambda P \\ar@\{-\}[ur]\}
\end{Alltt}

\kaidan

\vspace*{-4ex}
\hfill\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{z2col}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\centerline{\bf\large \name{S112}{1.12. More bending arrows}}
\GOTO{Top}
{\tt\color{green}`\!\MGNT{d}\,\MGNT{t}}:
start \MGNT{d}\/irection and turn to \MGNT{t}\/arget\\
\quad \MGNT{d} may be {\tt\color{red} u ur r},\ldots\\
\quad curve ends after a quarter turn\\
\quad default radius is 10pt. 
It can be changed by {\tt\color{green} /}\!\MGNT{radius} just 
after {\tt\color{green}`}\\[1ex]
%%
\begin{z2col}
\begin{Alltt}
\\xymatrix\{
 \{\\circ\} \\ar {\color{red}`r[d]}     ^a
             {\color{red}`[rr]}     ^b
             {\color{red}`/4pt[rr]} ^c
             {\color{red}`[rrr]}    ^d
             {\color{red}`_dl[drrr]}^e
                 {\color{red}[drrr]}^f
         & \{\\circ\} & \{\\circ\} & \{\\circ\} \\\\
 \{\\circ\} & \{\\circ\} & \{\\circ\} & \{\\circ\} \}
\end{Alltt}

\kaidan

\vspace*{4ex}
\hfill
\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{z2col}

\smallskip
\begin{z2col}
\begin{Alltt}
\\xymatrix@1\{
 A \\ar@<-2pt> {\color{red}`d[r] `[r] [r]}
   \\ar@<+2pt> {\color{red}`d[r] `[r] [r]} & B \}
\end{Alltt}

\kaidan

\hfill
\xymatrix@1{
 A \ar@<-2pt> `d[r] `[r] [r]
   \ar@<+2pt> `d[r] `[r] [r] & B }
\end{z2col}

\medskip
\centerline{\bf\large \name{S113}{1.13. Defining new arrow types}}
{\color{red}\verb:> < | o x + / ( ) [ ] :\tt \textvisiblespace\ }: 
\MGNT{tip} characters\\
{\color{red}\verb|- . ~ : = |}: \MGNT{shaft} characters\\
{\color{green}\tt\BK newdir\MGNT{variant}\{\MGNT{directional}\}\{\MGNT{composite}\}}:
\MGNT{directional} should be a\\
\quad sequence of \MGNT{tip}/\MGNT{shaft} characters\\
{\color{green}\tt !}\MGNT{vector}: shift object by \MGNT{vector}\\[-1ex]
%%%
\begin{z2col}
\begin{Alltt}
{\color{red}\\newdir\{|>\}\{}%
 {\color{red}!/4.5pt/@\{|\}*:(1,-.2)@^\{>\}*:(1,+.2)@_\{>\}\}}
\\xymatrix\{ A \\ar @\{={\color{red}|>}\} [r] & B \}
\end{Alltt}

\kaidan

\vspace*{3ex}
\hfill
{
\newdir{|>}{%
 !/4.5pt/@{|}*:(1,-.2)@^{>}*:(1,+.2)@_{>}}
\xymatrix{ A \ar @{=|>} [r] & B }
}\!\!\!\!
\end{z2col}\\[2ex]
\begin{z2col}
\begin{Alltt}
\red{\\newdir\{ >\}\{\{\}*!/-5pt/@\{>\}\}}
\\xymatrix\{ A \\ar @\{>->\} @< 2pt> [r]
             \\ar\red{@\{ >->\}} @<-2pt> [r] & B \} 
\end{Alltt}

\kaidan

\vspace*{.1ex}
\hfill{%
\newdir{ >}{{}*!/-5pt/@{>}}
\xymatrix{ A \ar @{>->} @< 2pt> [r]
             \ar @{ >->}@<-2pt> [r] & B } 
}
\end{z2col}\\[2ex]
%%%
{\tt\color{green}\BK SelectTips\{cm\}\{\MGNT{point}\}}: style for Computer Modern fonts\\
{\tt\color{green}\BK SelectTips\{eu\}\{\MGNT{point}\}}: style for Euler fonts\\
\quad \MGNT{point}: default is {\color{red}10}\\
\begin{z2col}
\begin{Alltt}
\\xymatrix@1\{ A \\ar[r]
  |-\{{\color{red}\\SelectTips\{cm\}\{\}}\\object@\{>>\}\}
  |>\{{\color{red}\\SelectTips\{eu\}\{\}}\\object@\{>\}\} & B \}
\end{Alltt}

\kaidan

\vspace*{2ex}
\hfill
\xymatrix@1{ A \ar[r]
  |-{\SelectTips{cm}{}\object@{>>}}
  |>{\SelectTips{eu}{}\object@{>}}
 & B }
\end{z2col}
\newpage
%%%
\centerline{\bf\large \name{S114}{1.14. Manual entry formatting}}
\GOTO{Top}

\vspace*{-3ex}
\begin{Alltt}
\\xymatrix\{
 *{\color{red}\\txt\{A very long and stupid\\\\program\}}
  \\ar[rr]^-\{{\color{red}\\txt\{weird\\\\arrow\}}\}
 &&*{\color{red}\\txt<2pc>\{Com\\-pli\\-cated\\\\Code\}}\}
\end{Alltt}

\vspace*{-2ex}
\centerline{\xymatrix{
 *\txt{A very long and stupid\\program}
  \ar[rr]^-{\txt{weird\\arrow}}
 &&*\txt<2pc>{Com\-pli\-cated\\Code}}}

\begin{z2col}
\begin{Alltt}
\\xymatrix\{
 *=0\{\\bullet\}
 \\ar@/^/[dr]!U|1
 \\ar@/^/[drr]!U|2
 \\ar@/^/[drrr]!U|3 \\
   &*{\color{red}+[F]\\txt\{x\}}
   &*{\color{red}+[F]\\txt\{x\\\\x\}}
   &*{\color{red}+[F]\\txt\{x\\\\x\\\\x\}} \}
\end{Alltt}

\kaidan

\vspace*{2ex}
\hfill
\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{z2col}

\smallskip
\centerline{\bf\large \name{S115}{1.15. Extra entries outside the matrix}}
{\color{green}\tt\BK save \MGNT{t}}: \MGNT{t} is any kind of typesetting\\
{\color{green}\tt\BK restore}: restore the above \MGNT{t} as an extra entry\\[-5ex]
\begin{Alltt}
\\xymatrix\{
 A \\ar@\{-\}[dr]
 &{\color{red}\{\}\\save[]+<3cm,0cm>*\\txt<8pc>\{%
   This is a very big commentary
   but it does not otherwise affect
   the diagram.\}}
   \\ar[l] \\ar[d] {\color{red}\\restore} \\\\
 & B \\ar@\{-\}[r] & C \\ar@\{-\}[r] & D \}
\end{Alltt}
\centerline{
\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 }}

\smallskip
\centerline{\bf\large \name{S116}{1.16. Spacing and rotation}}
{\tt\color{green} \ @=\Dm}: set spacing\\
{\tt\color{green} @R=\dm}: set row spacing\\
{\tt\color{green} @C=\dm}: set column spacing\\
{\tt\color{green} @M=\dm}: set entry default margin\\
{\tt\color{green} @W=\dm}: set entry default width\\
{\tt\color{green} @H=\dm}: set entry default height\\
{\tt\color{green} @L=\dm}: set label margin\\
\quad
They should be put between {\tt\BK xymatrix} and the following {\tt\{}.\\
\quad 
{\tt\color{green}=} can be replaced by {\tt\color{green}+ += - -=}.  Then ``set" is replaced by\\
\quad ``increase" ``increase at most"  ``decrease" ``decrease at most"\\
{\tt\color{green}\BK xymatrixrowsep=\{\Dm\}}: change the default (=2 pt)\\
{\tt\color{green}\BK xymatrixcolsep=\{\dm\}}: same as above for column spacing


\verb|\xymatrix@1|{\color{red}\verb|@=0pt@M=0pt|}%
\verb|{A&B\\C&D}|\hfill\xymatrix@1@=0pt@M=0pt{A&B\\C&D}
\hfill\phantom{.}

\vspace*{-.5ex}
{\tt\color{green} @!\ }: force all spacing equal\\
{\tt\color{green} @!0}: \quad and ignore entry sizes\\
{\tt\color{green} @!R}: force equal row spacing\\
{\tt\color{green} @!C}: force equal column spacing\\
{\tt\color{green} @\MGNT{d} }: rotate towards \MGNT{d}\\
\begin{z2col}
\begin{Alltt}
\\xymatrix{\color{red}@dr@C=1pc}\{
 a \\ar[r]\\ar@\{->>\}[d] 
   & a' \\ar@\{.>>\}[d] \\\\
 b \\ar@\{.>>\}[r]
   & b' \}
\end{Alltt}

\kaidan

\vspace*{-2ex}
\hfill
\xymatrix@dr@C=1pc{
  a \ar[r]\ar@{->>}[d] & a' \ar@{.>>}[d] \\
  b \ar@{.>>}[r]       & b' }
\quad\phantom{.}
\end{z2col}

\vspace*{-1ex}
\centerline{\bf\large \name{S117}{1.17. Entry style}}
\GOTO{Top}
{\color{green}\tt\BK objectstyle}: entry style 
(default: mathmode in text style)\\
{\color{green}\tt\BK labelstyle }: label syle\\
{\color{green}\tt\BK entrymodifiers=\{\MGNT{modifier}\}}: apply \MGNT{modifier} to all entries\\
%%
\begin{z2col}
\begin{Alltt}
$\\left(
 {\color{red}\\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{Alltt}

\kaidan

\vspace*{1ex}
\hfill
$\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{z2col}

\medskip
\begin{z2col}
\begin{Alltt}
{\color{red}\\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{Alltt}

\kaidan

\vspace*{2ex}
\hfill
{\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{z2col}
\newpage
%%%%
\centerline{\bf\large \name{S118}{1.18. Naming for later use as targets}}
\GOTO{Top}
\textcolor{magenta}{\it t}{\tt\color{green}="}\MGNT{name}{\color{green}\tt"}: 
give {\tt"\MGNT{name}"} to \MGNT{t}arget to be referred it later\\
\begin{z2col}
\begin{Alltt}
\\xymatrix\{
 A \\ar[r] ^a{\color{red}="a"} 
  & B \\ar[r] ^b{\color{red}="b"} & C
    \\ar @/^/ {\color{red}"a"};{\color{red}"b"} \}
\end{Alltt}

\kaidan

\vspace*{1ex}
\hfill
\xymatrix{
 A \ar[r] ^a="a" & B \ar[r] ^b="b" & C
  \ar @/^/ "a";"b" }
\end{z2col}

\smallskip
\centerline{\bf\large \name{S119}{1.19. Grouping objects}}
\MGNT{t}{\color{green}\tt.}\MGNT{s}: marge \MGNT{t} with simple \MGNT{s}\\
{\tt\color{green}\{\MGNT{t}\}}: make \MGNT{t} simple\\[-3ex]
\begin{Alltt}
\\xymatrix @R=1pc \{
 1,1 & 1,2 & 1,3 & 1,4 & 1,5 \\\\
 2,1 & 2,2 & 2,3 & 2,4 & 2,5
 \\save {\color{red}"1,2"."2,4"}*[F]\\frm\{\}
  \\ar{\color{red}"1,1"} \\ar{\color{red}"2,1"} \\ar{\color{red}"1,5"} \\ar{\color{red}"2,5"}
 \\restore \}
\end{Alltt}
\centerline{
\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 }
}
\begin{Alltt}
{\color{red}\\def\\g#1\{\\save
 [].[dr]!C="g#1"*[F]\\frm\{\}\\restore\}}%
\\xymatrix\{
 {\color{red}\\g1} A\\ar[r]&B\\ar[d]&{\color{red}\\g2} A'\\ar[r]&B'\\ar[d]\\\\
     C\\ar[u]&D\\ar[l]&    C'\\ar[u]&D'\\ar[l]
 \\ar @\{.>\}  {\color{red}"g1"} ;"1,4"
 \\ar @\{-->\} "2,1";{\color{red}"g2"} \}
\end{Alltt}
\centerline{
\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" }
}

\medskip
\centerline{\large\bf \name{S120}{1.20. More examples}}
\begin{z2col}
\begin{Alltt}
\\everyentry=\{\{\\the{\color{red}\\Row},\\the{\color{red}\\Col}\}\}
\\xymatrix {\color{red}@*[F]@*[o]} \{
 \{\} \\POS[];[r]**\\dir\{..\} & \\\\
 \{\} \\POS[];[ur]**\\dir\{--\} \}
\end{Alltt}
\kaidan

\hfill
{\everyentry={{\the\Row,\the\Col}}
\xymatrix @*[F]@*[o] {
 {} \POS[];[r]**\dir{..} & \\
 {} \POS[];[ur]**\dir{--} }
}
\end{z2col}

\begin{z2col}
\begin{Alltt}
\\entrymodifiers=\{=<1pc>[o][F-]\}
\\xymatrix @ur \{
 A \\save[];[r] **\\dir{-},
        [];[dr]**\\dir{-},
        [];[d] **\\dir{-}\\restore
   & B \\\\
 C & D \}
\end{Alltt}

\kaidan

\vspace*{.5ex}
\hfill
{\entrymodifiers={=<1pc>[o][F-]}
\xymatrix @ur {
 A \save[];[r] **\dir{-},
        [];[dr]**\dir{-},
        [];[d] **\dir{-}\restore
   & B \\
 C & D }}
\end{z2col}

\begin{z2col}

\medskip
\begin{Alltt}
\\xymatrix @W=3pc @H=1pc @R=0pc @*[F-] \{%
 : \\save+<-4pc,1pc>*\\hbox\{\\it root\}
     \\ar[]
   \\restore \\\\
 \{\\bullet\}
   \\save*\{\}
    \\ar`r[dd]+/r4pc/`[dd][dd]
   \\restore \\\\
 \{\\bullet\}
   \\save*\{\}
    \\ar`r[d]+/r3pc/`[d]+/d2pc/
       `[uu]+/l3pc/`[uu][uu]
   \\restore \\\\
   1 \}
\end{Alltt}

\kaidan

\vspace{10ex}
\hfill
\xymatrix @W=3pc @H=1pc @R=0pc @*[F-] {%
 : \save+<-4pc,1pc>*\hbox{\it root}
     \ar[]
   \restore \\
 {\bullet}
   \save*{}
    \ar`r[dd]+/r4pc/`[dd][dd]
   \restore \\
 {\bullet}
   \save*{}
    \ar`r[d]+/r3pc/`[d]+/d2pc/
       `[uu]+/l3pc/`[uu][uu]
    \restore \\
   1 }\!\!\!\!
\end{z2col}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\centerline{\bf\tt\Large Xy-pic\quad Kernel}

%%%
\keyin{\xy    \endxy}{\tt\BK xy \MGNT{pos} \MGNT{decor} \BK endxy}\\
\keyin{\begin{xy} 0d 0a 0d 0a\end{xy}}%
{\tt\BK begin\{xy\} \MGNT{pos} \MGNT{decor} \BK end\{xy\}}
\GOTO{Top}
\centerline{\bf\large \name{S21}{2.1. Positions}}
\rm
A \name{pos}{position} may represent a rectangular region with a 
reference point in the rectangular.


\vspace*{-2ex}
\begin{tabbing}
\hspace{2.2cm}\=\hspace{3cm}\=\kill
\quad\MGNT{c}: current position\\
\quad\MGNT{p}: previous position\\
\quad{\tt\color{green}<\MGNT{$X$-dimen},\MGNT{$Y$\!\begin{xy}  \xy  \endxy\end{xy}-dimen}>}: 
 absolute vector\\
\quad{\tt\color{green}(\MGNT{$x$-factor},\MGNT{$y$-factor})}\begin{xy}

\end{xy}: 
 relative vector (coordinate)\\
\qquad
 $(x,y) = 
 \langle X_o+x\times X_x + y\times Y_x, Y_o+x\times X_y + y\times Y_y\rangle$\\
\qquad
 $\langle X_o,Y_o\rangle$\>\quad\RED{origin}
 	(default: $\langle 0\,\text{pt},0\,\text{pt}\rangle$)\\
\qquad
 $\langle X_x,Y_x\rangle$\>\quad\RED{$x$-base}
    (default: $\langle 1\,\text{mm},0\,\text{mm}\rangle$)\\
\qquad
 $\langle X_y,Y_y\rangle$\>\quad\RED{$y$-base}
   (default: $\langle 0\,\text{mm},1\,\text{mm}\rangle$)\\
\pos{\tt\color{green}:}\cod\>
 \RED{origin}\La\MGNT{p}, 
 \RED{$x$-base}\La\cod$-$\RED{origin}\\
\>\quad\RED{$y$-base}\La$\langle -Y_x, X_x\rangle$, \MGNT{c}\La\cod\\
\pos{\tt\color{green}::}\cod
\>\RED{$y$-base}\La$\cod-$\RED{origin}, \MGNT{c}\La\cod\\
\pos{\color{green}$\pm$}\cod
\>\MGNT{c}\La\pos$\pm$\cod\qquad(region is kept)\\
\pos{\tt\color{green}!}\cod
\>\MGNT{c}\La\pos, skew \MGNT{c} by \cod\qquad(move reference point)\\
\pos{\tt\color{green}.}\cod
\>\MGNT{c}\La\pos\ with covering \cod\qquad(shape changes)\\
\pos{\tt\color{green},}\cod
\>\MGNT{c}\La\pos, then \MGNT{c}\La\cod\\
\pos{\tt\color{green};}\cod
\>\MGNT{c}\La\pos, swap \MGNT{p} \MGNT{c}, \MGNT{c}\La\cod
%\ (\MGNT{c}\La\MGNT{p} without \cod)
\\
\pos{\tt\color{green}*}\obj
\>\MGNT{c}\La\pos, drop (type set) \obj\ at \MGNT{c}\\
\pos{\tt\color{green}**}\obj
\>\MGNT{c}\La\pos, connect using \obj\\
\pos{\tt\color{green}?}\place
\>\MGNT{c}\La\pos, \MGNT{c}\La \place\\
\pos{\tt\color{green}@}\stack
\>\MGNT{c}\La\pos, do \stack\/ing\\
\pos{\tt\color{green}=}\sav
\>\MGNT{c}\La\pos, do \sav\!ing 
(Sometimes \sav\ is \green{\tt"\ID"})\\[1ex]
%%
One of the following is recognized as \name{cod}{\cod}\\
\ {\tt\color{green}\{\pos\ \MGNT{decor}\}}
\>\qquad \MGNT{c} resulting from interpreting the group\\
\ {\tt\color{green}"\ID"}
\>\qquad restore what was saved as \ID\\
\ \MGNT{p}
\>\qquad \MGNT{p}\\
\ {\tt\color{red} x y}
\>\qquad axis intersection with the line through \MGNT{p} \MGNT{c}\\
\ {\tt\color{green}s{\color{cyan}digit}\ s\{{\color{cyan}num}\}}
\>\qquad stack position (one) {\color{cyan}digit} or {\color{cyan}num} below the top\\
%%
or the following \name{vector}{\vector\/s}\\[1ex]
\ \RED{$0$} or {\tt\color{green}<\MGNT{$X$\!-dimen},\MGNT{$Y$\!-dimen}>} or {\tt\color{green}(\MGNT{$x$-factor},\MGNT{$y$-factor})}\\
\ {\tt\color{green}<\Dm>}
\>= {\tt\color{green}<\dm,\dm>}\\
\RED{\ \tt L R D U}
\>\qquad offset to left,\ldots\\
\RED{\ \tt CL CR CD CU C}
\>\qquad offset to center of left side,\ldots\\
\RED{\ \tt LD RD LU RU}
\>\qquad offset to left/down orner,\ldots\\
\RED{\ \tt E P}
\>\qquad offset to nearest/proportional edge point to \MGNT{p}\\
\ \RED{\tt L}{\color{green}\tt(\FAC)} etc.
\>\qquad the above offset multiplied with \FAC\\
\ {\tt\color{green}a({\color{cyan}num})}
\>\qquad angle in current base $(\cos\text{{\color{cyan}num}}^o,\sin\text{{\color{cyan}num}}^o)$\\
\>\qquad {\tt\color{green}a(90)}=$(0,1)$.  {\color{cyan}num} is an integer.\\
\ {\tt\color{green}/\!\dr\ \dm/}
\>\qquad\qquad vector \Dm(default: 0.5pt) in \dr:\\
\>\qquad $\langle Z\cos\alpha, Z\cos\alpha\rangle$ 
if $Z=$\dm\ and $\alpha=$\dr\\
\>\qquad Sometimes \dm\ or \dr\ is omitted\\[1ex]
%%%
Moreover \name{place}{\MGNT{place}} is one of the followings\\
\ \ {\tt\color{green}<\MGNT{place}}
\>\qquad shave $(0)$ to edge of \MGNT{p}, \MGNT{f}\La0\\
\ \ {\tt\color{green}>\MGNT{place}}
\>\qquad shave $(1)$ to edge of \MGNT{c}, \MGNT{f}\La1\quad
(\MGNT{c} {\tt\green{?\,>}} equals \MGNT{c} {\tt\green{+}\,\red{E}})\\
\ \ {\tt\color{green}(\FAC)}\MGNT{place}
\>\qquad\MGNT{f}\La\FAC\\
\ \ {\tt\color{green}/\!\dm/}
\>\qquad pick place and \MGNT{slide} further by \Dm\/\\
\ \ {\tt\color{green}!\{\pos\}}
\>\qquad intercept with line setup by \pos\/
({\tt\color{green}/\!\Dm/}{\scriptsize may follow})\\
%\ \ {\tt\color{green}!\{\pos\}/\!\dm/}
%\>\qquad shift the above by \dm further along connection\\
Here \MGNT{f} is a factor to multiply the offset vector in the last.
\end{tabbing}

\vspace*{-2ex}
\begin{z2col}
\begin{Alltt}
\\xy
 \red{0}*\{DL\} ,\red{+/r1cm/}*\{DR\}
 , \red{<0cm,1cm>}*\{UL\} ,\red{<1cm,1cm>}*\{UR\}
 , \red{(5,5)}*\{5,5\}
\\endxy
\end{Alltt}
\kaidan

\vspace*{0.1ex}
\hfill\hfill
\xy
 0*{DL} ,+/r1cm/*{DR}
 , <0cm,1cm>*{UL} ,<1cm,1cm>*{UR}
 , (5,5)*{5,5}
\endxy
\hfill\phantom{.}
\end{z2col}\\[1ex]
%%%
\begin{z2col}
\begin{Alltt}
\\xy \red{0;<5mm,0mm>:}
 \red{0}*\{DL\} ,\red{(2,0)}*\{DR\} ,\red{<0cm,1cm>}*\{UL\} ,\red{(2,2)}*\{UR\}
 , \red{0+(4,0)="c"}*\{\\mathtt C\}
 , \red{"c"+(2,2)="b"}*\{\\mathtt B\}
 , \red{"b"-<1cm,0cm>}*\{\\mathtt A\}
 , \red{"b"-(0,2)}*\{\\mathtt D\} 
\\endxy
\end{Alltt}

\kaidan

\vspace*{5ex}
\hfill
\xy 0;<5mm,0mm>:
 0*{DL} ,(2,0)*{DR} ,<0cm,1cm>*{UL} ,(2,2)*{UR}
 , 0+(4,0)="c"*{\mathtt C}
 , "c"+(2,2)="b"*{\mathtt B}
 , "b"-<1cm,0cm>*{\mathtt A}
 , "b"-(0,2)*{\mathtt D} 
\endxy
\end{z2col}\\[1ex]
%%%
\begin{z2col}
\begin{Alltt}
\\begin\{xy\}
 \red{0}*\{DL\}\red{;<1cm,1cm>}*\{UR\}\red{**}@\{-\},
 \red{<0cm,1cm>}*\{UL\}\red{;<1cm,0cm>}*\{DR\}\red{**}@\{=\}
\\end\{xy\}
\end{Alltt}

\kaidan

\vspace*{-2ex}
\hfill
\begin{xy}
 0*{DL};<1cm,1cm>*{UR}**@{-},
 <0cm,1cm>*{UL};<1cm,0cm>*{DR}**@{=}
\end{xy}
\end{z2col}\\[1ex]
%%%
\begin{z2col}
\begin{Alltt}
\\begin\{xy\}
 0*\green{++[o][F]}\{DL\}\red{;}<2cm,1cm>*\green{+[F]}\{UR\}\red{**}@\{.\}
 \red{?<}*@\{<<\} \red{?>>>>}*@\{>\}
 \red{?(0.5)}*\green{!/_3mm/}\{\\Omega\}
\\end\{xy\}
\end{Alltt}

\kaidan

\vspace*{.5ex}
\hfill
\begin{xy}
 0*++[o][F]{DL};<2cm,1cm>*+[F]{UR} **@{.}
 ?<*@{<<} ?(0.5)*!/_3mm/{\Omega} ?>>>>*@{>}
\end{xy}\!\!\!\!
\end{z2col}\\[1ex]
%%%
\begin{z2col}
\begin{Alltt}
\\begin\{xy\}
 *\green{=<3cm,1cm>}\\txt\{Box\}*\green{\\frm\{-\}}
 \red{!U!R(.5)} *\green{\\frm\{..\}}*\{\\bullet\}
\\end\{xy\}
\end{Alltt}

\kaidan

\vspace*{.1ex}
\hfill
\begin{xy}
 *=<3cm,1cm>\txt{Box}*\frm{-}
 !U!R(.5) *\frm{..}*{\bullet}
\end{xy}
\end{z2col}\\[.5ex]
%%%
\begin{z2col}
\begin{Alltt}
\\begin\{xy\}
 <1cm,0cm>:
 (0,0)*\green{=0}{+}\red{="+" ;}    {\color{cyan}% set size 0}
 (2,1)*\green{=0}\{\\times\}\red{="*"} \red{**}@\{.\} ,
 (1,0)*\green{+}\{A\} \red{;} (2,2)*\green{+}\{B\} \red{**}@\{-\}
 \red{?!\{"+";"*"\}} *\{\\bullet\} 
\\end\{xy\}
\end{Alltt}
\kaidan

\vspace*{-1ex}
\hfill
\xy <1cm,0cm>:
 (0,0)*=0{+}="+" ;
 (2,1)*=0{\times}="*" **@{.} ,
 (1,0)*+{A} ; (2,2)*+{B} **@{-}
 ?!{"+";"*"} *{\bullet} 
\endxy
\end{z2col}\\[.5ex]
%%
\begin{z2col}
\begin{Alltt}
\\begin\{xy\}
 (0,0) ="A" *\green{\\cir<1pt>}\{\} *\green{+!DR}\{A\},
 (7,10)="B" *\green{\\cir<1pt>}\{\} *\green{+!DR}\{B\},
 (13,8)="C" *\green{\\cir<1pt>}\{\} *\green{+!DL}\{C\},
 (15,4)="D" *\green{\\cir<1pt>}\{\} *\green{+!DL}\{D\},
 \red{\{"A";"B":"C";"D",x\}="I"} *\green{\\cir<3pt>}\{\},
 \red{"I";"A"**\{\} +/1pc/;-/1pc/ **}@\{..\},
 \red{"I";"D"**\{\} +/1pc/;-/1pc/ **}@\{..\}
\\end\{xy\}
\end{Alltt}
\kaidan

\vspace{2ex}
\hfill
\begin{xy}
 (0,0) ="A" *\cir<1pt>{} *+!DR{A},
 (7,10)="B" *\cir<1pt>{} *+!DR{B},
 (13,8)="C" *\cir<1pt>{} *+!DL{C},
 (15,4)="D" *\cir<1pt>{} *+!DL{D},
 {"A";"B":"C";"D",x}="I" *\cir<3pt>{},
 "I";"A"**{} +/1pc/;-/1pc/ **@{..},
 "I";"D"**{} +/1pc/;-/1pc/ **@{..}
\end{xy}\!\!\!\!\!\!
\end{z2col}\\
\quad {\tt\red{"A";"B":}}\ \  $x$-axis \La\ $\overrightarrow{AB}$\\
\quad {\tt\red{"C";"D"}}\quad \MGNT{c} \La\ \red{\tt "C"} and \MGNT{p} \La\ 
\red{\tt "D"}\\
\quad {\tt\red{, x}}\qquad\quad\,get intersection of 
$\overrightarrow{\text{\MGNT{pc}}}$ and $x$-axis

\medskip
\centerline{\bf\large \name{S22}{2.2. Stack}}
\GOTO{Top}
The \MGNT{stack} is used to store {\cod}s.\\[-5ex]

\begin{tabbing}
\hspace{2.2cm}\=\hspace{3cm}\=\kill
\green{\tt @+}\cod \>push \cod\\
\green{\tt @-}\cod \>c\La\cod\ \ then pop\\
\green{\tt @=}\cod \>load stack with \cod\\
\green{\tt @@}\cod \>do \cod\ \ for \MGNT{c}\La\MGNT{stack}\\
\green{\tt @i}     \>initialize\\
\green{\tt @(}     \>enter new frame\\
\green{\tt @)}     \>leave current frame\\
\quad After saving \MGNT{c}\/\ with \green{\tt$\cdots$="\ID"}\\
\green{\tt @:"\ID"}    \> \green{\tt"\ID"} restores current base\\
\green{\tt @\cod"\ID"} \> \green{\tt"\ID"} reinterprets \cod\\
\green{\tt @@"\ID"}    \> \green{\tt@="\ID"} reloads this stack\\
\end{tabbing}

\vspace*{-4ex}
\begin{z2col}
\begin{Alltt}
\\begin\{xy\}
 \red{@=}\{(0,-10),(10,3),(20,-5)\}
 \red{@@}\{*\{P\}\}
\\end\{xy\}
\end{Alltt}

\kaidan

\vspace*{.1ex}
\hfill
\begin{xy}
 @={(0,-10),(10,3),(20,-5)}
 @@{*{P}}
\end{xy}
\end{z2col}
\begin{z2col}
\begin{Alltt}
\\begin\{xy\}
 \red{@=}\{(0,-10),(10,3),(20,-5)\}
 , \red{s0="prev"} \red{@@}\{;\red{"prev"};**@\{-\}\red{="prev"}\}
\\end\{xy\}
\end{Alltt}

\kaidan

\vspace{.1ex}
\hfill
\begin{xy}
 @={(0,-10),(10,3),(20,-5)}
 , s0="prev" @@{;"prev";**@{-}="prev"}
\end{xy}
\end{z2col}\\[1ex]

\begin{z2col}
\begin{Alltt}
\\begin\{xy\}
  \red{=}\{.\{+DL(2)\}.\{+UR(2)\}\}\red{"dbl"}
  ,*\green{+<2pc,1pc>}\{+\}*\green{\\frm\{-\}},\red{"dbl"}*\green{\\frm\{--\}}
\\end\{xy\}
\end{Alltt}
\kaidan

\vspace*{.1ex}
\hfill
\begin{xy}
  ={.{+DL(2)}.{+UR(2)}}"dbl"
  , *+<2pc,1pc>{+}*\frm{-}, "dbl"*\frm{--}
\end{xy}\!\!\!\!
\end{z2col}

\centerline{\bf\large \name{S23}{2.3. Objects}}
\name{obj}{{\obj}ects} are used to actual type setting by 
\green{\tt*} or \green{\tt**}at \pos.  
They are \MGNT{modifier} \obj\/\ or \MGNT{objectbox}. 
Here \MGNT{objectbox} is one of the followings.\\[-4ex]
\begin{tabbing}
\hspace{2.6cm}\=\kill
\green{\tt\{\MGNT{txt}\}}
\>\qquad build default object(reference point is \red{\tt C}enter)\\
\MGNT{library object} or \green{\tt@\Dir}\\
\green{\tt\{\MGNT{\TeX\ box}\}} 
 \>\qquad usual \TeX\ box such as \red{\tt\BK hbox}\\
\green{\tt\BK object}\obj 
 \>\qquad wrap up \obj\/\ as a final object box, which can\\
 \>\qquad be used outside \Xy-pic\\
\green{\tt\BK composit\{\obj*\obj*$\cdots$\}}
\qquad build composit object box\\
\green{\tt\BK xybox\{\pos\/\ \MGNT{dec}\}}
\>\qquad package entire \Xy-picture 
as \obj\\[1ex]
%%%%%%%%%
\MGNT{modifiers} are one of the followings\\
\ \green{\tt!\MGNT{vector}} 
\>\obj\/ has reference point shifted by \MGNT{vector}(See \href{#S21}{\S2.1})\\
\ \green{\tt !}
\> \obj\/ has its original reference point reinstalled\`\NEXT\\
\ \name{addop}{\MGNT{add-op}} \MGNT{size}
\> \MGNT{add-op} is one of \red{\tt+ - = += -=} (grow, shrink,\`\BACK \\
\> set, grow to, shrink to) and \MGNT{size} is a rectangle\\
\> covering the \MGNT{vector} in \href{#S21}{\S2.1}(\MGNT{size} may be omitted)\\
\ \red{\tt h\quad i}
\> hidden or invisible\\
\ \green{\tt[\MGNT{shape}]}
\> \obj\/ is given the specified \MGNT{shape} (={\tt\color{yellow}empty \color{red}. o} etc)\\
\ \green{\tt[=\MGNT{shape}]}
\> define \MGNT{shape} to reestablish current object style\\
\ \dr
\> set current direction for this \obj. They are\\
\quad\ \green{\tt v}\MGNT{vector}
\>\qquad direction of \MGNT{vector}\\
\quad\ \green{\tt v\{\MGNT{pos} \MGNT{decor}\}}
\>\qquad direction from \MGNT{p} to \MGNT{c} after \MGNT{pos} \MGNT{decor}\\
\quad\ \green{\dr:\MGNT{vector}}\quad vector relative to \dr\\
\quad\ \dr\green{\tt\string_}\ \ 
\dr\green{\tt\string^}\quad (clock/anticlock)wise to \dr\\
\quad\ \red{\tt l r d u}
\>\qquad left, right, down, up diagonal (called \name{diag}{\MGNT{diag}})\\
\quad\ \red{\tt ld rd lu ru}
\>\qquad left/down,\ldots diagonal (also called \MGNT{diag})\\[1ex]
If \MGNT{size} is omitted in the above,\\
\quad\red{\tt +}\>
\red{\tt+<2$\times$\MGNT{objectmargin}>}\\
\quad\red{\tt -}\>
\red{\tt-<2$\times$\MGNT{objectmargin}>}\\
\quad\red{\tt =}\>
\red{\tt=<\MGNT{objectwidth},\MGNT{objectheight}>}\\
\quad\red{\tt+=}\>
\red{\tt+=<$\min({\mathtt L_c+\mathtt R_c, \mathtt D_c+\mathtt U_c})$>}\\
\quad\red{\tt-=}\>
\red{\tt-=<$\max(\mathtt L_c+\mathtt R_c, \mathtt D_c+\mathtt U_c)$>}\\[1ex]
Default values can be changed\\
\quad\green{\tt\BK objectmargin\goto{addop}{\MGNT{add-op}}\{\Dm\}}\\
\quad
\quad\green{\tt\BK objectwidth}
\quad\green{\tt\BK objectheight} are same as above\\
\end{tabbing}

\vspace*{-4ex}
\centerline{\bf\large \name{S24}{2.4. Decorations}}
\GOTO{Top}
\MGNT{decor}ators are sequences of commands, which are followings. 

\vspace*{-5ex}
\begin{tabbing}
\hspace{2.5cm}\=\\
\green{\tt\BK save} \pos
  \> save state, then do \pos\\
\green{\tt\BK restore}
  \> restore state save by matching \green{\tt\BK save}\\
\green{\tt\BK POS} \pos
  \> interpret \pos\\
\green{\tt\BK aftrePOS\{\MGNT{decor}\}} \pos
  \qquad interpret \pos\/ and then perform \MGNT{decor}\\
\green{\tt\BK drop} \obj
  \> drop \obj\/ect as the \pos\/ \green{\tt *} operation\\
\green{\tt\BK connect} \obj
  \> connect \obj\/ect as the \pos\/ \green{\tt **} operation\\
\green{\tt\BK relax} \obj
  \> do nothing\\
\MGNT{\TeX commands}\\
\green{\tt\BK xyverbose\quad \BK xytracing\quad \BK xyquite}\qquad
tracing commands\\
\green{\tt\BK xyignore\{\MGNT{pos} \MGNT{decor}\}}\qquad \ \!
ignore \Xy-pic code\\
\green{\tt\BK xycompile\{\MGNT{pos} \MGNT{decor}\}}\qquad
compile to file \MGNT{prefix} \MGNT{no}.xyc\\
\green{\tt\BK xycompileto\{\MGNT{name}\}\{\MGNT{pos} \MGNT{decor}\}}\qquad
compile to file \MGNT{name}.xyc
\end{tabbing}

\vspace*{-2ex}
\begin{z2col}
\begin{Alltt}
\\def\\ToPOS\{\red{\\save\\afterPOS}\{%
 \red{\\POS}**\{\}?>*@2\{>\}**@\{-\}\red{\\restore}\};p,\}
\\xy *\{A\} \\ToPOS +<10mm,2mm>\\endxy
\end{Alltt}
\kaidan

\vspace*{.1ex}
\hfill
\def\ToPOS{\save\afterPOS{%
 \POS**{}?>*@2{>}**@{-}\restore};p,}
\xy *{A} \ToPOS +<10mm,2mm>\endxy
\end{z2col}

%\vspace*{1ex}
\newpage
\centerline{\large\bf \name{S25}{2.5. Kernel object library}}

\vspace*{-2ex}
\begin{tabbing}
\hspace{2.2cm}\=\hspace{2.2cm}\=\kill
\green{\tt\BK dir\MGNT{variant}\{\MGNT{main}\}}
\quad \green{\MGNT{variant}\{\MGNT{main}\}\/} is called 
\name{dir}{\DIR\/ectional}\\
\quad
\MGNT{variant} is empty or one of \ \red{\tt\^ \_ 2 3}, 
\MGNT{main} is in the list in \href{#S17}{\S1.7}.\\
\green{\tt\BK newdir\MGNT{variant}\{\MGNT{directional}\}\{\MGNT{composite}\}}\quad See \href{#S113}{\S1.13}.\\
\green{\tt\BK cir<\MGNT{vector}>\CIR\}}\quad arc defined by \CIR\/ 
and \MGNT{vector}\\
\qquad \MGNT{radius} is $x$-component of \MGNT{vector}\quad
(default $\Rightarrow$ $\mathtt R_c$) 
and \name{cir}{\MGNT{cir}}\ is\\
\MGNT{\Diag1} \MGNT{orient} \MGNT{\Diag2}\quad
tangent direction corresponds to \Diag\\
\qquad partial circle from \MGNT{diag1} to \MGNT{diag2} in the \MGNT{orient}\/ation\\
\qquad (default $\Rightarrow$ a full circle)\\
\qquad \name{orient}{\MGNT{orient}\/ation}
 is {\color{red}\verb|^|} (anticlockwise) or 
{\color{red}\verb|_|} (clockwise).\\
\green{\tt\BK txt<\MGNT{width}>\MGNT{style}\{\TEXT\}}
\end{tabbing}

\vspace*{-2ex}
\begin{z2col}[2.5cm]
\begin{Alltt}
\\begin\{xy\}
 *\{+\}; p+(6,3)*\{+\} **\{\} ?(1)
 *\red{@\{-\}} *!/-5pt/^\red{\\dir\{-\}}
 *^\red{\\dir\{-\}} *!/^-5pt/\red{\\dir\{-\}}\\end\{xy\}
\end{Alltt}

\kaidan

\vspace*{2ex}
\begin{xy}
 *{+}; p+(6,3)*{+} **{} ?(1)
 *@{-} *!/-5pt/^\dir{-}
 *^\dir{-} *!/^-5pt/\dir{-}\end{xy}
\end{z2col}%\\[1ex]

\begin{z2col}[2.8cm]
\begin{Alltt}
\\xy*\red{\\cir<4pt>\{\}}\\endxy
\\xy*\red{\\cir<4pt>\{l^r\}}\\endxy
\\xy*\red{\\cir<4pt>\{l_r\}}\\endxy
\\xy*\red{\\cir<4pt>\{dl^u\}}\\endxy
\\xy*\red{\\cir<4pt>\{dl_u\}}\\endxy
\\xy*\red{+{M}*\\cir\{dr_ur\}}\\endxy

\end{Alltt}
\kaidan

\vspace*{-2ex}
\xy*\cir<4pt>{}\endxy

\xy*\cir<4pt>{l^r}\endxy

\xy*\cir<4pt>{l_r}\endxy

\xy*\cir<4pt>{dl^u}\endxy

\xy*\cir<4pt>{dl_u}\endxy

\xy*+{M}*\cir{dr_ur}\endxy
\end{z2col}

\vspace*{-1.5ex}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\centerline{\bf\tt\Large Xy-pic\quad Extensions}

%\medskip
\centerline{\large\bf \name{S31}{3.1. Curve, Circle and Ellipse}}
\GOTO{Top}
\keyin{\xyoption{curve}}{{\tt\BK xyoption\{curve\}}}\\
This option provides the typeset spline curved connections using arbitrary directional objects.\hfill\ToDef{Dcurve}

\vspace*{-2.5ex}
\begin{tabbing}
\hspace*{3.5cm}\=\kill
\green{\tt**\BK crv\{\MGNT{poslist}\}}
 \> curved connection (\MGNT{poslist} is a list of \MGNT{pos}\/itions)\\
\green{\tt**\BK crvs\{\dr\}}
 \> get \MGNT{poslist} from the stack\\
\green{\tt\BK curve\{\MGNT{poslist}\}}
 \> as a \MGNT{decor}\/ation 
(\green{\tt\BK curve} equals \green{\BK connect\BK crv})\\
%\quad\MGNT{poslist}\> a list of valid \MGNT{pos}\/itions.\\
\#\MGNT{poslist}=\,0  \> straight connection\\
\qquad\qquad \ \,1          \> single-segment B\a{'}ezier\\
\qquad\qquad \ \,2          \> cubic spline\\
\qquad\ \ \ \ \ $\ge$3     \> cubic B-spline construction\`\NEXT
\end{tabbing}

\vspace*{-5ex}
\begin{Alltt}
\\begin\{xy\}  \red{(0,20)}*[o]+{A}\red{;(60,0)}*[o]+\{B\}="B"
            \red{**\\crv\{\}} \\POS?(.4)*_+!UR\{0\},"B"
            \red{**\\crv\{(30,30)\}} \\POS?*^+!D\{1\},"B"
            \red{**\\crv\{(20,40)&(40,40)\}} \\POS?*^+!D\{2\},"B"
            \red{**\\crv\{(10,20)&(30,20)&(50,-20)&(60,-10)\}}
              \\POS?*+^!UR\{4\}\\end\{xy\}
\end{Alltt}

\xy
 (0,20)*[o]+{A};(60,0)*[o]+{B}="B"
 **\crv{} \POS?(.4)*_+!UR{0},"B"
 **\crv{(30,30)} \POS?*^+!D{1},"B"
 **\crv{(20,40)&(40,40)} \POS?*^+!D{2},"B"
 **\crv{(10,20)&(30,20)&(50,-20)&(60,-10)}
 \POS?*+^!UR{4}
\endxy

\vspace*{-29ex}
\hfill
{\def\ssz#1{\hbox{$_{^{#1}}$}}
\xy
 (0,0)*+{A};(30,-10)*+{B}="B",**\dir{-},
 "B"**\crv{(5,20)&(20,25)&(35,20)}
 ?<(0)*\dir{<}="a" ?>(1)*\dir{>}="h"
 ?(.1)*\dir{<}="b" ?(.9)*\dir{>}="i"
 ?(.2)*\dir{<}="c" ?(.8)*\dir{>}="j"
 ?(.3)*\dir{<}="d" ?(.7)*\dir{>}="k"
 ?(.4)*\dir{<}="e" ?(.6)*\dir{>}="l"
 ?(.5)*\dir{|}="f",
 "a"*!RC\txt{\ssz{(<)}};
  "h"*!LC\txt{\ssz{\;(>)}},**\dir{.},
 "b"*!RD{\ssz{.1}};
  "i"*!L{\ssz{\;.9}},**\dir{-},
 "c"*!RD{\ssz{.2}};
  "j"*!L{\ssz{\;.8}},**\dir{-},
 "d"*!RD{\ssz{.3}};
  "k"*!L{\ssz{\;.7}},**\dir{-},
 "e"*!RD{\ssz{.4}};
  "l"*!LD{\ssz{.6}},**\dir{-},
 "f"*!D!/^-3pt/{\ssz{.5}}
\endxy
}

\vspace*{4ex}
\begin{Alltt}
\\def\\ssz#1\{\\hbox\{$_\{^\{#1\}\}$\}\}
\\begin\{xy\}
 \red{(0,0)}*+\{A\}\red{;(30,-10)}*+\{B\}="B",**\\dir\{-\},
 "B"\red{**\\crv\{(5,20)&(20,25)&(35,20)\}}
 ?<(0)*\\dir\{<\}="a" ?>(1)*\\dir\{>\}="h" ?(.1)*\\dir\{<\}="b"
 ?(.9)*\\dir\{>\}="i" ?(.2)*\\dir\{<\}="c" ?(.8)*\\dir\{>\}="j"
 ?(.3)*\\dir\{<\}="d" ?(.7)*\\dir\{>\}="k" ?(.4)*\\dir\{<\}="e"
 ?(.6)*\\dir\{>\}="l" ?(.5)*\\dir\{|\}="f",
 "a"*!RC\\txt\{\\ssz\{(<)\}\} 
                ; "h"*!LC\\txt\{\\ssz\{\\;(>)\}\},**\\dir\{.\},
 "b"*!RD\{\\ssz\{.1\}\}; "i"*!L\{\\ssz\{\\;.9\}\},**\\dir\{-\},
 "c"*!RD\{\\ssz\{.2\}\}; "j"*!L\{\\ssz\{\\;.8\}\},**\\dir\{-\},
 "d"*!RD\{\\ssz\{.3\}\}; "k"*!L\{\\ssz\{\\;.7\}\},**\\dir\{-\},
 "e"*!RD\{\\ssz\{.4\}\}; "l"*!LD\{\\ssz\{.6\}\}, **\\dir\{-\},
 "f"*!D!/^-3pt/\{\\ssz\{.5\}\}
\\end\{xy\}
\end{Alltt}

\vspace*{-5ex}
\begin{tabbing}
\hspace{2.5cm}\=\kill
\green{\tt\BK curve\MGNT{modifier}\{\MGNT{curve-object} \MGNT{poslist}\}}\\
\ \ \MGNT{modifier} (default \red{\tt\string~C}) is \green{\tt\string~}\!\MGNT{curve-option} with \MGNT{curve-option}:\\
\red{\tt p P l L c C}
\> only control \red{\tt p}oints, jointed by \red{\tt l}ines, 
or \red{\tt c}urve\\
%\> Upper case version uses \MGNT{curve-object}\\
\> Lower case version ignores \MGNT{curve-object}\\
\red{\tt pc pC Pc PC}
\> control \red{\tt p}oints and \red{\tt c}urves\\
\red{\tt lc lC Lc LC}
\> \red{\tt l}ines joining control points and \red{\tt c}urves\\
\red{\tt cC}
\> plot \red{\tt c}urve twice\\
\ \ 
\MGNT{curve-object} is empty or a sequence of \ \green{\tt\string~*\obj} \ 
and/or
\ \green{\tt\string~**\obj}.\\
\ \ 
\MGNT{poslist} is empty or a sequence of \pos\/ and/or \green{\tt\string~@} \\
separated by \green{\tt\string&}.
\hfill\`\NEXT
\end{tabbing}
\newpage
\begin{Alltt}
\\begin\{xy\}
 (0,0)*+\{A\}; (50,-10)*+\{B\}
 **\red{\\crv}\{\red{~*=<4pt>\{.\}} (10,10)&(20,0)&(40,15)\}
 **\red{\\crv}\{\red{~*=<8pt>\{\}~**!/-5pt/\\dir\{>\}}(10,-20)&(40,-15)\}
\\end\{xy\}
\end{Alltt}

\vspace*{-3ex}
\begin{xy}
 (0,0)*+{A}; (50,-10)*+{B}
 **\crv{~*=<4pt>{.} (10,10)&(20,0)&(40,15)}
 **\crv{~*=<8pt>{}~**!/-5pt/\dir{>}(10,-20) &(40,-15)}
\end{xy}

\vspace*{-15ex}
\hfill
\begin{xy}
 (0,0)*+{A};(50,-10)*+{B}
 **\crv~pC{~*=<\jot>{.}(10,-10)&(20,15) &(40,15)} 
\end{xy}\!\!

\vspace*{-5ex}
\begin{Alltt}
\\begin\{xy\}
 (0,0)*+\{A\};(50,-10)*+\{B\}
 **\red{\\crv~pC}\{\red{~*=<\\jot>\{.\}}(10,-10)&(20,15) &(40,15)\} 
\\end\{xy\}
\end{Alltt}

\begin{Alltt}
\\begin\{xy\}
 (0,0)*+\{A\};(50,-10)*+\{B\}
 **\red{\\crv~Lc}\{\red{~**\\dir\{--\}
  ~*\{\\oplus\}}
  (20,20)&(35,15)\}
\\end\{xy\}
\end{Alltt}

\vspace*{-20ex}
\hfill
\begin{xy}
 (0,0)*+{A};(50,-10)*+{B}
 **\crv~Lc{~**\dir{--}
           ~*{\oplus}
 (20,20)&(35,15)}
\end{xy}

\vspace*{-2ex}
\centerline{{\bf Intersection} of a straight line and a curved connection}
\begin{z2col}
\begin{Alltt}
\\begin\{xy\}
 *+\{A\}="A";p+/r5pc/+(0,15)*+\{B\}="B"
 ,p+<1pc,3pc>*+\{C\}="C"
 ,"A"+<4pc,-1pc>*+\{D\}="D",\red{\{\\ar@/_/"C"\}}
 ,\red{?!\{"A";"B"**@\{-\}\}}*++\{\\oplus\} 
\\end\{xy\}
\end{Alltt}

\kaidan

\vspace*{-.5ex}
\hfill
\begin{xy}
 *+{A}="A";p+/r5pc/+(0,15)*+{B}="B"
 ,p+<1pc,3pc>*+{C}="C"
 ,"A"+<4pc,-1pc>*+{D}="D",{\ar@/_/"C"}
 ,?!{"A";"B"**@{-}}*++{\oplus} 
\end{xy}
\end{z2col}
%
%\hfill
%\begin{xy}
% *+{A}="A";p+/r5pc/+(0,15)*+{B}="B",
% ,p+<1pc,3pc>*+{C}="C"
% ,"A"+<4pc,-1pc>*+{D}="D","A";"B"**@{-}
% ,?!{"D",{\ar@/_/"C"}}*++{\oplus}
%\end{xy}

%\smallskip
%{\bf Quadratic Splines}\\
%Quadratic B\'ezier splines is different from cubic B\'ezier spline and are
%constructed from parabolic arcs.  They can be get by\\
%\green{\tt\BK qspline\{\MGNT{style}\}}\\
\name{Circles}{\centerline{\bf Circles and Ellipse}}
\GOTO{Top}
\green{\tt\BK xycircle\MGNT{vector}\{\MGNT{style}\}}\ \ 
\MGNT{style} is any \MGNT{conn} or \obj.

\begin{z2col}
\begin{Alltt}
\\begin\{xy\}
 0;/r5pc/:*\\dir\{*\}
  ;p+(.5,-.5)*\\dir\{*\}="c"
 ,**\\dir\{-\},*+!UL\{c\},"c"
 ,*\red{\\xycircle(1,.4)\{++\\dir\{<\}\}}
 ,*\red{\\xycircle(1,1)\{++\\dir\{>\}\}}
 ,*\red{\\xycircle<15pt,10pt>\{\}}
 ;*\red{\\xycircle<10pt>\{\{.\}\}} 
\\end{xy}
\end{Alltt}

\kaidan

\vspace*{-2.2ex}
\hfill
\begin{xy}
 0;/r5pc/:*\dir{*}
  ;p+(.5,-.5)*\dir{*}="c"
 ,**\dir{-},*+!UL{c},"c"
 ,*\xycircle(1,.4){++\dir{<}}
 ,*\xycircle(1,1){++\dir{>}}
 ,*\xycircle<15pt,10pt>{}
 ;*\xycircle<10pt>{{.}} 
\end{xy}\!\!\!\!\!\!\!\!
\end{z2col}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\centerline{\large\bf \name{S32}{3.2. Frame and Bracket}}
\GOTO{Top}
\keyin{\xyoption{frame}}{{\tt\BK xyoption\{frame\}}}\\
\green{\tt\BK frm\MGNT{opt}\{\MGNT{frame}\}}\quad put frame at \pos\\
\green{\tt[F \MGNT{frame}:\MGNT{opt}]}
\quad\ \green{\tt*\BK frm\MGNT{opt}\{\MGNT{frame}\}}\\
\green{\tt[F \MGNT{frame}]}
\qquad\quad\ \green{\tt*\BK frm\{\MGNT{frame}\}}\\
\green{\tt[F]}
\qquad\qquad\qquad\ \green{\tt*\BK frm\{-\}}\\
Here \MGNT{frame} is empty or

\vspace*{-2ex}
\begin{tabbing}
\hspace*{2.3cm}\=\kill
\red{\tt .~- =}
 \>allow an optional corner radius by 
\MGNT{opt}=\green{\tt<\Dm>}\\
\red{\tt -- o-}
 \>\red{\tt o-} has rounded corner\quad\\
\red{\tt , -,}
 \>put a shade with \MGNT{opt}\/ional depth of shade by
\green{\tt<\dm>}\\
\red{\tt *}
 \> fill a box\\
\red{\tt o .o -o oo}
 \>circle with \MGNT{opt}\/ional radius by \green{\tt<\dm>}\\
 \>outer most one of a doubled frame = the single one\\
 %\red{\tt oo} equals that for \red{\tt o}\\
{\color{red}\verb|_\} ^\} \{ \}|}
 \quad put braces bottom, top, left, right\\
{\color{red}\verb|_) ^) ( )|}
 \> put parenthesis bottom, top, left, right\\
\end{tabbing}

\vspace*{-4ex}
\xy
 0       *+\txt{\tt\BK frm\{.\}} *\frm{.},
 (22,0)  *+\txt{\tt\BK frm\{-\}} *\frm{-},
 (44,0)  *+\txt{\tt\BK frm\{=\}} *\frm{=},
 (66,0)  *+\txt{\tt\BK frm\{--\}} *\frm{--},
 (92,0)  *+\txt{\tt\BK frm<8pt>\{-\}} *\frm<8pt>{-},
 (0,-10)  *+\txt{\tt\BK frm\{,\}} *\frm{,},
 (22,-10) *+\txt{\tt\BK frm\{-,\}} *\frm{-,},
 (55,-10) *+\txt{\tt\BK frm<6pt>\{,\}} *\frm<6pt>{,},
 (92,-10) *+\txt{\tt\BK frm<4pt>\{=\}} *\frm<4pt>{=},
 (0,-24) *+\txt{\tt\BK frm\{o\}} *\frm{o},
 (40,-24) *+\txt{\tt\BK frm<12pt>\{oo\}} *\frm<12pt>{oo},
 (75,-24) *+\txt{\tt\BK frm\{-o\}} *\frm{-o},
 (95,-24)   *+\txt{\tt Box} *\frm{*},
 (95,-20)  *+\txt{\tt frm\{*\}},
 (4,-40)    *+\txt{\tt\BK frm\{\string_\BK \}\}} *\frm{_\}},
 (32,-40)   *+\txt{\tt\BK frm\{\string^)\}} *\frm{^)},
 (62,-40)   *+\txt{\tt Framed with\\ \BK frm\{\BK \{\}\\ frame} *\frm{\{},
 (92,-40)   *+\txt{\tt Framed with\\ \BK frm\{)\}\\ frame} *\frm{)},
\endxy
\begin{z2col}
\begin{Alltt}
\\begin\{xy\}
 (0,0) *++\{A\} ;
 (10,2) *++\{B\} \red{**\\frm\{.\}} 
  \red{**\\frm\{^\\\}\}} ; \red{**\\frm\{_\\\}\}}
\\end\{xy\}
\end{Alltt}
\kaidan

\vspace*{1ex}
\hfill
\begin{xy}
 (0,0) *++{A} ;
 (10,2) *++{B} **\frm{.} 
  **\frm{^\}} ; **\frm{_\}}
\end{xy}
\end{z2col}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\centerline{\large\bf \name{S34}{3.3. Rotate ans Scale}}
\centerline{\large\bf \name{S33}{3.3. Import Graphics}}
{\tt\color{green}\BK xyimport(\MGNT{width},\MGNT{height})\{\MGNT{graphic}\}}\\
{\tt\color{green}\BK xyimport(\MGNT{width},\MGNT{height})%
(\MGNT{$x$-off},\MGNT{$y$-off})\{\MGNT{graphic}\}}\\
\MGNT{graphic} is a box with a graphic imported by a graphic package. 
\begin{verbatim}
\def\GraA{\resizebox{6cm}{!}{\includegraphcs{foo.eps}}}
\begin{xy}
\xyimport(4,3)(1.2,1,2){\GraA}*\frm{-},
...
\end{verbatim}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\centerline{\bf\tt\Large Xy-pic\quad Features}
\rm
\keyin{\xyoption{all}}{{\tt\BK xyoption\{all\}}}\quad
Load \Xy-pic extensions {\tt curve frame cmtip}\\
\qquad{\tt line rotate color matrix arrow} and {\tt graph}.

\medskip
\centerline{\large\bf \name{S41}{4.1. Path and Arrow}}
\GOTO{Top}
\keyin{\xyoption{arrow}}{{\tt\BK xyoption\{arrow\}}}\\
\centerline{\bf\large PATH}

\vspace*{-3ex}
\begin{tabbing}
\hspace*{3.0cm}\=\hspace{1.2cm}\=\kill
A Path is defined by the command\`\ToDef{DefPATH}\\
\green{\tt\BK PATH}\MGNT{path}\qquad\qquad\qquad\quad\!interpret \MGNT{path}\\
\green{\tt\BK afterPATH\{\MGNT{decor}\}}\MGNT{path}\quad interpret \MGNT{path}
and run \MGNT{decor}\\
\qquad \MGNT{path} includes several \MGNT{segment}s, which are\\
\MGNT{path-pos} \Dm\ \MGNT{labels}
 \quad \Dm\/ is optional to \MGNT{slide}s \obj\\
\qquad \MGNT{labels} are sequence of\qquad\qquad
%%
\if\pdf
\else
($\Rightarrow$\Goto{place}{place})
\fi
\\
%%
\green{\tt\string^}\anchor\/ \MGNT{it} \green{\tt="\ID"} 
 \>label with \MGNT{it}\/em above \MGNT{anchor}
(\green{\tt="\ID"} is optional)\\
 \green{\tt\string_}\MGNT{anchor} \MGNT{it} \green{\tt="\ID"} 
 \>label with \MGNT{it}\/em below \MGNT{anchor}
(\green{\tt="\ID"} is optional)\\
\green{\tt\string|}\MGNT{anchor} \MGNT{it} \green{\tt="\ID"} 
 \>label with \MGNT{it}\/em at \MGNT{anchor}\qquad
(\green{\tt="\ID"} is optional)\\
% \>\MGNT{place} may be preceded by \red{\tt-} which means \red{\tt<>(.5)}\\
\>\name{anchor}{\MGNT{anchor}} is \Place\/ or \red{\tt -}\Place\/
 (\red{\tt -} means \red{\tt<>(0.5)})\\
Here \name{it}{\MGNT{it}}\/em is {\it\color{cyan}digit} or 
{\it\color{cyan}letter} or 
\green{\tt\{\TEXT\}} or \MGNT{cs} (default labels) or\\
\green{\tt *}\obj\> \obj\/ect\\
\green{\tt @}\Dir\>\MGNT{dir}\/ectional\\
\qquad which may be preceded by \green{\tt[\MGNT{shape}]}\\[.5ex]
%%%
\qquad Except for the last one, \MGNT{segment}\/s should be either in the forms\\
\green{\tt'\MGNT{segment}}
 \>\>\quad make straight segment\\
\green{\tt`\Diag\/ \MGNT{turnradius} \MGNT{segment}}
 \>\>\quad 1/4 turning \MGNT{segment} starting in \Diag\\
\green{\tt`\Cir \MGNT{turnradius} \MGNT{segment}}
 \>\>\quad explicit turning \MGNT{segment}
\if\pdf
\\
\else
\qquad($\Rightarrow$\Goto{cir}{cir})\\
\fi
\qquad \MGNT{turnradius} is \green{\tt/\!\Dm} and use default turn if 
it is omitted.\\
\qquad \green{\tt\BK turnradius\goto{addop}{\MGNT{add-op}}\{\Dm\}} to change it (default:10pt).\\
\green{\tt`\MGNT{segment}}
 \>\>turning \MGNT{segment} as at the last \Diag\/ \MGNT{radius}
 \\[.5ex]
%%%
\qquad Moreover \MGNT{path} may also contain\\
\green{\tt\string~\MGNT{action}\{\MGNT{stuff}\}}
 \>set \MGNT{action} to \MGNT{stuff}\\
\green{\tt\string~\MGNT{which}\{\MGNT{labels}\}}
 \>add \MGNT{labels} prefix for some segments with \MGNT{which}\\
 \>\red{\tt <}\quad next segment only\\
 \>\red{\tt >}\quad last segment only\\
 \>\red{\tt =}\quad every segment\\
\green{\tt\string~\{\MGNT{stuff}\}}
 \>set failure continuation to \MGNT{stuff}\\
\end{tabbing}

\vspace*{-3ex}
\begin{z2col}
\begin{Alltt}
\\begin\{xy\}
 *+{0}\red{\\PATH}
  \red{~=}\{**\\dir\{-\}\} \red{~>}\{|>*\\dir\{>\}\} \red{~}+\{|*\\dir\{/\}\}
  \red{'}(10,1)*+\{1\}  \red{'}(20,-2)*+\{2\}   (30,0)*+\{3\}
\\end\{xy\}
\end{Alltt}

\kaidan

\vspace*{-.7ex}
\hfill
\begin{xy}
 *+{0}\PATH
  ~={**\dir{-}} ~>{|>*\dir{>}} ~+{|*\dir{/}}
  '(10,1)*+{1} '(20,-2)*+{2} (30,0)*+{3}
\end{xy}
\end{z2col}
\newpage

%\vspace*{.5ex}
\begin{z2col}
\begin{Alltt}
\\begin\{xy\} <4pc,0pc>:(0,0)
*+\\txt\{base\}="base"
\red{\\PATH} \red{~=}\{**\\dir\{-\}?>*\\dir\{>\}\}
 \red{`l}  (-1,-1)*\{A\} ^a
 \red{`}    (1,-1)*\{B\} ^b
 \red{`_ul} (1, 0)*\{C\} ^c
 \red{`ul^l} "base"    ^d
       "base"    ^e
\\end\{xy\}
\end{Alltt}

\kaidan

\vspace*{5.8ex}
\hspace*{-0.7cm}
\begin{xy} <4pc,0pc>:(0,0)
*+\txt{base}="base"
\PATH ~={**\dir{-}?>*\dir{>}}
 `l  (-1,-1)*{A} ^a
 `    (1,-1)*{B} ^b
 `_ul (1, 0)*{C} ^c
 `ul^l "base"    ^d
       "base"    ^e
\end{xy}
\end{z2col}

\bigskip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\centerline{\bf\large Arrows}
\name{Arrow}{Arrows} are paths with 
\MGNT{tail}, \MGNT{stem} and \MGNT{head} described in
\href{#S17}{\S1.7}.  They are constructed as follows

\vspace*{-4ex}
\begin{tabbing}
\hspace*{2.8cm}\=\\
\green{\tt\BK ar}\MGNT{arrow} \MGNT{path}
 \> make \MGNT{arrow} along \MGNT{path}\\
\qquad Here \MGNT{arrow} is of the form\\
\green{\tt@\MGNT{variant}}
 \> use \MGNT{variant} of arrow.  \MGNT{variant} is empty or one of \\
 \> {\color{red}\verb|^ _ 0 1 2 3 |}with above, below, double or triple\\
\green{\tt@\MGNT{variant}\{\MGNT{tip}\}}
 \> build arrow using \MGNT{variant} of a standard stem and\\
 \> \MGNT{tip} for the head.  Here \MGNT{tip} is some of \MGNT{tipcharacter}s\\
 \> {\color{red}\verb:< > ( ) | ' ` + / :}or \MGNT{letter} or \MGNT{space}
 with a \\
 \> preceding optional \Dir\/ectional\\
\green{\tt@\MGNT{variant}\{\MGNT{tip} \MGNT{conn} \MGNT{tip}\}}
 \quad make arrow using \MGNT{variant} with indicated\\
 \> tail, stem and head (in this order).\\
 \> \MGNT{conn} is a sequence of \MGNT{connchar}s (with \Dir\/ectional)\\
\green{\tt@\MGNT{connchar}}
 \> change stem by \MGNT{connchar}, which is one of 
  {\color{red}\tt\verb|- . ~ =|}\\
\green{\tt@!}
 \> dash the arrow stem by doubling it\\
\green{\tt@/\!\dr\/\ \MGNT{dist}/}
 \> curve arrow the \MGNT{dist}\/ance towards \dr\\
 \> default \MGNT{dist}\/ance is .5pc (may be omitted)\\
\green{\tt@(\dr,\dr)}\\
 \> curve to fit with in-out directions\\
\green{\tt@`\{\MGNT{control-point-list}\}}
\ \  curve setup with explicit control points\\
\> See \href{#S31}{\S3.1} for control points.\\
\green{\tt@[\MGNT{shape}]}
 \> add \green{[\MGNT{shape}]} to object \MGNT{modifier} for all object\\
\green{\tt*\{\MGNT{modifier}\}}
 \> add object \MGNT{modifier}\/s for all object\\
\green{\tt<\dm>}
 \> slide arrow the \Dm\\
\green{\tt\string|\anchor\/ \MGNT{it}}
 \> break each segment at \MGNT{anchor} with \MGNT{it}\/em\qquad
%
\if\pdf
\else
$\Rightarrow$\Goto{it}{item}
\fi
\\
%%
\green{\tt\string^\anchor\/ \MGNT{it}}
 \> label each segment at \MGNT{anchor} with \MGNT{it}\/em\\
\green{\tt\string_\anchor\/ \MGNT{it}}
 \> label each segment at \MGNT{anchor} with \MGNT{it}\/em\\
\green{\tt@?}
 \> reverse meaning of above and below\\
 \> \Anchor\/ is \Place\/ or \red{\tt -}\Place\ (\red{\tt -} means 
\red{\tt<>(0.5)})\\
\end{tabbing}
\vspace*{-1cm}

\newpage
\begin{z2col}
\begin{Alltt}
\\xy\\ar @\{<^\{|\}>\} (20,7) \\endxy

\\xy\\ar @\{\{\}\{+\}>\} (20,7) \\endxy

\\xy\\ar @\{*\{x\}*\{y\}*\{z\}\} (20,7) \\endxy

\\xy\\ar @\{>>*\\composite\{%
     \\dir\{x\}*\\dir\{+\}\}<<\} (20,7) \\endxy
\end{Alltt}

\kaidan

\vspace*{-1ex}
\hfill
\xy\ar @{<^{|}>} (20,7) \endxy \\
\hfill
\xy\ar @{{}{+}>} (20,7) \endxy \\
\hfill
\xy\ar @{*{x}*{y}*{z}} (20,7) \endxy \\
\hfill
\xy\ar @{>>*\composite{%
   \dir{x}*\dir{+}}<<} (20,7) \endxy
\end{z2col}
\begin{z2col}

\vspace*{3ex}
\begin{Alltt}
\\begin\{xy\}
 (0,0) \red{\\ar} @\{-->\} (30,7) ^A\red{="a"}
 \\POS(10,12)*+\\txt\{label\} \red{\\ar "a"}
\\end\{xy\}
\end{Alltt}

\kaidan

\vspace*{2ex}
\hfill
\begin{xy}
 (0,0) \ar @{-->} (30,7) ^A="a"
 \POS(10,12)*+\txt{label} \ar "a" 
\end{xy}
\end{z2col}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\medskip
\centerline{\large\bf \name{S42}{4.2. Graph}}
\GOTO{Top}
See Reference Manual for details.\hfill\ToDef{Dgraphic}

%\newpage
\begin{z2col}
\begin{Alltt}
\\xygraph\{
 \red{[]}L \red{:}@/_/ \red{[r]}\{M_1\} \red{:}@/^/ \red{[r]}\{M^2\}
     \red{:}@\{|.>\}\red{[r]}R    \red{:}@/_1em/"L"
\}
\end{Alltt}

\kaidan

\vspace*{-.5ex}
\hfill
\xygraph{
 []L :@/_/ [r]{M_1} :@/^/ [r]{M^2}
     :@{|.>}[r]R    :@/_1em/"L"
}\!\!\!\!\!\!\!\!\!
\end{z2col}
\begin{tabbing}
\hspace*{3.5cm}\=\kill
\green{\tt\BK xygraph\{\MGNT{graph}\}}
 \>perform \MGNT{graph}
which are \MGNT{node} or the followings\\
\green{\tt-\MGNT{arrow} \MGNT{node} \MGNT{labels}}
 \>draw line to \MGNT{node} with \MGNT{labels} and move there\\
\green{\tt:\MGNT{arrow} \MGNT{node} \MGNT{labels}}
 \>draw \MGNT{arrow} to \MGNT{node} with \MGNT{labels} and move there\\
\green{\tt(\MGNT{list})}\quad\quad map \MGNT{list} (= \MGNT{graph}s separated by \green{\tt ,}) to the current \MGNT{node}\\
\qquad Here \MGNT{node}s are \\
\green{[\MGNT{move}] \ \string& \ \BK\BK \ "\ID" \ ?\ } 
may be followed by
\MGNT{it}\/em or \green{\tt="\ID"} or \green{\tt!\MGNT{escape}}\\
\quad\MGNT{move} by some \red{\tt d u l r} (may be followed by \MGNT{place} and \MGNT{move})\\
\quad\MGNT{escape} one of \red{\tt M P E \string~} (\MGNT{matrix} \MGNT{polygon} \MGNT{ellipse} set-up)
\end{tabbing}

\vspace*{-1ex}
\begin{z2col}
\begin{Alltt}
\\xygraph\{
\red{[]} *+[o]+[F]\{1\}
  \red{(-[dl]} *+=[o]+[F]\{11\}
  \red{,-[d]}  *+=[o]+[F]\{12\}
     \red{(-[dl]} *+=[o]+[F]\{121\}
     \red{,-[d]}  *+=[o]+[F]\{122\}
     \red{,-[dr]} *+=[o]+[F]\{123\}
     \red{)}
  \red{,-[dr]} *+=[o]+[F]\{13\}
  \red{)}
\}
\end{Alltt}

\kaidan

\vspace*{1ex}
\hfill
\xygraph{
[] *+[o]+[F]{1}
  (-[dl] *+=[o]+[F]{11}
  ,-[d]  *+=[o]+[F]{12}
   (-[dl] *+=[o]+[F]{121}
   ,-[d]  *+=[o]+[F]{122}
   ,-[dr] *+=[o]+[F]{123}
    )
  ,-[dr] *+=[o]+[F]{13}
  )
}
\end{z2col}

\vspace*{-2ex}
\phantom{See \S1}\hfill{\large\bf \name{S43}{4.3. Matrix}}\hfill See \href{#S11}{\S1}.
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%
\centerline{\large\bf \name{S44}{4.4. Polygon}}
See Reference Manual for details.\hfill\ToDef{Dpolygon}\phantom{AB}
\GOTO{Top}
\vspace*{-2ex}
\begin{Alltt}
\\begin\{xy\} /r8mm/:
 ,   0    ,\{\red{\\xypolygon6\{\}}\}
 ,+/r18mm/,\{\red{\\xypolygon8\{@\{o\}\}}\}
 ,+/r18mm/,\{*@\{o\}\red{\\xypolygon6\{@\{*\}\}}\}
\\end\{xy\}
\end{Alltt}

\vspace*{-1.5ex}
\begin{xy} /r8mm/:
 ,   0    ,{\xypolygon6{}}
 ,+/r18mm/,{\xypolygon8{@{o}}}
 ,+/r18mm/,{*@{o}\xypolygon6{@{*}}}
%
 ,+/r22mm/,{\xypolygon6{~*{\dir{*}}}}
 ,+/r18mm/,{\xypolygon8{~<{.}~>{}~={45}{\dir{*}}}}
 ,+/r18mm/,{\xypolygon6{~<{=}~>{:}{\dir{*}}}}
\end{xy}

\vspace*{-2ex}
\begin{Alltt}
\\begin\{xy\} /r8mm/:
 ,   0    ,\{\red{\\xypolygon6\{~*\{\\dir\{*\}\}\}}\}
 ,+/r18mm/,\{\red{\\xypolygon8\{~<\{.\}~>\{\}~=\{45\}\{\\dir\{*\}\}\}}\}
 ,+/r18mm/,\{\red{\\xypolygon6\{~<\{=\}~>\{:\}\{\\dir\{*\}\}\}}\}
\\end\{xy\}
\end{Alltt}

\vspace*{-2.2ex}
{\color{green}\verb|~:         |} any \pos\/ \MGNT{decor} performed first\\
{\color{green}\verb|~* ^=      |} set \obj\/ect, \MGNT{angle} to vertex\\
{\color{green}\verb|~< ~<< ~<> |} set \Dir\/ectional, arrow, labels to spokes\\
{\color{green}\verb|~> ~>< ">> |} set \Dir\/ectional, arrow, labels to sides
\vspace*{-2.1ex}
\begin{Alltt}
\\newcounter\{node\}
\\newcommand\{\\Letter\}%
  \{\{\\setcounter\{node\}%
    \{\red{\\xypolynode}\}\\Alph\{node\}\}\}
\\begin\{xy\} /r12mm/:
  (0,0), \{\red{\\xypolygon6\{~*\{\\xypolynode\}\}}\}
 ,(3.3,0), \{*\{0\}*\\cir<5pt>\{\}
            \red{\\xypolygon8\{~*\{\\xybox\{}%
             \red{*\{\\xypolynode\}*\\cir<2mm>\{\}\}\}\}}\}
 ,(6.6,0),   \{\red{\\xypolygon6\{~><\{@/_.9ex/\}}
             \red{~>>\{_\{\\delta^\{\\xypolynode\}_\{\\xypolynum\}\}\}}
             \red{~<<\{@\{=\}\} ~<>\{|\\uparrow\} ~*\{\\Letter\}\}}\}
\\end\{xy\}
\end{Alltt}

\vspace*{-4.5ex}
\newcounter{node}
\newcommand{\Letter}%
  {{\setcounter{node}%
    {\xypolynode}\Alph{node}}}
\begin{xy} /r12mm/:
  (0,0), {\xypolygon6{~*{\xypolynode}}}
 ,(3.3,0), {*{0}*\cir<5pt>{}
            \xypolygon8{~*{\xybox{%
            *{\xypolynode}*\cir<2mm>{}}}}}
 ,(6.6,0),   {\xypolygon6{%
             ~><{@/_.9ex/}
             ~>>{_{\delta^{\xypolynode}_{\xypolynum}}}
             ~<<{@{=}} ~<>{|\uparrow} ~*{\Letter}}}
\end{xy}

%\vspace*{-4ex}
\newpage
\begin{Alltt}
\\begin\{xy\} /r9mm/:
  (0,0), \{\red{\\xypolygon6\{~:\{(1,-.1):(0,.33)::\}~<\{-\}\}}\}
 ,(0,2), \{\red{\\xypolygon6\{~:\{(1,-.2):(0,.5)::\}~<\{-\}\}}\}
 ,(3,0), \{\red{\\xypolygon6\{~:\{(1,-.2):(0,-.3)::\}~<\{-\}\}}\}
 ,(3,2), \{\red{\\xypolygon6\{~:\{(1,.3):(0,-.6)::\}~<\{-\}\}}\}
 ,(6,0)="0", +(-.5,3)="T","0"
 ,\{\red{\\xypolygon6\{~:\{(1,.2):(0,.4)::\}~<>\{;"T"**@\{-\}\}\}}\}
\\end\{xy\}
\end{Alltt}

\vspace*{-2ex}
\begin{xy} /r9mm/:
  (0,0),{\xypolygon6{%
  ~:{(1,-.1):(0,.33)::}~<{-}}}
 ,(0,2),{\xypolygon6{%
  ~:{(1,-.2):(0,.5)::}~<{-}}}
 ,(3,0),{\xypolygon6{%
  ~:{(1,-.2):(0,-.3)::}~<{-}}}
 ,(3,2),{\xypolygon6{%
  ~:{(1,.3):(0,-.6)::}~<{-}}}
 ,(6,0)="0", +(-.5,3)="T","0"
 ,{\xypolygon6{~:{(1,.2):(0,.4)::}
  ~<>{;"T"**@{-}}}}
\end{xy}

\vspace*{-19.5ex}
\hfill
\begin{xy} /r1cm/:
  {\xypolygon4"F"{~:{(0,.6)::}}},+(.8,1.3)
 ,{\xypolygon4"B"{~:{(.7,0):(0,.7)::}}}
 ,"F1";"B1"**@{.}, "F2";"B2"**@{.}
 ,"F3";"B3"**@{.}, "F4";"B4"**@{.},-(1.0,2.7)
 ,{\xypolygon10"O"{~={16}\dir{*}}}
 ,{\xypolygon5"I"{~:{(0.55,0):}
     ~={16}{\dir{*}}}}
 ,"O1";"I1"**@{.}, "O3";"I2"**@{.}
 ,"O5";"I3"**@{.}, "O7";"I4"**@{.}
 ,"O9";"I5"**@{.}
\end{xy}\phantom{A}

\vspace*{-6ex}
\begin{Alltt}
\\begin\{xy\} /r1cm/:
  \{\red{\\xypolygon4"F"\{~:\{(0,.6)::\}\}\}},+(.8,1.3)
 ,\{\red{\\xypolygon4"B"\{~:\{(.7,0):(0,.7)::\}\}\}}
 ,"F1";"B1"**@\{.\}, "F2";"B2"**@\{.\}
 ,"F3";"B3"**@\{.\}, "F4";"B4"**@\{.\},-(1.0,2.7)
 ,\{\red{\\xypolygon10"O"\{~=\{16\}\\dir\{*\}\}}\}
 ,\{\red{\\xypolygon5"I"\{~:\{(0.55,0):\}
     ~=\{16\}\{\\dir\{*\}\}\}}\}
 ,"O1";"I1"**@\{.\}, "O3";"I2"**@\{.\}
 ,"O5";"I3"**@\{.\}, "O7";"I4"**@\{.\}
 ,"O9";"I5"**@\{.\}
\\end\{xy\}
\end{Alltt}
\begin{z2col}
\begin{Alltt}

\\xypolygon4{\color{magenta}\{}~:\{/r5pc/:\}
 ~<>{\color{green}\{}*\\frm<8pt>\{o\}
  \red{\\xypolygon4\{}~:\{/-2pc/:\}
  ~*\{\red{\\xypolyname\\xypolynode}\}\red{\}}{\color{green}\}}
[o]=<5pc>\{\red{\\xypolynode\}}{\color{magenta}\}}
\end{Alltt}

\kaidan

\vspace*{-6ex}
\hfill
\xypolygon4{~:{/r5pc/:}
 ~<>{*\frm<8pt>{o}\xypolygon4{~:{/-2pc/:}
  ~*{\xypolyname\xypolynode}}}
[o]=<5pc>{\xypolynode}}\!\!\!\!\!\!\!\!
\end{z2col}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\centerline{\large\bf \name{S45}{4.5. Circle, Ellipse and Arc}}
%\vspace*{-1.5ex}
\GOTO{Top}
\green{\tt\BK ellipse({\color{cyan}num})\{\MGNT{style}\}}\ 
radius = {\color{cyan}num}$\times$dist(\MGNT{p},\MGNT{c}), default 
{\color{cyan}num}=1\\
\green{\tt\BK ellipse<\Dm>\{\MGNT{style}\}}\quad radius is \dm\/sion
\vspace*{-2ex}
\begin{Alltt}
\\begin\{xy\}
 0;/r5pc/:*\\dir\{*\}="p",*+!DR\{p\};
 p+(.5,-.5)*\\dir\{*\}="c"
 ,*+++!L\{c\}**\\dir\{-\}
 ,\{\red{\\ellipse<>\{:\}}\},\{\red{\\ellipse(.5)\{\}}\}
 ,0;(.5,.5)::,"p";"c",\{\red{\\ellipse(.5)\{.\}}\}
 ,\{\red{\\ellipse<5pt>\{=\}}\}
\\end\{xy\}
\end{Alltt}

\vspace*{-22ex}
\hfill
\begin{xy}
 0;/r5pc/:*\dir{*}="p",*+!DR{p};
 p+(.5,-.5)*\dir{*}="c",*+++!L{c}**\dir{-}
 ,{\ellipse<>{:}},{\ellipse(.5){}}
 ,0;(.5,.5)::,"p";"c",{\ellipse(.5){.}}
 ,{\ellipse<5pt>{=}}
\end{xy}\!\!

\medskip
\green{\tt\BK ellipse\string_\{\MGNT{style}\}}\quad clockwise arc from \MGNT{p} to \MGNT{c}\\
\green{\tt\BK ellipse\string^\{\MGNT{style}\}}\quad counter-clockwise arc from \MGNT{p} to \MGNT{c}

\vspace*{-2ex}
\begin{Alltt}
\\begin\{xy\}
 0;/r5pc/:*=+\\dir\{*\}*+!UR\{p\};
 p+(.5,-.5)*\\dir\{*\}="o",*+!UL\{o\}
 ,+(0,.81)*=<6.1pt>\\dir\{*\}*\\frm\{-\}="c"
 ,*+!DL\{c\},"o",**\\dir\{-\}
 ,"c",\{\red{\\ellipse_\{\}}\},\{\red{\\ellipse^\{.\}}\}
 ,"o"+(1.5,.2)*\\dir\{*\}="a"*+!UL\{a\}
 ,"o";p+/_1pc/,**\{\},"a",\{\red{\\ellipse_\{\}}\}
\\end\{xy\}
\end{Alltt}

%\vspace*{-25ex}
%\hfill
\vspace*{.1ex}
\quad
\begin{xy}
 0;/r5pc/:*=+\dir{*}*+!UR{p};
 p+(.5,-.5)*\dir{*}="o",*+!UL{o}
 ,+(0,.81)*=<6.1pt>\dir{*}
  *\frm{-}="c"
 ,*+!DL{c},"o",**\dir{-}
 ,"c",{\ellipse_{}}
 ,{\ellipse^{.}}
 ,"o"+(1.5,.2)*\dir{*}="a"*+!UL{a}
 ,"o";p+/_1pc/,**{},"a",{\ellipse_{}}
\end{xy}

\vspace*{-19ex}
\hfill
\begin{xy}
 0;/r5pc/:*\dir{*}="p",*+!UR{p}
 ;p+(.5,-.5)*\dir{*}="o",*++!L{o}**\dir{-}
 ,p+(.5,.5)*\dir{*}="c",*++!D{c},"c"
 ;p+(1,.1)*\dir{*}="q",*++!L{q}**\dir{-}
 ,"o";"p",**{};"c"
 ,{\ellipse![["o";"p"]],_![["q";"c"]]{}}
 ,{\ellipse![["o";"p"]],![["c";"q"]]{.}} 
\end{xy}\phantom{A}

\bigskip
See Reference Manual for more details.

\vspace*{-2ex}
\begin{Alltt}
\\begin\{xy\}
 0;/r5pc/:*\\dir\{*\}="p",*+!UR\{p\}
 ;p+(.5,-.5)*\\dir\{*\}="o",*++!L\{o\}**\\dir\{-\}
 ,p+(.5,.5)*\\dir\{*\}="c",*++!D\{c\},"c"
 ;p+(1,.1)*\\dir\{*\}="q",*++!L\{q\}**\\dir\{-\}
 ,"o";"p",**\{\};"c"
 ,\{\red{\\ellipse![["o";"p"]],_![["q";"c"]]\{\}}\}
 ,\{\red{\\ellipse![["o";"p"]],![["c";"q"]]\{.\}}\} 
\\end\{xy\}
\end{Alltt}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\centerline{\large\bf \name{S46}{4.6. Two-cell}}
See Reference Manual for details.
\GOTO{Top}

\vspace*{-2ex}
\begin{Alltt}
\\xymatrix\{
 L\red{\\rtwocell^u_d} & R \}
\end{Alltt}

\vspace*{-10ex}
\hspace*{.6\textwidth}
\xymatrix{
 L\rtwocell^u_d & R }

\begin{Alltt}
\\xymatrix @=15mm\{
  L_1 \red{\\rlowertwocell<-3>_\{a_1\}\{<-1>\}
      \\rcompositemap<6>_\{a_2\}^\{a_3\}\{\\omit\}}
& R_1 \red{\\dtwocell<0>_\{a_4\}\{"\}}\\\\
  L_2 \red{\\uuppertwocell_u^d\{\\omit\}}
      \red{\\rtwocell<2>\{'id\}}
& R_2\}
\end{Alltt}

\vspace*{-23ex}
\hspace*{.68\textwidth}
\xymatrix @=15mm{
   L_1 \rlowertwocell<-3>_{a_1}{<-1>}
       \rcompositemap<6>_{a_2}^{a_3}{\omit}
 & R_1 \dtwocell<0>_{a_4}{"}\\
   L_2 \uuppertwocell_u^d{\omit}
       \rtwocell<2>{'id}
 & R_2}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\centerline{\large\bf \name{S47}{4.7. Lattice and web}}
\GOTO{Top}
%See Reference Manual for more details.

\quad
Lattice is the set given by\\
\centerline%
{$L = \{a\vec u + b\vec v\,;\, a \text{ and } b \text{ are integers}\}$}
Here $a_{min}\le a\le a_{max}$, $b_{min}\le b\le b_{max}$ are plotted.\\
\green{\BK xylattice}\MGNT{\tt\#1\#2\#3\#4}\quad
with (\MGNT{\tt\#1},\MGNT{\tt\#2},\MGNT{\tt\#3},\MGNT{\tt\#4})=
$(a_{min}, a_{max}, b_{min}, b_{max})$\\
\green{\BK croplattice}\MGNT{\tt\#1\#2\#3\#4\#5\#6\#7\#8}\quad cropped 
by $X$-coordinates of\\
\qquad \MGNT{\tt\#5}$\times\vec u$ and \MGNT{\tt\#6}$\times\vec u$
and $Y$-coordinates of \MGNT{\tt\#5}$\times\vec v$ and 
\MGNT{\tt\#8}$\times\vec v$\\
\green{\tt\BK latticebody}\quad expaned at lattice points  with\\
\quad\green{\tt\BK LatticeA  \BK LatticeB}\quad (a,b) coordinate\\
\quad\green{\tt\BK LatticeX  \BK LatticeY}\quad (X,Y) coordinate in pts
%%%%
\begin{Alltt}
\\def\red{\\latticebody}\{%
\\ifnum\red{\\latticeA}=1 \\ifnum\red{\\latticeB}=-1 % 
\\else \\drop\{\\dir\{+\}\}\\fi\\else 
\\ifnum\red{\\latticeA}=0 \\ifnum\red{\\latticeB}=1\\else 
\\drop\{\\dir\{x\}\}\\fi\\else\\drop\{\\circ\}\\fi\\fi\} 
\\begin\{xy\} +(2,2)="o",0*\\xybox{\color{magenta}\{}%
  0;<3pc,1.5mm>:<0.72pc,1.65pc>::
 ,\{"o" \red{\\croplattice\{-4\}4\{-4\}4\{-2.6\}\{2.6\}\{-3\}3}\} 
 ,"o"+(0,1) ="a"*\{\\bullet\}*+!D\{\\alpha\} 
 ,"o"+(1,-1)="b"*\{\\bullet\}*+!L\{\\beta\} 
 ,"o"+(0,-1)="c","o"+(-1,1)="d" 
 ,"a"."c"="e",!DR*\{\};"a"**\\dir\{.\} 
 ,"e",!UL*\{\};"c"**\\dir\{.\} 
 ,"b"."d"="f",!DL*\{\};"b"**\\dir\{.\} 
 ,"f",!UR*\{\};"d"**\\dir\{.\} 
 ,"e"."f"*\\frm\{.\}{\color{magenta}\}}="L","o"."L"="L" 
 ,\{"L"+L \\ar "L"+R*+!L\{s^\{(1)\}\}\} 
 ,\{"L"+D \\ar "L"+U*+!D\{s^\{(2)\}\}\} 
\\end\{xy\}
\end{Alltt}

\vspace*{-5ex}
\def\latticebody{%
\ifnum\latticeA=1 \ifnum\latticeB=-1 % 
\else \drop{\dir{+}}\fi\else 
\ifnum\latticeA=0 \ifnum\latticeB=1\else 
\drop{\dir{x}}\fi\else\drop{\circ}\fi\fi} 
\[\xy +(2,2)="o",0*\xybox{%
 0;<3pc,1.5mm>:<0.72pc,1.65pc>::
,{"o" \croplattice{-4}4{-4}4{-2.6}{2.6}{-3}3} 
,"o"+(0,1)="a"*{\bullet}*+!D{\alpha} 
,"o"+(1,-1)="b"*{\bullet}*+!L{\beta} 
,"o"+(0,-1)="c","o"+(-1,1)="d" 
,"a"."c"="e",!DR*{};"a"**\dir{.} 
,"e",!UL*{};"c"**\dir{.} 
,"b"."d"="f",!DL*{};"b"**\dir{.} 
,"f",!UR*{};"d"**\dir{.} 
,"e"."f"*\frm{.}}="L","o"."L"="L" 
,{"L"+L \ar "L"+R*+!L{s^{(1)}}} 
,{"L"+D \ar "L"+U*+!D{s^{(2)}}} 
\endxy\]
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\centerline{\large\bf \name{S48}{4.8. Knots and Links}}
\GOTO{Top}
See Reference Manual for details.

\begin{z2col}
\begin{Alltt}
$\\xy
 0;/r1pc/: 
 ,\{\\vunder\\vtwist\\vtwist\\vunder-\}
\\endxy\\qquad
\\xy
 0;/r1pc/:+(0,-1.5)
 ,\{\\hover\\hcross\\hcross\\hover-\}
\\endxy$
\end{Alltt}
\kaidan

\vspace*{1ex}
\hfill
$\xy
 0;/r1pc/: ,{\vunder\vtwist\vtwist\vunder-}
\endxy
\qquad
\xy
 0;/r1pc/:+(0,-1.5) ,{\hover\hcross\hcross\hover-}
\endxy$
\end{z2col}

\medskip
\begin{z2col}
\begin{Alltt}
\\begin\{xy\} /r9mm/:
 ,(0,0)
 ,\{\\hunder<><\{1\}|>|\{2\}>>>\{3\}%
    \\htwist<<<\{4\}|>|\{5\}><>\{6\}%
     \\hloop<><\{7\}|>|\{8\}>>>\{9\}\}
\\end\{xy\}
\end{Alltt}

\kaidan

\vspace*{.1ex}
\hfill
\begin{xy} /r9mm/:
 ,(0,0)
 ,{\hunder<><{1}|>|{2}>>>{3}%
    \htwist<<<{4}|>|{5}><>{6}%
     \hloop<><{7}|>|{8}>>>{9}}
\end{xy}
\end{z2col}

\vspace*{-2ex}
\hfill{\knotholesize{2mm}
\xygraph{!{0;/r1cm/:}
 !P5"p"{~>{.}}
 !P10"d"{~:{(1.7,0):}~>{.}}
 !P20"D"{~={-9}~:{(2.2,0):}~>{.}}
 !{\xunderv~{"d3"}{"d2"}{"p2"}{"p1"}}
 !{\xunderv~{"d5"}{"d4"}{"p3"}{"p2"}}
 !{\xunderv~{"d7"}{"d6"}{"p4"}{"p3"}}
 !{\xunderv~{"d9"}{"d8"}{"p5"}{"p4"}}
 !{\xunderv~{"d1"}{"d10"}{"p1"}{"p5"}}
 !{\vloop~{"D3"}{"D2"}{"d2"}{"d1"}|>|{a}}
 !{\vloop~{"D7"}{"D6"}{"d4"}{"d3"}|>|{b}}
 !{\vloop~{"D11"}{"D10"}{"d6"}{"d5"}|>|{c}>}
 !{\vloop~{"D15"}{"D14"}{"d8"}{"d7"}|>|{d}}
 !{\vloop~{"D19"}{"D18"}{"d10"}{"d9"}|>|{e}}
}}

\vspace*{-14ex}
\begin{Alltt}
\\[\\knotholesize\{2mm\}
\\xygraph\{!\{0;/r1cm/:\}
 !P5"p"\{~>\{.\}\}
 !P10"d"\{~:\{(1.7,0):\}~>\{.\}\}
 !P20"D"\{~=\{-9\}~:\{(2.2,0):\}~>\{.\}\}
 !\{\\xunderv~\{"d3"\}\{"d2"\}\{"p2"\}\{"p1"\}\}
 !\{\\xunderv~\{"d5"\}\{"d4"\}\{"p3"\}\{"p2"\}\}
 !\{\\xunderv~\{"d7"\}\{"d6"\}\{"p4"\}\{"p3"\}\}
 !\{\\xunderv~\{"d9"\}\{"d8"\}\{"p5"\}\{"p4"\}\}
 !\{\\xunderv~\{"d1"\}\{"d10"\}\{"p1"\}\{"p5"\}\}
 !\{\\vloop~\{"D3"\}\{"D2"\}\{"d2"\}\{"d1"\}|>|\{a\}\}
 !\{\\vloop~\{"D7"\}\{"D6"\}\{"d4"\}\{"d3"\}|>|\{b\}\}
 !\{\\vloop~\{"D11"\}\{"D10"\}\{"d6"\}\{"d5"\}|>|\{c\}>\}
 !\{\\vloop~\{"D15"\}\{"D14"\}\{"d8"\}\{"d7"\}|>|\{d\}\}
 !\{\\vloop~\{"D19"\}\{"D18"\}\{"d10"\}\{"d9"\}|>|\{e\}\}
\}\\]
\end{Alltt}
%\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\centerline{\large\bf \name{S49}{4.9. Other options}}
\vfill
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\end{document}
\def\command{{\it\color{magenta}command}}
\def\direction{{\it\color{magenta}direction}}
\def\factor{\FAC}
\def\modifier{{\it\color{magenta}modifier}}
\def\decor{{\it\color{magenta}decor}}
\def\slide{{\it\color{magenta}slide}}
\def\shape{{\it\color{magenta}shape}}
\def\composite{{\it\color{magenta}composite}}
\def\corner{{\it\color{magenta}corner}}
\def\stacking{{\it\color{magenta}stacking}}
\def\saving{{\it\color{magenta}saving}}
%\def\diag{{\it\color{magenta}diag}}
\def\number{{\it\color{cyan}number}}
\def\digit{{\it\color{cyan}digit}}
\def\adop{{\it\color{magenta}add-op}}
\def\text{\TEXT}
\def\variant{{\it\color{magenta}variant}}
\def\size{{\it\color{magenta}size}}
\def\DM{{\it\color{cyan}dimen}}
\def\orient{{\it\color{magenta}orient}}
\def\empty{{\it\color{yellow}empty}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\centerline{\bf\name{syntax}{Basic syntax of \Xy-pic}}
\GOTO{Top}
%Interpreted from left to right.
\def\Tiny{\scriptsize}
\vspace*{-4ex}
{\small
\begin{tabbing}
\hspace*{.5cm}\=\hspace*{.5cm}\=\hspace*{.5cm}\=\hspace{2cm}\=%
\hspace*{2cm}\=\kill
\Pos\\[-4pt]
\> \pos\blue{\tt +}\cod
 \>\>\>\> {\Tiny \MGNT{c}\La$+$\cod\ (size of \cod\/ is kept)}
 \`\ToEx{S21} \NEXT\\
\> \pos\blue{\tt -}\cod
 \>\>\>\> {\Tiny \MGNT{c}\La$-$\cod\ (size of \cod\/ is kept)}\\
\> \pos\blue{\normalsize\tt !}\cod
 \>\>\>\>{\tiny\MGNT{c}\La\pos, skew \MGNT{c} by \cod\/ 
 (move reference point)}\\
\> \pos\blue{\normalsize\tt .}\cod
 \>\>\>\> {\Tiny \MGNT{c}\La\MGNT{p} with covering \MGNT{c} (size changes)}\\
\> \pos\blue{\normalsize\tt ,}\cod
 \>\>\>\> {\Tiny \MGNT{c}\La\pos, then \MGNT{c}\La\cod}\\
\> \pos\blue{\normalsize\tt ;}\cod
 \>\>\>\> {\Tiny\MGNT{c}\La\pos, swap \MGNT{p}\ \MGNT{c}, 
 then \MGNT{c}\La\cod}\\
\> \pos\blue{\normalsize\tt :}\cod
 \>\>\>\> {\Tiny set \MGNT{$x$-base} and naturally 
  arrange \MGNT{$y$-base}}\\
\> \pos\blue{\normalsize\tt ::}\cod
 \>\>\>\> {\Tiny set \MGNT{$y$-base}}\\
\> \pos\blue{\tt *}\obj
 \>\>\>\> {\Tiny\MGNT{c}\La\pos, then drop \obj\/ at \MGNT{c}}\\
\> \pos\blue{\tt **}\obj
 \>\>\>\> {\Tiny\MGNT{c}\La\pos, connect from \MGNT{p} to \MGNT{c}
 using \obj\/}\\
\>  \pos\blue{\tt?}\place
 \>\>\>\>{\Tiny \MGNT{c}\La\pos, \MGNT{c}\La\place}\\
\>  \pos\blue{\tt\string@}\stacking
 \>\>\>\> {\Tiny\MGNT{c}\La\MGNT{p}, do \stacking}\\
\>  \pos\blue{\tt=}\saving
  \>\>\>\> {\Tiny\MGNT{c}\La\MGNT{p}, do \saving}\\
\>  \Cod
\>\>\>\>{\Tiny \MGNT{c}\La\cod}\\[-3pt]
\>\>    \red{\tt c p x y}
 \>\>\>{\Tiny \MGNT{c}, \MGNT{p}, axis intersections with 
 \MGNT{$\overrightarrow{pc}$}}\\
\>\>    \blue{\tt s}\digit
  \>\>\>{\Tiny stack position \digit\/ below the top (= \blue{\tt s}$0$)}\\
\>\>    {\tt\blue{s}\{\number\}}
  \>\>\>{\Tiny stack position \number\/ below the top}\\
\>\>    {\tt"{\it\color{cyan}id}"}
  \>\>\>{\Tiny restored what is saved as {\tt"{\it\color{cyan}id}"} earlier}\\
\>\>    {\tt\{\pos\/\ \decor\}}
 \>\>\>{\tiny the \MGNT{c} resulting from interpreting the group}\\
\>\>    \Vector
 \>\>\>{\Tiny \pos\/ is \vector\/ with zero size}\\
\>\>\>      \red{0}
 \>\>{\Tiny zero}\\
\>\>\>      {\tt \string<\DM,\DM\string>}
 \>\>{\Tiny absolute}\\
\>\>\>      {\tt \string<\DM\string>}
 \>\>{\Tiny absolute with equal dimensions}\\
\>\>\>      {\tt(\factor,\factor)}
 \>\>{\Tiny in current base}\\
\>\>\>      {\tt\blue{a}(\number)}
 \>\>{\Tiny angle in current base (\number\ is in degree)}\\
\>\>\>      \corner
 \>\>{\Tiny from reference point to \corner\/ of \MGNT{c}}\\[-2pt]
\>\>\>\hspace*{.5cm}\red{\tt L R D U CL CR CD CU C LD RD LU RU E P}\\
\>\>\>      \corner(\factor)
 \>\>{\Tiny the \corner\/ multiplied with \factor}\\
\>\>\>      \blue{/}\!\direction\/\ \DM\blue{/}
\>\>{\Tiny vector \DM\/ in \direction}\\
\>\>    \empty\\[-2pt]
%%%%%%%%
\blue{\tt@+\cod}\>\>\>\>\>{\Tiny push \cod}\`\ToEx{S22}\\
\blue{\tt@-\cod}\>\>\>\>\>{\Tiny\MGNT{c}\La\cod\/ then pop}\\
\blue{\tt@=\cod}\>\>\>\>\>{\Tiny load stack with \cod}\\
\blue{\tt@@\cod}\>\>\>\>\>{\Tiny do \cod\/ for \MGNT{c}\La stack}\\
\blue{\tt@i}    \>\>\>\>\>{\Tiny initialize}\\
\blue{\tt@(}    \>\>\>\>\>{\Tiny enter new frame}\\
\blue{\tt@)}    \>\>\>\>\>{\Tiny leave current frame}\\
\blue{\tt@:"{\it\color{cyan}id}"}
	\>\>\>\>\>{\Tiny {\tt"{\it\color{cyan}id}"} restores current base}\\
\blue{\tt@\MGNT{cod}\,"{\it\color{cyan}id}"}\>\>\>\>\>{\Tiny {\tt"{\it\color{cyan}id}"} reinterprets
\cod}\\
\blue{\tt@@"{\it\color{cyan}id}"}\>\>\>\>\>{\Tiny {\tt@="{\it\color{cyan}id}"} reloads this 
stack}\\
%%%%%%%%
\Place\`\BACK\ \NEXT\\[-3pt]
\>  \blue{\tt\string<}\place
  \>\>\>\>{\Tiny shave (0) to edge \MGNT{p}, \MGNT{f}\La0}\\
\>  \blue{\tt\string>}\place
  \>\>\>\>{\Tiny shave (1) to edge \MGNT{c}, \MGNT{f}\La1}\\
\>  {\tt(\factor)}\place
  \>\>\>\>{\Tiny \MGNT{f}\La\factor}\\
\>  \blue{\tt!}\{\pos\}\slide
  \>\>\>\>{\tiny intercept with line setup by \pos\ and apply \slide}\\
\>  \slide
  \>\>\>\>{\Tiny pick place ans apply \slide}\\
\>\>    \blue{\tt/}\!\DM\blue{\tt/}
 \>\>\>{\Tiny slide \DM\/ further along connection}\\
\>\>    \empty\\
\Obj\\[-2pt]
\>  \modifier\/\ \obj
 \>\>\>\>{\Tiny apply \modifier\/ to \obj}\\
\>  \MGNT{objectbox}\\
\>\>    {\tt\{\text\}}
 \>\>\>{\Tiny build default object or text in \TeX}\\
\>\>    \MGNT{library-obj}
 \>\>\>{\Tiny library object}\\
\>\>    {\tt\string@\Dir}
 \>\>\>{\Tiny (\Dir)ectional}\\
\>\>    {\tt\BK object \obj}
 \>\>\>{\Tiny wrap up \obj\/ as finished object box}\\
\>\>    {\tt\BK composite}\{\composite\}
 \>\>\>{\Tiny build composit object box}\\
\>\>    {\tt\BK xybox\{\pos\/\ \decor\}}
 \>\>\>{\Tiny package entire \Xy-picture as object}\\
\composite\\
\>  {\tt\composite\blue{*}\obj}
 \>\>\>\>{\Tiny add \obj\/ to composite object box}\\
\>  \obj
 \>\>\>\>{\Tiny first object is required}\\
\modifier\\
\>  {\tt\red{!}\vector}
 \>\>\>\>{\tiny \obj\/ has its reference point shifted by \vector}\\
\>  {\tt\red{!}}
 \>\>\>\>{\tiny \obj\/ has the original reference point reinstalled}\\
\>  \adop\/\ \size
 \>\>\>\>{\Tiny change \obj\/ size {\tt<\dm,\dm>}}\\
\>  {\tt\red{h i}}
 \>\>\>\>{\Tiny \obj\/ is given hidden, invisible}\\
\>  {\tt[\shape]}
  \>\>\>\>{\Tiny \obj\/ is given the specified \shape\/}\\
\>  {\tt[\blue{=}\shape]}
  \>\>\>\>{\tiny define \shape\/ to reestabrish current object style}\\
\>  \direction
\>\>\>\>{\Tiny set current \direction\/ for this \obj}\\
\>\>    \Diag\\
\>\>\>      \red{\tt l r d u ld rd lu ru}
\>\>{\Tiny left diagonal, right diagonal,\ldots}\\
\>\>\>      \empty
\>\>{\Tiny last used direction}\\
\>\>    \blue{\tt v}\vector
 \>\>\>{\Tiny direction of \vector}\\
\>\>    {\tt\blue{q}\{\pos\/\ \decor\}}
 \>\>\>{\Tiny direction from \MGNT{p} to \MGNT{c} after \pos\/ \decor}\\
\>\>    \direction:\vector
 \>\>\>{\Tiny \vector\/ relative to \direction}\\
\>\>    \direction\/\ \orient
\>\>\>{\Tiny \orient\/ to \direction}\\
%red{\string_}\\
%\>\>    \direction\red{\string^}\\

\goto{addop}{\adop}\\[-3pt]
\>\red{\tt +}
 \>\>\>\>{\Tiny default size: \tt+2$\times$\MGNT{objectmargin}}\\
\>\red{\tt -}
 \>\>\>\>{\Tiny default size: \tt-2$\times$\MGNT{objectmargin}}\\
\>\red{\tt =}
 \>\>\>\>{\Tiny default size: \tt=<\MGNT{objectwidth},\MGNT{objectheight}>}\\
\>\red{\tt +=}
 \>\>\>\>{\Tiny default size: \tt+=<max($L_c+R_c,D_c+U_c)$>}\\
\>\red{\tt -=}
 \>\>\>\>{\Tiny default size: \tt-=<min($L_c+R_c,D_c+U_c)$>}\\
%  \>\>\>\>\>		\red{\tt + - = += -=}\\
\orient
  \>\>\>\>\>\red{\tt \string_} {\Tiny(clockwise)}\qquad
  \red{\tt\string^} {\Tiny(conterclockwise)}\\
\shape\\
\>{\red{\tt.\ o r l u d} etc.}
\>\>\>\>
  {\Tiny many optional ones \red{\tt|({\color{cyan}num})  @!{\color{cyan}number}}}\\
\>\empty\\
\\
%%%
{\tt\BK objectmargin\adop\{\dm\}}
  \>\>\>\>\>{\Tiny set default object margin}\\
{\tt\BK objectwidth\adop\{\dm\}}
  \>\>\>\>\>{\Tiny set default object width}\\
{\tt\BK objectheight\adop\{\dm\}}
  \>\>\>\>\>{\Tiny set default object height}\\
\\
{\tt\BK xy \pos\ \decor\ \BK endxy}
\>\>\>\>\>{\Tiny build a box with an \Xy-picture}
\`\BACK\ \NEXT\\
{\tt\BK everyxy=\{\text\}}
  \>\>\>\>\>{\Tiny typed literally right after each {\tt\BK xy} command}\\
\\
\command\\
\>  {\tt\BK save \pos}
  \>\>\>\>{\Tiny save state, and do \pos}\\
\>  {\tt\BK restore}
  \>\>\>\>{\Tiny restore state by saved maching \BK save}\\
\>  {\tt\BK POS \pos}
  \>\>\>\>{\Tiny interpret \pos}\\
\>  {\tt\BK afterPOS \{\decor\} \pos}
  \>\>\>\>{\Tiny interpret \pos\/ and then perform \decor}\\
\>  {\tt\BK drop \obj}
  \>\>\>\>{\Tiny drop \obj\/ as}\quad \pos\/ \blue{\tt*}\obj \\
\>  {\tt\BK connect \obj}
  \>\>\>\> {\Tiny connect with \obj\/ as}\quad \pos\/ \blue{\tt**}\obj\\
\>  {\tt\BK relax}
  \>\>\>\>{\Tiny do nothing}\\
\>  \TeX-command
  \>\>\>\>{\Tiny any \TeX\/ command}\\
\>  {\tt\BK xyverbose \BK xytracing \BK xyquiet}
  \>\>\>\>\qquad\qquad{\Tiny tracing command}\\
\>  {\tt\BK xyignore}
  \>\>\>\>{\Tiny ignore \Xy-command}\\
\>  {\tt\BK xycompile\{\pos\ \decor\}} 
  \>\>\>\>{\Tiny compile to file \MGNT{prefix} \MGNT{no}.xyc}\\
\> {\tt\BK xycompileto\{\MGNT{name}\}\{\pos\ \decor\}}
  \>\>\>\>\qquad\qquad {\Tiny compile to file \MGNT{name}.xyc}\\
\decor\\
\>  \command\/\ \decor\\
\>  \empty\\
\\
%%
\MGNT{c}
  \>\>\>\>\>{\MGNT{c}\/urrent position}\\
\MGNT{p}
  \>\>\>\>\>{\MGNT{p}\/revious position}\\
{\it\color{cyan}digit}
  \>\>\>\>\>{one digit}\\
{\it\color{cyan}number}
  \>\>\>\>\>{an integer number}\\
\FAC
  \>\>\>\>\>{a real number}\\
\name{dm}{\dm}
  \>\>\>\>\>{a length in \TeX}\\
{\it\color{cyan}letter}
  \>\>\>\>\>{a letter (a usual character) in \TeX}\\
{\it\color{cyan}id}
  \>\>\>\>\>{a string in \TeX}\\
\TEXT
  \>\>\>\>\>{a text in \TeX}\\
{\it\color{cyan}space}
  \>\>\>\>\>{a space}\\
\empty
  \>\>\>\>\>{empty}\\
%\BK dir dir\\
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\>\>\>\>{\bf\normalsize Kernel object library}\\
{\tt\BK dir \DIR}
 \>\>\>\>\> {\Tiny a directional object (a kernel object)}\`\ToEx{S42}\\
\Dir\\
\>\MGNT{variant}\{\MGNT{\it main}\}
 \>\>\>\>{\Tiny see \href{#S17}{\S1.7} for \MGNT{main}
(in kernel library)}\\
\MGNT{variant}
  \>\>\>\>\>\red{\tt \string_ \string^ 2 3}\\
%\\
%%
{\tt\BK cir \MGNT{radius}\{\CIR\}}
   \>\>\>\>\>{\Tiny a circle object (a kernel object)}\`\ToEx{S25}\\
\MGNT{radius}\\
\> \Dm\\
\> \vector
   \>\>\>\>{\Tiny use $X$ of the \vector\/ as radius}\\
\> {\it\color{yellow}empty}
   \>\>\>\>{\Tiny use \red{$R_c$} as radius}\\
\Cir
  \>\>\>\>\>{\Tiny partial circle segment with \orient\/ation}\\
\>  \Diag\ \orient\ \Diag
  \>\>\>\>{\Tiny \diag\/s are start/end directions along circle}\\
\>  \empty
 \>\>\>\>{\Tiny full circle}\\
%\\
%%
{\tt\BK txt<\MGNT{width}> \MGNT{style}\{\TEXT\}}
 \>\>\>\>\>{\tiny\TEXT\/ is typeset to \MGNT{width} with \MGNT{style}(a kernel object)}\\
\MGNT{width}	\>\>\>\>\>{\Tiny \BK\BK\/ can be used in \TEXT. All lines are centered.}\\
\>\Dm\`\ToEx{S115}\\
\> {\it\color{yellow}empty}\\
\MGNT{style}
  \>\>\>\>\>{\scriptsize a font command etc.\ for each line}\\
\\
\>\>\>\>{\bf\normalsize Extensions}\`\BACK\ \NEXT\\
\name{Dcurve}{\tt **\BK crvs\{\MGNT{dir}\}}
	\>\>\>\>\>{\Tiny get \MGNT{polist} from the stack}\`\ToEx{S31}\\
{\tt \BK curve\MGNT{modifier}\{\MGNT{curve-object} \MGNT{polist}\}}
	\>\>\>\>\>\qquad{\Tiny as a {\decor}\/ation}\\
{\tt \BK crv\MGNT{modifier}\{\MGNT{curve-object} \MGNT{polist}\}}
	\>\>\>\>\>\qquad{\Tiny {\tt \BK curve} equals {\tt \BK connect\BK crv}}\\
%
\MGNT{modifier}
\\
\> {\tt\blue{\string~}}\MGNT{curve-option} \MGNT{modifier}
 \>\>\>\>{\Tiny set \MGNT{curve-option}}\\
\> \empty\>\>\>\>{\Tiny default is {\tt\string~C}}\\
\MGNT{curve-option}\\
\>\red{\tt p P l L c C pc pC Pc PC lc lC Lc LC cC}\\
\MGNT{curve-object}\\
\>\blue{\tt\string~*}\obj\ \MGNT{curve-object}
 \>\>\>\>{\Tiny specify the drop object}\\
\>\blue{\tt\string~**}\obj\ \MGNT{curve-object}
 \>\>\>\>{\Tiny specify connect pbject}\\
\>\empty\\
\MGNT{polist}\\
\>\pos\ \blue{\tt\string&} \MGNT{polist}
 \>\>\>\>{\Tiny list f positions for control points}\\
\>\blue{\tt\string~@}
 \>\>\>\>{\Tiny add the current stack to the control points}\\
\>\blue{\tt\string~@ \string& }\MGNT{polist}\\
\>\empty\\
{\tt\BK xycircle\vector\{\MGNT{style}\}}\`\ToEx{Circles}\\
{\tt\BK qspline\{\MGNT{style}\}}\\
{\tt\BK frm\{\MGNT{style}\}}\`\ToEx{S32}\\
{\tt\BK SelectTips\{\MGNT{family}\}}\\
\MGNT{family}\\
	\>\red{\tt xy cm eu}\\
\\
{\tt\BK xyimport(\MGNT{width},\MGNT{height})%
\{\MGNT{graphic}\}}\\
{\tt\BK xyimport(\MGNT{width},\MGNT{height})%
(\MGNT{$x$-off},\MGNT{$y$-off})\{\MGNT{graphic}\}}\\
\\
%\\
\>\>\>\>{\bf\normalsize Features}\\
{\tt\BK afterPATH} \{\MGNT{decor}\}\MGNT{path}
 \>\>\>\>\>{\Tiny Interpret \MGNT{path} and then run \MGNT{decor}}\\
\name{DefPATH}{{\tt\BK PATH \MGNT{path}}}
 \>\>\>\>\>{\Tiny Interpret \MGNT{path}}\`\ToEx{S41}\ \BACK\ \NEXT\\
\name{pathdef}{\MGNT{path}}\\
\>{\tt\color{blue}\string~\MGNT{action}\{\MGNT{stuff}\}}\MGNT{path}
 \>\>\>\>{\Tiny set \MGNT{action} to \MGNT{stuff}}\\
\>{\tt\color{blue}\string~\MGNT{which}\{\MGNT{labels}\}}\MGNT{path}
 \>\>\>\>{\Tiny add \MGNT{labels} prefix for some segments}\\
\>{\tt\color{blue}\string~\{\MGNT{stuff}\}}\MGNT{path}
 \>\>\>\>{\Tiny set failure continuaton to \MGNT{stuff}}\\
\>{\tt\color{blue}'}\MGNT{segment} \MGNT{path}
 \>\>\>\>{\Tiny make straight segment}\\
\>{\tt\color{blue}`}\MGNT{turn} \MGNT{segment} \MGNT{path}
 \>\>\>\>{\Tiny make turning segment}\\
\>\MGNT{segment}
 \>\>\>\>{\Tiny make last segment}\\
\>\>\MGNT{path-pos} \MGNT{slide} \MGNT{labels}
 \>\>\>{\Tiny segment with \MGNT{slide} and \MGNT{labels}}\\
\MGNT{action}\>\>\>\>{\tt\color{red}= / }
{\Tiny use \MGNT{stuff} before/after each segment}\\
\MGNT{which}\>\>\>\>{\tt\color{red}< > }{\Tiny next (last) segment only} 
\quad{\tt\color{red} = }{\Tiny every segmant}\\
\MGNT{turn}\\
\>\Diag\/ \MGNT{turnradius}
 \>\>\>\>{\Tiny 1/4 turn starting in \MGNT{diag}}\\
\>\Cir\ \MGNT{turnradius}
 \>\>\>\>{\Tiny explisit turn}\\
\MGNT{turnradius}\\
\>{\tt\color{blue}/}\Dm
  \>\>\>\>{\Tiny set turnradius to \dm}\\
\>\empty
  \>\>\>\>{\Tiny use default turn radius}\\
\MGNT{slide}\\
\>\Dm
 \>\>\>\>{\Tiny \dm\/ in the ``above" direction}\\
\>\empty\\
\MGNT{labels}\\
\>{\tt\color{blue}\string^}\MGNT{anchor} \MGNT{it} \MGNT{alias} \MGNT{labels}
 \>\>\>\>{\Tiny label with \MGNT{it}\/em above \MGNT{anchor}}\\
\>{\tt\color{blue}\string_}\MGNT{anchor} \MGNT{it} \MGNT{alias} \MGNT{labels}
 \>\>\>\>{\Tiny label with \MGNT{it}\/em below \MGNT{anchor}}\\
\>{\tt\color{blue}|}\MGNT{anchor} \MGNT{it} \MGNT{alias} \MGNT{labels}
 \>\>\>\>{\Tiny break with \MGNT{it}\/em at \MGNT{anchor}}\\
\>\empty\\
\MGNT{anchor}\\
\>{\tt\color{blue}-}\MGNT{anchor}\\
\>\MGNT{place}\\
\MGNT{alias}\\
\>{\tt\color{blue}="{\it\color{cyan}id}"}
 \>\>\>\>{\Tiny optional name for label object}\\
\>\empty\\
\MGNT{it}\`\BACK\ \NEXT\\\
\>{\it\color{cyan}digit}
	\>\>\>\>{\Tiny\tt\color{red}0 1 2 3 4 5 6 7 8 9}\\
\>{\it\color{cyan}letter}
	\>\>\>\>{\Tiny\tt\color{red}0 $\cdots$ A B $\cdots$ y z}\\
\>{\tt\{\TEXT\}}
	\>\>\>\>{\Tiny usual text}\\
\>\MGNT{cs}\\
\>{\tt\color{blue}*}\obj
	\>\>\>\>{\Tiny\obj\/ect}\\
\>{\tt\color{blue}@}\Dir
	\>\>\>\>{\Tiny\DIR\/ectory}\\
\>{\tt\color{blue}[\MGNT{shape}]}\MGNT{it}
	\>\>\>\>{\Tiny use [\MGNT{shape}] for \MGNT{it}\/em}\\
{\tt\BK labelmargin\goto{addop}{\MGNT{add-op}}\{\dm\}}\\
{\tt\BK turnradius\goto{addop}{\MGNT{add-op}}\{\dm\}}
\>\>\>\>\>{\Tiny default: 10pt}\\
\\
%%%%%%%%
{\tt\BK ar \MGNT{form}{}\green{$^*$} \goto{pathdef}{\MGNT{path}}}
	\>\>\>\>\>{\Tiny make \MGNT{arrow} along \MGNT{path}}\\
\>\>{\Tiny\MGNT{form}{}\green{$^*$} represents \MGNT{form} \MGNT{form} \MGNT{$\cdots$}}\>\>\>{\Tiny(may be \empty)}\\
\MGNT{form}\\
\>{\tt \blue{@}\MGNT{variant}}
	\>\>\>\>{\Tiny use \MGNT{variant} of arrow}\\
\>{\tt \blue{@}\MGNT{variant}\{\MGNT{tip}\}}
	\>\>\>\>{\Tiny use standart stem and \MGNT{tip} for head}\\
\>{\tt \blue{@}\MGNT{variant}\{\MGNT{tip} \MGNT{conn} \MGNT{tip}\}}
	\>\>\>\>{\Tiny use \MGNT{tip} \MGNT{conn} \MGNT{tip} as tail, stem, head}\\
\>{\tt \blue{@}\MGNT{connchar}}
	\>\>\>\>{\Tiny change stem by \MGNT{connchar}}\\
\>{\tt \blue{@!}}
	\>\>\>\>{\Tiny dash the arrow stem by doubling it}\\
\>{\tt \blue{@}/\!\MGNT{direction}\/ \MGNT{dist}/}
	\>\>\>\>{\Tiny curve arrow the \MGNT{dist}\/ance 
    towards \MGNT{direction}}\\
\>{\tt \blue{@}(\MGNT{direction},\MGNT{direction})}
	\>\>\>\>{\Tiny curve fit with in-out directions}\\
\>{\tt \blue{@`}\{\MGNT{control-point-list}\}}
	\>\>\>\>{\Tiny curve setup with explicit control points}\\
\>{\tt \blue{@}[\MGNT{shape}]}
	\>\>\>\>{\Tiny add [\MGNT{shape}] to \MGNT{modifier}s for all objects}\\
\>{\tt \blue{@}\{\MGNT{modifier}\green{$^*$}\}}
	\>\>\>\>{\Tiny add \MGNT{modifier} for all objects}\\
\>{\tt \blue{@}<\Dm>}
	\>\>\>\>{\Tiny slide arrow by \Dm}\\
\>{\tt\red{|}\Anchor\/ \MGNT{it}}
	\>\>\>\>{\Tiny break each segment at \MGNT{anchor} with \MGNT{it}\/em}\\
\>{\tt\red{\string^}\Anchor\/ \MGNT{it}}
	\>\>\>\>{\Tiny label each segment at \red{\tt\string^}\MGNT{anchor}
     with \MGNT{it}\/em}\\
\>{\tt\red{\string_}\Anchor\/ \MGNT{it}}
	\>\>\>\>{\Tiny label each segment at \red{\tt\string_}\MGNT{anchor} 
    with \MGNT{it}\/em}\\
\>{\tt\blue{@?}}
	\>\>\>\>{\Tiny reverse meaning of \red{\tt\string^} and \red{\tt\string_}}\\
%%%%
\goto{S17}{\MGNT{variant}}\\
 \>{\tt\color{red}\string^ \string_ 0 1 2 3}\\
 \>\empty\\
\goto{S17}{\MGNT{tip}}\\
\> \MGNT{tipchar}\green{${}^*$}\\
\> \Dir
	\>\>\>\>{\Tiny \DIR\/ectional}\\
\goto{S17}{\MGNT{tipchar}}\>\>\>\>
{\tt\color{red}< > ( ) | ' ` + / {\color{cyan}letter space}}\\
\goto{S17}{\MGNT{conn}}\\
\>\MGNT{conchar}\green{${}^*$}\\
\>\Dir
	\>\>\>\>{\Tiny \DIR\/ectional}\\
\goto{S17}{\MGNT{conchar}}
	\>\>\>\>{\tt\color{red}- .\ \string~ = :}\\
%%%%%%%%%%%%%%%%%%%%%% xymatrix %%%%%%%%%%%%%%%%%%%%%%%%
{\tt \BK xymatrix \MGNT{setup}\green{${}^*$}\{}
 \`\BACK\ \NEXT\ \ToEx{S11} \Goto{Top}{Top}\\
{\tt\ \MGNT{entry} \& \MGNT{entry} \& $\cdots$ \BK\BK}\\
{\tt\ \MGNT{entry} \& \MGNT{entry} \& $\cdots$ \BK\BK}\\
{\tt\ $\cdots$ \}}\\
%\\
\MGNT{setup}\\
\>{\tt \blue{@R} \adop\ \dm}
  \>\>\>\>{\Tiny change row spacing}\\
\>{\tt \blue{@C} \adop\ \dm}
  \>\>\>\>{\Tiny change column spacing}\\
\>{\tt \blue{@}\ \ \adop\ \dm}
  \>\>\>\>{\Tiny change row and column spacing}\\
\>{\tt \blue{@!R}}
  \>\>\>\>{\Tiny every row spacing is the maximal in entries}\\
\>{\tt \blue{@!C}}
  \>\>\>\>{\Tiny every column spacing is the maximal in entries}\\
\>{\tt \blue{@!}}
  \>\>\>\>{\Tiny\tt\blue{@!R @!C}}\\
\>{\tt \blue{@!0}}
  \>\>\>\>{\Tiny entries have size 0, 
   {\tt\blue{@!R0} \blue{@!C0}} are possible}\\
\>{\tt \blue{@!=\dm}}
  \>\>\>\>{\Tiny entries have size \dm, \blue{@!R=\dm} etc are OK}\\
\>{\tt \blue{@1}}
  \>\>\>\>{\Tiny suited for one-line matrices}\\
\>{\tt \blue{@}\MGNT{direction}}
 \>\>\>\>{\Tiny orientation, \red{\tt r} is the default of \MGNT{direction}}\\
\>{\tt \blue{@*}[\MGNT{shape}]}
 \>\>\>\>{\Tiny apply to every entries}\\
\>{\tt \blue{@*}\adop\ \MGNT{size}}
 \>\>\>\>{\Tiny apply to every entries}\\
\>{\tt \blue{@}\MGNT{em} \adop\ \dm}
\>\>\>\>{\Tiny set size for entries}\\
\MGNT{em}\\
\>\red{\tt M}
 \>\>\>\>{\Tiny entry margin}\\
\>\red{\tt W}
 \>\>\>\>{\Tiny entry width}\\
\>\red{\tt H}
 \>\>\>\>{\Tiny entry height}\\
\>\red{\tt L}
 \>\>\>\>{\Tiny label separation for label}\\
\MGNT{entry}\\
 \>\{\text\}
   \>\>\>\>{\Tiny a math text, sometimes \{ \} may be omitted}\\
 \>\blue{\tt*}\obj\ \pos\ \decor\\
 \>{\tt\blue{**}[\MGNT{shape}]}\MGNT{entry}\\
 \>{\tt\blue{**}[\MGNT{modifier}\green{${}^*$}]}\MGNT{entry}\\
{\tt "\MGNT{r},\MGNT{c}"}
  \>\>\>\>\>{\Tiny entry row \MGNT{r} and column \MGNT{c}, top left is {\tt"1,1"}}\\
{\tt [$\Delta$\MGNT{r},$\Delta$\MGNT{c}]}
  \>\>\>\>\>{\Tiny $\Delta$\MGNT{r} rows below and $\Delta$\MGNT{c} columns right}\\
{\tt [\MGNT{hop}\green{${}^*$}]}
 \>\>\>\>\>{\Tiny entry reached by \MGNT{hop}\green{${}^*$}}\\
{\tt [\MGNT{hop}\green{${}^+$}\MGNT{place}]}
 \>\>\>\>\>{\Tiny place on straight line to non-empty \MGNT{hop}\green{${}^*$}}\\
\MGNT{hop}\\
\>{\tt\color{red}r l u d}
 \>\>\>\>{\Tiny right left up down}\\
{\tt "\MGNT{prefix} \MGNT{r},\MGNT{c}"\quad \ \ 
["\MGNT{prefix}" $\Delta$\MGNT{r},$\Delta$\MGNT{c}]}
 \>\>\>\>\>\qquad\qquad{\Tiny entry from the matrix \MGNT{prefix}}\\
{\tt ["\MGNT{prefix}" \MGNT{hop}\green{${}^*$}]
["\MGNT{prefix}" \MGNT{hop}\green{${}^+$}\MGNT{place}]} 
 \>\>\>\>\>\qquad\qquad{\Tiny entry from the matrix \MGNT{prefix}}\\[.5ex]
{\tt\BK xymatrixrowsep\,\adop\,\dm}
 \>\>\>\>\>\ \ {\Tiny change row separation (default 2pc)}\\
{\tt\BK xymatrixcolsep\,\adop\,\dm}
 \>\>\>\>\>\ \ {\Tiny change column separation (default 2pc)}\\
{\tt\BK entrymodifiers=\{\MGNT{modifier}\green{${}^*$}\}}\\
{\tt\BK everyentry=\{\decor\}}\\
%%%%%%%%%%%%%%%%%%%  GRAPH %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\name{Dgraphic}{\tt\BK xygraph\{\MGNT{graph}\}}
\>\>\>\>\>{\Tiny Setup \MGNT{graph} which equals} \MGNT{step}\green{${}^*$}
\`\ToEx{S42}\\
%\MGNT{graph}
%	\>\>\>\>\>{\Tiny interpret \MGNT{step}\/s in sequence}\\
%\>\MGNT{step}\green{${}^*$}\\
\MGNT{step}\`\ \BACK\ \Goto{Top}{Top}\\[-3pt]
\>{\tt\blue{-}\MGNT{arrow} \MGNT{node} \MGNT{labels}}
	\>\>\>\>{\Tiny draw line to \MGNT{node} with \MGNT{labels}}\\
\>{\tt\blue{:}\MGNT{arrow} \MGNT{node} \MGNT{labels}}
	\>\>\>\>{\Tiny draw \MGNT{arrow} to \MGNT{node} with \MGNT{labels}}\\
\>{\tt(\MGNT{list})}
	\>\>\>\>{\Tiny map current node over \MGNT{list}}\\
\>\MGNT{node}
	\>\>\>\>{\Tiny move to the \MGNT{node}}\\
\>\>{\tt[\MGNT{move}]}
	\>\>\>{\Tiny new node \MGNT{move}\/d relative to current}\\
\>\>{\tt\blue{\&}}
	\>\>\>{\Tiny new node is next column}\\
\>\>{\tt\blue{\BK \BK}}
	\>\>\>{\Tiny new node is next row}\\
\>\>{\tt"{\it\color{cyan}id}"}
	\>\>\>{\Tiny previously saved node}\\
\>\>{\tt\blue{?}}
	\>\>\>{\Tiny currently mapped node}\\
\>\>{\tt\MGNT{node} \MGNT{it}}
	\>\>\>{\Tiny \MGNT{node} with \MGNT{it} typeset and saved there}\\
\>\>{\tt\MGNT{node}="{\it\color{cyan}id}"}
	\>\>\>{\Tiny \MGNT{node} saved as "{\it\color{cyan}id}"}\\
\>\>{\tt\MGNT{node}\blue{!}\MGNT{escape}}
	\>\>\>{\Tiny \MGNT{node} augment node with material in another node}\\
\MGNT{move}\\[-2pt]
\>\MGNT{hop}\green{${}^*$}
	\>\>\>\>{\Tiny\MGNT{hop}s (\red{\tt d u l r}) from current node}\\
\>\MGNT{hop}\green{${}^*$} \Place\ \MGNT{move}
	\>\>\>\>{\Tiny do \MGNT{hop}s but use \MGNT{place} and \MGNT{move} again}\\
\MGNT{list}\\[-6pt]
\>\MGNT{graph}, \MGNT{list}\\[-2pt]
\>\MGNT{graph}\\[-1pt]
\MGNT{escape}\\[-2pt]
\>{\tt\{\pos,\decor\}}
	\>\>\>\>{\Tiny perform \pos\ \decor}\\
\>{\tt\blue{M} \MGNT{matrix}}
	\>\>\>\>{\Tiny insert \MGNT{matrix}}\\
\>{\tt\blue{P} \MGNT{polygon}}
	\>\>\>\>{\Tiny insert \MGNT{polygon}}\\
\>{\tt\blue{E} \MGNT{ellipse}}
	\>\>\>\>{\Tiny insert \MGNT{ellipse}}\\
\>{\tt\blue{\string~} \MGNT{setup}}
	\>\>\>\>{\Tiny setup paramaters}\\
{\tt\blue{!\string~}\MGNT{setup}}\\[-2pt]
\>{\tt\blue{!\string~}:\{\MGNT{arrow}\}}
	\>\>\>\>{\Tiny include with every \blue{\tt:} arrow}\\
\>{\tt\blue{!\string~}-\{\MGNT{arrow}\}}
	\>\>\>\>{\Tiny include with every \blue{\tt-} line}\\
\>{\tt\blue{!\string~*}\{\MGNT{modifier}\}}
	\>\>\>\>{\Tiny include with every non-\blue{\tt*} node}\\
\>{\tt\blue{!\string~}{\it\color{cyan}letter}\{\MGNT{graph}\}}
	\>\>\>\>{\Tiny define new graph escape} \blue{\tt!}%
    {\it\color{cyan}letter}\\
%%
{\tt\BK newgraphescape\{{\it\color{cyan}letter}\}\color{red}{\verb|#1#2|$\cdots$}\{\MGNT{graph}\}}\\
%%%
\name{Dpolygon}%
{\tt\BK xypolygon\,{\it\color{cyan}number} "\MGNT{prefix}" \{\MGNT{switches}$\cdots$\}}\`\ToEx{S44}\\
{\tt\blue{\string~:}\{$\ldots$\}}
	\>\>\>\>\>{\Tiny for rescaling}\\
{\tt\blue{\string~*}\{\obj\}}
	\>\>\>\>\>{\Tiny \obj\/ at each vertex} \\
{\tt\blue{\string~=}\{\MGNT{angle}\}}
	\>\>\>\>\>{\Tiny aligne first vertex}\\
{\tt\blue{\string~<}\{$\ldots$\}}
	\>\>\>\>\>{\Tiny directional for "spokes"} \\
{\tt\blue{\string~<<}\{\MGNT{arrow}\}}
	\>\>\>\>\>{\Tiny use \MGNT{arrow} for "spokes"} \\
{\tt\blue{\string~<>}\{$\ldots$\}}
	\>\>\>\>\>{\Tiny labels and breakes on "spokes"} \\
{\tt\blue{\string~>}\{$\ldots$\}}
	\>\>\>\>\>{\Tiny directional for "slides"} \\
{\tt\blue{\string~><}\{\MGNT{arrow}\}}
	\>\>\>\>\>{\Tiny use \MGNT{arrow} for "slides"} \\
{\tt\blue{\string~>>}\{$\ldots$\}}
	\>\>\>\>\>{\Tiny labels and breaks in "slides"}
\end{tabbing}
\end{document}
