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