\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:}\BK#1\special{html:}}
\def\G#1{\special{html:}\BK#1\special{html:}}
\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:}\colorbox{cyan}{\tiny$\Rightarrow$}\special{html:}}
\def\BACK%
{\special{html:}\colorbox{cyan}{\tiny$\Leftarrow$}\special{html:}}
\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+=}\\
\>\red{\tt -=}
\>\>\>\>{\Tiny default size: \tt-=}\\
% \>\>\>\>\> \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}