diff options
author | Karl Berry <karl@freefriends.org> | 2007-12-26 00:46:06 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-12-26 00:46:06 +0000 |
commit | 09c2e34333852c976a2bfb988393426be3139ea5 (patch) | |
tree | 39fa7de8c6977e71c7da74c78cc463b0a7b8463d /Master/texmf-dist/tex/latex/barr | |
parent | 8622f0261b07f52a9363d670b16759eb4b3523e1 (diff) |
barr update (2005-12-13)
git-svn-id: svn://tug.org/texlive/trunk@5911 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/barr')
-rw-r--r-- | Master/texmf-dist/tex/latex/barr/diagram.tex | 1048 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/barr/diagxy.tex | 952 |
2 files changed, 0 insertions, 2000 deletions
diff --git a/Master/texmf-dist/tex/latex/barr/diagram.tex b/Master/texmf-dist/tex/latex/barr/diagram.tex deleted file mode 100644 index 2a322759d3b..00000000000 --- a/Master/texmf-dist/tex/latex/barr/diagram.tex +++ /dev/null @@ -1,1048 +0,0 @@ -% This should appear in a file named diagram.tex -% Copyright 1988,1989 Michael Barr -% Department of Mathematics and Statistics -% McGill University -% 805 Sherbrooke St., W -% Montreal, Quebec, Canada -% H3P 1S4 -% -% barr@triples.math.mcgill.ca -% -% All commercial rights reserved. May be freely distributed -% and used with the following exceptions: -% 1. No commercial use without explicit permission. -% 2. It may not be used by any employee of a telephone -% company. -% 3. It may not be distributed without this notice. -% -% Last revised 91-05-04 - -% Ascii character test: -% 32: 33: ! 34: " 35: # 36: $ 37: % 38: & 39: ' -% 40: ( 41: ) 42: * 43: + 44: , 45: - 46: . 47: / -% 48: 0 49: 1 50: 2 51: 3 52: 4 53: 5 54: 6 55: 7 -% 56: 8 57: 9 58: : 59: ; 60: < 61: = 62: > 63: ? -% 64: @ 65: A 66: B 67: C 68: D 69: E 70: F 71: G -% 72: H 73: I 74: J 75: K 76: L 77: M 78: N 79: O -% 80: P 81: Q 82: R 83: S 84: T 85: U 86: V 87: W -% 88: X 89: Y 90: Z 91: [ 92: \ 93: ] 94: ^ 95: _ -% 96: ` 97: a 98: b 99: c 100: d 101: e 102: f 103: g -% 104: h 105: i 106: j 107: k 108: l 109: m 110: n 111: o -% 112: p 113: q 114: r 115: s 116: t 117: u 118: v 119: w -% 120: x 121: y 122: z 123: { 124: | 125: } 126: ~ - - -\makeatletter - -\def\diagram{\m@th\leftwidth=\z@ \rightwidth=\z@ \topheight=\z@ -\botheight=\z@ \setbox\@picbox\hbox\bgroup} - -\def\enddiagram{\egroup\wd\@picbox\rightwidth\unitlength -\ht\@picbox\topheight\unitlength \dp\@picbox\botheight\unitlength -\hskip\leftwidth\unitlength\box\@picbox} - -\def\bfig{\begin{diagram}} -\def\efig{\end{diagram}} -\newcount\wideness \newcount\leftwidth \newcount\rightwidth -\newcount\highness \newcount\topheight \newcount\botheight - -\def\ratchet#1#2{\ifnum#1<#2 \global #1=#2 \fi} - -\def\putbox(#1,#2)#3{% -\horsize{\wideness}{#3} \divide\wideness by 2 -{\advance\wideness by #1 \ratchet{\rightwidth}{\wideness}} -{\advance\wideness by -#1 \ratchet{\leftwidth}{\wideness}} -\vertsize{\highness}{#3} \divide\highness by 2 -{\advance\highness by #2 \ratchet{\topheight}{\highness}} -{\advance\highness by -#2 \ratchet{\botheight}{\highness}} -\put(#1,#2){\makebox(0,0){$#3$}}} - -\def\putlbox(#1,#2)#3{% -\horsize{\wideness}{#3} -{\advance\wideness by #1 \ratchet{\rightwidth}{\wideness}} -{\ratchet{\leftwidth}{-#1}} -\vertsize{\highness}{#3} \divide\highness by 2 -{\advance\highness by #2 \ratchet{\topheight}{\highness}} -{\advance\highness by -#2 \ratchet{\botheight}{\highness}} -\put(#1,#2){\makebox(0,0)[l]{$#3$}}} - -\def\putrbox(#1,#2)#3{% -\horsize{\wideness}{#3} -{\ratchet{\rightwidth}{#1}} -{\advance\wideness by -#1 \ratchet{\leftwidth}{\wideness}} -\vertsize{\highness}{#3} \divide\highness by 2 -{\advance\highness by #2 \ratchet{\topheight}{\highness}} -{\advance\highness by -#2 \ratchet{\botheight}{\highness}} -\put(#1,#2){\makebox(0,0)[r]{$#3$}}} - - -\def\adjust[#1]{} % For compatibility - -\newcount \coefa -\newcount \coefb -\newcount \coefc -\newcount\tempcounta -\newcount\tempcountb -\newcount\tempcountc -\newcount\tempcountd -\newcount\xext -\newcount\yext -\newcount\xoff -\newcount\yoff -\newcount\gap% -\newcount\arrowtypea -\newcount\arrowtypeb -\newcount\arrowtypec -\newcount\arrowtyped -\newcount\arrowtypee -\newcount\height -\newcount\width -\newcount\xpos -\newcount\ypos -\newcount\run -\newcount\rise -\newcount\arrowlength -\newcount\halflength -\newcount\arrowtype -\newdimen\tempdimen -\newdimen\xlen -\newdimen\ylen -\newsavebox{\tempboxa}% -\newsavebox{\tempboxb}% -\newsavebox{\tempboxc}% - -\newdimen\w@dth - -\def\setw@dth#1#2{\setbox\z@\hbox{\m@th$#1$}\w@dth=\wd\z@ -\setbox\@ne\hbox{\m@th$#2$}\ifnum\w@dth<\wd\@ne \w@dth=\wd\@ne \fi -\advance\w@dth by 1.2em} - -%The definitions below look more elaborate than they need to be. -%The reason is that an empty asscript will still cause extra vertical -%spacing and the only way to avoid ugly extra space seems to be using -%some such method as this. - -\def\t@^#1_#2{\allowbreak\def\n@one{#1}\def\n@two{#2}\mathrel -{\setw@dth{#1}{#2} -\mathop{\hbox to \w@dth{\rightarrowfill}}\limits -\ifx\n@one\empty\else ^{\box\z@}\fi -\ifx\n@two\empty\else _{\box\@ne}\fi}} -%\def\t@^#1_#2{\mathrel{\mathop{\hbox{\rightarrowfill}}\limits -%^{\mkern12mu#1\mkern12mu}_{\mkern12mu#2\mkern12mu}}} -\def\t@@^#1{\@ifnextchar_{\t@^{#1}}{\t@^{#1}_{}}} -\def\to{\@ifnextchar^{\t@@}{\t@@^{}}} - -\def\t@left^#1_#2{\def\n@one{#1}\def\n@two{#2}\mathrel{\setw@dth{#1}{#2} -\mathop{\hbox to \w@dth{\leftarrowfill}}\limits -\ifx\n@one\empty\else ^{\box\z@}\fi -\ifx\n@two\empty\else _{\box\@ne}\fi}} -%\def\t@left^#1_#2{\mathrel{\mathop{\hbox{\leftarrowfill}}\limits -%^{\mkern12mu#1\mkern12mu}_{\mkern12mu#2\mkern12mu}}} -\def\t@@left^#1{\@ifnextchar_{\t@left^{#1}}{\t@left^{#1}_{}}} -\def\toleft{\@ifnextchar^{\t@@left}{\t@@left^{}}} - -\def\two@^#1_#2{\allowbreak -\def\n@one{#1}\def\n@two{#2}\mathrel{\setw@dth{#1}{#2} -\mathop{\vcenter{\lineskip\z@\baselineskip\z@ - \hbox to \w@dth{\rightarrowfill}% - \hbox to \w@dth{\rightarrowfill}}% - }\limits -\ifx\n@one\empty\else ^{\box\z@}\fi -\ifx\n@two\empty\else _{\box\@ne}\fi}} -\def\tw@@^#1{\@ifnextchar _{\two@^{#1}}{\two@^{#1}_{}}} -\def\two{\@ifnextchar ^{\tw@@}{\tw@@^{}}} - -\def\tofr@^#1_#2{\def\n@one{#1}\def\n@two{#2}\mathrel{\setw@dth{#1}{#2} -\mathop{\vcenter{\hbox to \w@dth{\rightarrowfill}\kern-1.7ex - \hbox to \w@dth{\leftarrowfill}}% - }\limits -\ifx\n@one\empty\else ^{\box\z@}\fi -\ifx\n@two\empty\else _{\box\@ne}\fi}} -\def\t@fr@^#1{\@ifnextchar_ {\tofr@^{#1}}{\tofr@^{#1}_{}}} -\def\tofro{\@ifnextchar^ {\t@fr@}{\t@fr@^{}}} - -\def\epi{\mathop{\mathchar"221\mkern -12mu\mathchar"221}\limits} -\def\leftepi{\mathop{\mathchar"220\mkern -12mu\mathchar"220}\limits} -\def\mon{\mathop{\m@th\hbox to - 14.6\P@{\lasyb\char'51\hskip-2.1\P@$\arrext$\hss -$\mathord\rightarrow$}}\limits} % width of \epi -\def\leftmono{\mathrel{\m@th\hbox to -14.6\P@{$\mathord\leftarrow$\hss$\arrext$\hskip-2.1\P@\lasyb\char'50% -}}\limits} % width of \epi -\mathchardef\arrext="0200 % amr minus for arrow extension (see \into) - - -\setlength{\unitlength}{.01em}% -\def\settypes(#1,#2,#3){\arrowtypea#1 \arrowtypeb#2 \arrowtypec#3} -\def\settoheight#1#2{\setbox\@tempboxa\hbox{#2}#1\ht\@tempboxa\relax}% -\def\settodepth#1#2{\setbox\@tempboxa\hbox{#2}#1\dp\@tempboxa\relax}% -\def\settokens`#1`#2`#3`#4`{% - \def\tokena{#1}\def\tokenb{#2}\def\tokenc{#3}\def\tokend{#4}} -\def\setsqparms[#1`#2`#3`#4;#5`#6]{% -\arrowtypea #1 -\arrowtypeb #2 -\arrowtypec #3 -\arrowtyped #4 -\width #5 -\height #6 -} -\def\setpos(#1,#2){\xpos=#1 \ypos#2} - - - -\def\settriparms[#1`#2`#3;#4]{\settripairparms[#1`#2`#3`1`1;#4]}% - -\def\settripairparms[#1`#2`#3`#4`#5;#6]{% -\arrowtypea #1 -\arrowtypeb #2 -\arrowtypec #3 -\arrowtyped #4 -\arrowtypee #5 -\width #6 -\height #6 -} - -\def\resetparms{\settripairparms[1`1`1`1`1;500]\width 500}%default values% - -\resetparms - -\def\mvector(#1,#2)#3{%% -\put(0,0){\vector(#1,#2){#3}}% -\put(0,0){\vector(#1,#2){26}}% -} -\def\evector(#1,#2)#3{{%% -\arrowlength #3 -\put(0,0){\vector(#1,#2){\arrowlength}}% -\advance \arrowlength by-30 -\put(0,0){\vector(#1,#2){\arrowlength}}% -}} - -\def\horsize#1#2{% -\settowidth{\tempdimen}{$#2$}% -#1=\tempdimen -\divide #1 by\unitlength -} - -\def\vertsize#1#2{% -\settoheight{\tempdimen}{$#2$}% -#1=\tempdimen -\settodepth{\tempdimen}{$#2$}% -\advance #1 by\tempdimen -\divide #1 by\unitlength -} - -\def\putvector(#1,#2)(#3,#4)#5#6{{% -\ifnum3<\arrowtype -\putdashvector(#1,#2)(#3,#4)#5\arrowtype -\else -\ifnum\arrowtype<-3 -\putdashvector(#1,#2)(#3,#4)#5\arrowtype -\else -\xpos=#1 -\ypos=#2 -\run=#3 -\rise=#4 -\arrowlength=#5 -\ifnum \arrowtype<0 - \ifnum \run=0 - \advance \ypos by-\arrowlength - \else - \tempcounta \arrowlength - \multiply \tempcounta by\rise - \divide \tempcounta by\run - \ifnum\run>0 - \advance \xpos by\arrowlength - \advance \ypos by\tempcounta - \else - \advance \xpos by-\arrowlength - \advance \ypos by-\tempcounta - \fi - \fi - \multiply \arrowtype by-1 - \multiply \rise by-1 - \multiply \run by-1 -\fi -\ifcase \arrowtype -\or \put(\xpos,\ypos){\vector(\run,\rise){\arrowlength}}% -\or \put(\xpos,\ypos){\mvector(\run,\rise)\arrowlength}% -\or \put(\xpos,\ypos){\evector(\run,\rise){\arrowlength}}% -\fi\fi\fi -}} - -\def\putsplitvector(#1,#2)#3#4{%% -\xpos #1 -\ypos #2 -\arrowtype #4 -\halflength #3 -\arrowlength #3 -\gap 140 -\advance \halflength by-\gap -\divide \halflength by2 -\ifnum\arrowtype>0 - \ifcase \arrowtype - \or \put(\xpos,\ypos){\line(0,-1){\halflength}}% - \advance\ypos by-\halflength - \advance\ypos by-\gap - \put(\xpos,\ypos){\vector(0,-1){\halflength}}% - \or \put(\xpos,\ypos){\line(0,-1)\halflength}% - \put(\xpos,\ypos){\vector(0,-1)3}% - \advance\ypos by-\halflength - \advance\ypos by-\gap - \put(\xpos,\ypos){\vector(0,-1){\halflength}}% - \or \put(\xpos,\ypos){\line(0,-1)\halflength}% - \advance\ypos by-\halflength - \advance\ypos by-\gap - \put(\xpos,\ypos){\evector(0,-1){\halflength}}% - \fi -\else \arrowtype=-\arrowtype - \ifcase\arrowtype - \or \advance \ypos by-\arrowlength - \put(\xpos,\ypos){\line(0,1){\halflength}}% - \advance\ypos by\halflength - \advance\ypos by\gap - \put(\xpos,\ypos){\vector(0,1){\halflength}}% - \or \advance \ypos by-\arrowlength - \put(\xpos,\ypos){\line(0,1)\halflength}% - \put(\xpos,\ypos){\vector(0,1)3}% - \advance\ypos by\halflength - \advance\ypos by\gap - \put(\xpos,\ypos){\vector(0,1){\halflength}}% - \or \advance \ypos by-\arrowlength - \put(\xpos,\ypos){\line(0,1)\halflength}% - \advance\ypos by\halflength - \advance\ypos by\gap - \put(\xpos,\ypos){\evector(0,1){\halflength}}% - \fi -\fi -} - -\def\putmorphism(#1)(#2,#3)[#4`#5`#6]#7#8#9{{% -\run #2 -\rise #3 -\ifnum\rise=0 - \puthmorphism(#1)[#4`#5`#6]{#7}{#8}#9% -\else\ifnum\run=0 - \putvmorphism(#1)[#4`#5`#6]{#7}{#8}#9% -\else -\setpos(#1)% -\arrowlength #7 -\arrowtype #8 -\ifnum\run=0 -\else\ifnum\rise=0 -\else -\ifnum\run>0 - \coefa=1 -\else - \coefa=-1 -\fi -\ifnum\arrowtype>0 - \coefb=0 - \coefc=-1 -\else - \coefb=\coefa - \coefc=1 - \arrowtype=-\arrowtype -\fi -\width=2 -\multiply \width by\run -\divide \width by\rise -\ifnum \width<0 \width=-\width\fi -\advance\width by60 -\if l#9 \width=-\width\fi -\putbox(\xpos,\ypos){#4}% %node 1 -{\multiply \coefa by\arrowlength% %node 2 -\advance\xpos by\coefa -\multiply \coefa by\rise -\divide \coefa by\run -\advance \ypos by\coefa -\putbox(\xpos,\ypos){#5} }% -{\multiply \coefa by\arrowlength% %label -\divide \coefa by2 -\advance \xpos by\coefa -\advance \xpos by\width -\multiply \coefa by\rise -\divide \coefa by\run -\advance \ypos by\coefa -\if l#9% - \putrbox(\xpos,\ypos){#6}% -\else\if r#9% - \putlbox(\xpos,\ypos){#6}% -\fi\fi }% -{\multiply \rise by-\coefc% %arrow -\multiply \run by-\coefc -\multiply \coefb by\arrowlength -\advance \xpos by\coefb -\multiply \coefb by\rise -\divide \coefb by\run -\advance \ypos by\coefb -\multiply \coefc by70 -\advance \ypos by\coefc -\multiply \coefc by\run -\divide \coefc by\rise -\advance \xpos by\coefc -\multiply \coefa by140 -\multiply \coefa by\run -\divide \coefa by\rise -\advance \arrowlength by\coefa -\ifcase\arrowtype -\or \put(\xpos,\ypos){\vector(\run,\rise){\arrowlength}}% -\or \put(\xpos,\ypos){\mvector(\run,\rise){\arrowlength}}% -\or \put(\xpos,\ypos){\evector(\run,\rise){\arrowlength}}% -\fi}\fi\fi\fi\fi}} - - -\newcount\numbdashes \newcount\lengthdash \newcount\increment - -\def\howmanydashes{% Actually returns both number and length -\numbdashes=\arrowlength \lengthdash=40 -\divide\numbdashes by \lengthdash -\lengthdash=\arrowlength -\divide\lengthdash by \numbdashes -%This futzing around is to minimize round-off error. -\increment=\lengthdash -\multiply\lengthdash by 3 -\divide\lengthdash by 5 -} - -\def\putdashvector(#1)(#2,#3)#4#5{% -\ifnum#3=0 \putdashhvector(#1){#4}#5 -\else -\ifnum#2=0 -\putdashvvector(#1){#4}#5\fi\fi} - -\def\putdashhvector(#1,#2)#3#4{{% -\arrowlength=#3 \howmanydashes -\multiput(#1,#2)(\increment,0){\numbdashes}% -{\vrule height .4pt width \lengthdash\unitlength} -\arrowtype=#4 \xpos=#1 -\ifnum\arrowtype<0 \advance\arrowtype by 7 \fi -\ifcase\arrowtype -\or \advance\xpos by 10 - \put(\xpos,#2){\vector(-1,0){\lengthdash}} - \advance\xpos by 40 - \put(\xpos,#2){\vector(-1,0){\lengthdash}} -\or \advance \xpos by 10 - \put(\xpos,#2){\vector(-1,0){\lengthdash}} - \advance\xpos by \arrowlength - \advance\xpos by -50 - \put(\xpos,#2){\vector(-1,0){\lengthdash}} -\or \advance\xpos by 10 - \put(\xpos,#2){\vector(-1,0){\lengthdash}} -\or \advance\xpos by \arrowlength - \advance\xpos by -\lengthdash - \put(\xpos,#2){\vector(1,0){\lengthdash}} -\or {\advance\xpos by 10 - \put(\xpos,#2){\vector(1,0){\lengthdash}}} - \advance\xpos by \arrowlength - \advance\xpos by -\lengthdash - \put(\xpos,#2){\vector(1,0){\lengthdash}} -\or \advance\xpos by \arrowlength - \advance\xpos by -\lengthdash - \put(\xpos,#2){\vector(1,0){\lengthdash}} - \advance\xpos by -40 - \put(\xpos,#2){\vector(1,0){\lengthdash}} - \fi -}} - -\def\putdashvvector(#1,#2)#3#4{{% -\arrowlength=#3 \howmanydashes -\ypos=#2 \advance\ypos by -\arrowlength -\multiput(#1,#2)(0,\increment){\numbdashes}% - {\vrule width .4pt height \lengthdash\unitlength} -\arrowtype=#4 \ypos=#2 -\ifnum\arrowtype<0 \advance\arrowtype by 7 \fi -\ifcase\arrowtype -\or \advance\ypos by \arrowlength \advance\ypos by -40 - \put(#1,\ypos){\vector(0,1){\lengthdash}} - \advance\ypos by -40 - \put(#1,\ypos){\vector(0,1){\lengthdash}} -\or \advance\ypos by 10 - \put(#1,\ypos){\vector(0,1){\lengthdash}} - \advance\ypos by \arrowlength \advance\ypos by -40 - \put(#1,\ypos){\vector(0,1){\lengthdash}} -\or \advance\ypos by \arrowlength \advance\ypos by -40 - \put(#1,\ypos){\vector(0,1){\lengthdash}} -\or \advance\ypos by 10 - \put(#1,\ypos){\vector(0,-1){\lengthdash}} -\or \advance\ypos by 10 - \put(#1,\ypos){\vector(0,-1){\lengthdash}} - \advance\ypos by \arrowlength \advance\ypos by -40 - \put(#1,\ypos){\vector(0,-1){\lengthdash}} -\or \advance\ypos by 10 - \put(#1,\ypos){\vector(0,-1){\lengthdash}} - \advance\ypos by 40 - \put(#1,\ypos){\vector(0,-1){\lengthdash}} -\fi -}} - -\def\puthmorphism(#1,#2)[#3`#4`#5]#6#7#8{{% -\xpos #1 -\ypos #2 -\width #6 -\arrowlength #6 -\arrowtype=#7 -\putbox(\xpos,\ypos){#3\vphantom{#4}}% -{\advance \xpos by\arrowlength -\putbox(\xpos,\ypos){\vphantom{#3}#4}}% -\horsize{\tempcounta}{#3}% -\horsize{\tempcountb}{#4}% -\divide \tempcounta by2 -\divide \tempcountb by2 -\advance \tempcounta by30 -\advance \tempcountb by30 -\advance \xpos by\tempcounta -\advance \arrowlength by-\tempcounta -\advance \arrowlength by-\tempcountb -\putvector(\xpos,\ypos)(1,0)\arrowlength\arrowtype -\divide \arrowlength by2 -\advance \xpos by\arrowlength -\vertsize{\tempcounta}{#5}% -\divide\tempcounta by2 -\advance \tempcounta by20 -\if a#8 % - \advance \ypos by\tempcounta - \putbox(\xpos,\ypos){#5}% -\else - \advance \ypos by-\tempcounta - \putbox(\xpos,\ypos){#5}% -\fi}} - -\def\putvmorphism(#1,#2)[#3`#4`#5]#6#7#8{{% -\xpos #1 -\ypos #2 -\arrowlength #6 -\arrowtype #7 -\settowidth{\xlen}{$#5$}% -\putbox(\xpos,\ypos){#3}% -{\advance \ypos by-\arrowlength -\putbox(\xpos,\ypos){#4}}% -{\advance\arrowlength by-140 -\advance \ypos by-70 -\ifdim\xlen>0pt - \if m#8% - \putsplitvector(\xpos,\ypos)\arrowlength\arrowtype - \else - \putvector(\xpos,\ypos)(0,-1)\arrowlength\arrowtype - \fi -\else - \putvector(\xpos,\ypos)(0,-1)\arrowlength\arrowtype -\fi}% -\ifdim\xlen>0pt - \divide \arrowlength by2 - \advance\ypos by-\arrowlength - \if l#8% - \advance \xpos by-40 - \putrbox(\xpos,\ypos){#5}% - \else\if r#8% - \advance \xpos by40 - \putlbox(\xpos,\ypos){#5}% - \else - \putbox(\xpos,\ypos){#5}% - \fi\fi -\fi -}} - -\def\putsquarep<#1>(#2)[#3;#4`#5`#6`#7]{{% -\setsqparms[#1]% -\setpos(#2)% -\settokens`#3`% -\puthmorphism(\xpos,\ypos)[\tokenc`\tokend`{#7}]{\width}{\arrowtyped}b% -\advance\ypos by \height -\puthmorphism(\xpos,\ypos)[\tokena`\tokenb`{#4}]{\width}{\arrowtypea}a% -\putvmorphism(\xpos,\ypos)[``{#5}]{\height}{\arrowtypeb}l% -\advance\xpos by \width -\putvmorphism(\xpos,\ypos)[``{#6}]{\height}{\arrowtypec}r% -}} - -\def\putsquare{\@ifnextchar <{\putsquarep}{\putsquarep% - <\arrowtypea`\arrowtypeb`\arrowtypec`\arrowtyped;\width`\height>}} -\def\square{\@ifnextchar< {\squarep}{\squarep - <\arrowtypea`\arrowtypeb`\arrowtypec`\arrowtyped;\width`\height>}} - % #6 -\def\squarep<#1>[#2`#3`#4`#5;#6`#7`#8`#9]{{% % #2------>#3 -\setsqparms[#1]% % | | -\diagram% % | | -\putsquarep<\arrowtypea`\arrowtypeb`\arrowtypec`% % #7| |#8 -\arrowtyped;\width`\height>% % | | -(0,0)[#2`#3`#4`{#5};#6`#7`#8`{#9}]% % | | -\enddiagram% % v v -}} % #4------>#5 - % #9 -\def\putptrianglep<#1>(#2,#3)[#4`#5`#6;#7`#8`#9]{{% -\settriparms[#1]% -\xpos=#2 \ypos=#3 -\advance\ypos by \height -\puthmorphism(\xpos,\ypos)[#4`#5`{#7}]{\height}{\arrowtypea}a% -\putvmorphism(\xpos,\ypos)[`#6`{#8}]{\height}{\arrowtypeb}l% -\advance\xpos by\height -\putmorphism(\xpos,\ypos)(-1,-1)[``{#9}]{\height}{\arrowtypec}r% -}} - -\def\putptriangle{\@ifnextchar <{\putptrianglep}{\putptrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} -\def\ptriangle{\@ifnextchar <{\ptrianglep}{\ptrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} - % #5 -\def\ptrianglep<#1>[#2`#3`#4;#5`#6`#7]{{%% % #2----->#3 -\settriparms[#1]% % | / -\diagram% % | / -\putptrianglep<\arrowtypea`\arrowtypeb`% % #6| /#7 -\arrowtypec;\height>% % | / -(0,0)[#2`#3`#4;#5`#6`{#7}]% % | / -\enddiagram%% % v v -}} % #4 - -\def\putqtrianglep<#1>(#2,#3)[#4`#5`#6;#7`#8`#9]{{% -\settriparms[#1]% -\xpos=#2 \ypos=#3 -\advance\ypos by\height -\puthmorphism(\xpos,\ypos)[#4`#5`{#7}]{\height}{\arrowtypea}a% -\putmorphism(\xpos,\ypos)(1,-1)[``{#8}]{\height}{\arrowtypeb}l% -\advance\xpos by\height -\putvmorphism(\xpos,\ypos)[`#6`{#9}]{\height}{\arrowtypec}r% -}} - -\def\putqtriangle{\@ifnextchar <{\putqtrianglep}{\putqtrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} -\def\qtriangle{\@ifnextchar <{\qtrianglep}{\qtrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} - % #5 -\def\qtrianglep<#1>[#2`#3`#4;#5`#6`#7]{{%% % #2----->#3 -\settriparms[#1]% % \ | -\width=\height % \ | -\diagram% % #6\ |#7 -\putqtrianglep<\arrowtypea`\arrowtypeb`% % \ | -\arrowtypec;\height>% % \ | -(0,0)[#2`#3`#4;#5`#6`{#7}]% % v v -\enddiagram%% % #4 -}} - -\def\putdtrianglep<#1>(#2,#3)[#4`#5`#6;#7`#8`#9]{{% -\settriparms[#1]% -\xpos=#2 \ypos=#3 -\puthmorphism(\xpos,\ypos)[#5`#6`{#9}]{\height}{\arrowtypec}b% -\advance\xpos by \height \advance\ypos by\height -\putmorphism(\xpos,\ypos)(-1,-1)[``{#7}]{\height}{\arrowtypea}l% -\putvmorphism(\xpos,\ypos)[#4``{#8}]{\height}{\arrowtypeb}r% -}} - -\def\putdtriangle{\@ifnextchar <{\putdtrianglep}{\putdtrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} -\def\dtriangle{\@ifnextchar <{\dtrianglep}{\dtrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} - % #2 -\def\dtrianglep<#1>[#2`#3`#4;#5`#6`#7]{{%% % / | -\settriparms[#1]% % / | -\width=\height % #5/ |#6 -\diagram% % / | -\putdtrianglep<\arrowtypea`\arrowtypeb`% % / | -\arrowtypec;\height>% % v v -(0,0)[#2`#3`#4;#5`#6`{#7}]% % #3----->#4 -\enddiagram%% % #7 -}} - -\def\putbtrianglep<#1>(#2,#3)[#4`#5`#6;#7`#8`#9]{{% -\settriparms[#1]% -\xpos=#2 \ypos=#3 -\puthmorphism(\xpos,\ypos)[#5`#6`{#9}]{\height}{\arrowtypec}b% -\advance\ypos by\height -\putmorphism(\xpos,\ypos)(1,-1)[``{#8}]{\height}{\arrowtypeb}r% -\putvmorphism(\xpos,\ypos)[#4``{#7}]{\height}{\arrowtypea}l% -}} - -\def\putbtriangle{\@ifnextchar <{\putbtrianglep}{\putbtrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} -\def\btriangle{\@ifnextchar <{\btrianglep}{\btrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} - % #2 -\def\btrianglep<#1>[#2`#3`#4;#5`#6`#7]{{%% % | \ -\settriparms[#1]% % | \ -\width=\height % #5| \#6 -\diagram% % | \ -\putbtrianglep<\arrowtypea`\arrowtypeb`% % | \ -\arrowtypec;\height>% % v v -(0,0)[#2`#3`#4;#5`#6`{#7}]% % #3----->#4 -\enddiagram%% % #7 -}} - -\def\putAtrianglep<#1>(#2,#3)[#4`#5`#6;#7`#8`#9]{{% -\settriparms[#1]% -\xpos=#2 \ypos=#3 -{\multiply \height by2 -\puthmorphism(\xpos,\ypos)[#5`#6`{#9}]{\height}{\arrowtypec}b}% -\advance\xpos by\height \advance\ypos by\height -\putmorphism(\xpos,\ypos)(-1,-1)[#4``{#7}]{\height}{\arrowtypea}l% -\putmorphism(\xpos,\ypos)(1,-1)[``{#8}]{\height}{\arrowtypeb}r% -}} - -\def\putAtriangle{\@ifnextchar <{\putAtrianglep}{\putAtrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} -\def\Atriangle{\@ifnextchar <{\Atrianglep}{\Atrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} - % #2 -\def\Atrianglep<#1>[#2`#3`#4;#5`#6`#7]{{%% % / \ -\settriparms[#1]% % / \ -\width=\height % #5/ \#6 -\diagram% % / \ -\putAtrianglep<\arrowtypea`\arrowtypeb`% % / \ -\arrowtypec;\height>% % v v -(0,0)[#2`#3`#4;#5`#6`{#7}]% % #3------------>#4 -\enddiagram%% % #7 -}} - -\def\putAtrianglepairp<#1>(#2)[#3;#4`#5`#6`#7`#8]{{% -\settripairparms[#1]% -\setpos(#2)% -\settokens`#3`% -\puthmorphism(\xpos,\ypos)[\tokenb`\tokenc`{#7}]{\height}{\arrowtyped}b% -\advance\xpos by\height -\puthmorphism(\xpos,\ypos)[\phantom{\tokenc}`\tokend`{#8}]% -{\height}{\arrowtypee}b% -\advance\ypos by\height -\putmorphism(\xpos,\ypos)(-1,-1)[\tokena``{#4}]{\height}{\arrowtypea}l% -\putvmorphism(\xpos,\ypos)[``{#5}]{\height}{\arrowtypeb}m% -\putmorphism(\xpos,\ypos)(1,-1)[``{#6}]{\height}{\arrowtypec}r% -}} - -\def\putAtrianglepair{\@ifnextchar <{\putAtrianglepairp}{\putAtrianglepairp% - <\arrowtypea`\arrowtypeb`\arrowtypec`\arrowtyped`\arrowtypee;\height>}} -\def\Atrianglepair{\@ifnextchar <{\Atrianglepairp}{\Atrianglepairp% - <\arrowtypea`\arrowtypeb`\arrowtypec`\arrowtyped`\arrowtypee;\height>}} - -\def\Atrianglepairp<#1>[#2;#3`#4`#5`#6`#7]{{% % #2a -\settripairparms[#1]% % / | \ -\settokens`#2`% % / | \ -\width=\height % #3/ #4 \#5 -\diagram% % / | \ -\putAtrianglepairp % / | \ -<\arrowtypea`\arrowtypeb`\arrowtypec`% % v v v -\arrowtyped`\arrowtypee;\height>% % #2b---->#2c---->#2d -(0,0)[{#2};#3`#4`#5`#6`{#7}]% % #6 #7 -\enddiagram%% -}} - -\def\putVtrianglep<#1>(#2,#3)[#4`#5`#6;#7`#8`#9]{{% -\settriparms[#1]% -\xpos=#2 \ypos=#3 -\advance\ypos by\height -{\multiply\height by2 -\puthmorphism(\xpos,\ypos)[#4`#5`{#7}]{\height}{\arrowtypea}a}% -\putmorphism(\xpos,\ypos)(1,-1)[`#6`{#8}]{\height}{\arrowtypeb}l% -\advance\xpos by\height -\advance\xpos by\height -\putmorphism(\xpos,\ypos)(-1,-1)[``{#9}]{\height}{\arrowtypec}r% -}} - -\def\putVtriangle{\@ifnextchar <{\putVtrianglep}{\putVtrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} -\def\Vtriangle{\@ifnextchar <{\Vtrianglep}{\Vtrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} - % #5 -\def\Vtrianglep<#1>[#2`#3`#4;#5`#6`#7]{{%% % #2------------->#3 -\settriparms[#1]% % \ / -\width=\height % \ / -\diagram% % #6\ /#7 -\putVtrianglep<\arrowtypea`\arrowtypeb`% % \ / -\arrowtypec;\height>% % \ / -(0,0)[#2`#3`#4;#5`#6`{#7}]% % v v -\enddiagram%% % #4 -}} - -\def\putVtrianglepairp<#1>(#2)[#3;#4`#5`#6`#7`#8]{{ -\settripairparms[#1]% -\setpos(#2)% -\settokens`#3`% -\advance\ypos by\height -\putmorphism(\xpos,\ypos)(1,-1)[`\tokend`{#6}]{\height}{\arrowtypec}l% -\puthmorphism(\xpos,\ypos)[\tokena`\tokenb`{#4}]{\height}{\arrowtypea}a% -\advance\xpos by\height -\puthmorphism(\xpos,\ypos)[\phantom{\tokenb}`\tokenc`{#5}]% -{\height}{\arrowtypeb}a% -\putvmorphism(\xpos,\ypos)[``{#7}]{\height}{\arrowtyped}m% -\advance\xpos by\height -\putmorphism(\xpos,\ypos)(-1,-1)[``{#8}]{\height}{\arrowtypee}r% -}} - -\def\putVtrianglepair{\@ifnextchar <{\putVtrianglepairp}{\putVtrianglepairp% - <\arrowtypea`\arrowtypeb`\arrowtypec`\arrowtyped`\arrowtypee;\height>}} -\def\Vtrianglepair{\@ifnextchar <{\Vtrianglepairp}{\Vtrianglepairp% - <\arrowtypea`\arrowtypeb`\arrowtypec`\arrowtyped`\arrowtypee;\height>}} - % #3 #4 -\def\Vtrianglepairp<#1>[#2;#3`#4`#5`#6`#7]{{% % #2a---->#2b---->#2c -\settripairparms[#1]% % \ | / -\settokens`#2`% % \ | / -\diagram% % #5\ #6 /#7 -\putVtrianglepairp % \ | / -<\arrowtypea`\arrowtypeb`\arrowtypec`% % \ | / -\arrowtyped`\arrowtypee;\height>% % v v v -(0,0)[{#2};#3`#4`#5`#6`{#7}]% % #2d -\enddiagram%% -}} - - -\def\putCtrianglep<#1>(#2,#3)[#4`#5`#6;#7`#8`#9]{{% -\settriparms[#1]% -\xpos=#2 \ypos=#3 -\advance\ypos by\height -\putmorphism(\xpos,\ypos)(1,-1)[``{#9}]{\height}{\arrowtypec}l% -\advance\xpos by\height -\advance\ypos by\height -\putmorphism(\xpos,\ypos)(-1,-1)[#4`#5`{#7}]{\height}{\arrowtypea}l% -{\multiply\height by 2 -\putvmorphism(\xpos,\ypos)[`#6`{#8}]{\height}{\arrowtypeb}r}% -}} - -\def\putCtriangle{\@ifnextchar <{\putCtrianglep}{\putCtrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} -\def\Ctriangle{\@ifnextchar <{\Ctrianglep}{\Ctrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} - % #2 -\def\Ctrianglep<#1>[#2`#3`#4;#5`#6`#7]{{%% % / | -\settriparms[#1]% % #5/ | -\width=\height % / | -\diagram% % v | -\putCtrianglep<\arrowtypea`\arrowtypeb`% % #3 |#6 -\arrowtypec;\height>% % \ | -(0,0)[#2`#3`#4;#5`#6`{#7}]% % #7\ | -\enddiagram%% % \ | -}} % v v - % #4 -\def\putDtrianglep<#1>(#2,#3)[#4`#5`#6;#7`#8`#9]{{% -\settriparms[#1]% -\xpos=#2 \ypos=#3 -\advance\xpos by\height \advance\ypos by\height -\putmorphism(\xpos,\ypos)(-1,-1)[``{#9}]{\height}{\arrowtypec}r% -\advance\xpos by-\height \advance\ypos by\height -\putmorphism(\xpos,\ypos)(1,-1)[`#5`{#8}]{\height}{\arrowtypeb}r% -{\multiply\height by 2 -\putvmorphism(\xpos,\ypos)[#4`#6`{#7}]{\height}{\arrowtypea}l}% -}} - -\def\putDtriangle{\@ifnextchar <{\putDtrianglep}{\putDtrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} -\def\Dtriangle{\@ifnextchar <{\Dtrianglep}{\Dtrianglep - <\arrowtypea`\arrowtypeb`\arrowtypec;\height>}} - % #2 -\def\Dtrianglep<#1>[#2`#3`#4;#5`#6`#7]{{%% % | \ -\settriparms[#1]% % | \#6 -\width=\height % | \ -\diagram% % | v -\putDtrianglep<\arrowtypea`\arrowtypeb`% % #5| #3 -\arrowtypec;\height>% % | / -(0,0)[#2`#3`#4;#5`#6`{#7}]% % | /#7 -\enddiagram%% % | / -}} % v v - % #4 -\def\setrecparms[#1`#2]{\width=#1 \height=#2}% -% #4 -% #3b<-------#3a x #3b -% ^ | | -% / | | -% #5/ | | -% / | | -% / | | -% / | | -% #3c |#6 |#3a x #5 -% \ | | -% \ | | -% #8\ | | -% \ | | -% \ | | -% v v v -% #3d<-------#3a x #3d -% #8 - -\def\recursep<#1`#2>[#3;#4`#5`#6`#7`#8]{{\m@th -\width=#1 \height=#2 -\settokens`#3` -\settowidth{\tempdimen}{$\tokena$} -\ifdim\tempdimen=0pt - \savebox{\tempboxa}{\hbox{$\tokenb$}}% - \savebox{\tempboxb}{\hbox{$\tokend$}}% - \savebox{\tempboxc}{\hbox{$#6$}}% -\else - \savebox{\tempboxa}{\hbox{$\hbox{$\tokena$}\times\hbox{$\tokenb$}$}}% - \savebox{\tempboxb}{\hbox{$\hbox{$\tokena$}\times\hbox{$\tokend$}$}}% - \savebox{\tempboxc}{\hbox{$\hbox{$\tokena$}\times\hbox{$#6$}$}}% -\fi -\ypos=\height -\divide\ypos by 2 -\xpos=\ypos -\advance\xpos by \width -\bfig -\putCtrianglep<-1`1`1;\ypos>(0,0)[`\tokenc`;#5`#6`{#7}]% -\puthmorphism(\ypos,0)[\tokend`\usebox{\tempboxb}`{#8}]{\width}{-1}b% -\puthmorphism(\ypos,\height)[\tokenb`\usebox{\tempboxa}`{#4}]{\width}{-1}a% -\advance\ypos by \width -\putvmorphism(\ypos,\height)[``\usebox{\tempboxc}]{\height}1r% -\efig -}} - -\def\recurse{\@ifnextchar <{\recursep}{\recursep<\width`\height>}} - -\def\puttwohmorphisms(#1,#2)[#3`#4;#5`#6]#7#8#9{{% -% 1 and 2 are position, 3 and 4 are the nodes, 5 and 6 the labels, -% 7 the distance between node centers and 8 & 9 are the arrow types. -% #5 -% #3 ===========> #4 -% #6 -% -\puthmorphism(#1,#2)[#3`#4`]{#7}0a -\ypos=#2 -\advance\ypos by 20 -\puthmorphism(#1,\ypos)[\phantom{#3}`\phantom{#4}`#5]{#7}{#8}a -\advance\ypos by -40 -\puthmorphism(#1,\ypos)[\phantom{#3}`\phantom{#4}`#6]{#7}{#9}b -}} - -\def\puttwovmorphisms(#1,#2)[#3`#4;#5`#6]#7#8#9{{% -% 1 and 2 are position, 3 and 4 are the nodes, 5 and 6 the labels, -% 7 the distance between node centers and 8 & 9 are the arrow types. -% -% #3 -% || -% || -% #5 || #6 -% || -% || -% vv -% #4 -% -\putvmorphism(#1,#2)[#3`#4`]{#7}0a -\xpos=#1 -\advance\xpos by -20 -\putvmorphism(\xpos,#2)[\phantom{#3}`\phantom{#4}`#5]{#7}{#8}l -\advance\xpos by 40 -\putvmorphism(\xpos,#2)[\phantom{#3}`\phantom{#4}`#6]{#7}{#9}r -}} - -\def\puthcoequalizer(#1)[#2`#3`#4;#5`#6`#7]#8#9{{% -% #1 is (\xpos,\ypos), the next 6 are the nodes and arrow labels -% #8 is the distance between each pair of nodes and #9 is the pos of #7 -% either a (above) or b (below) -% #5 #7 -% #2 ===========> #3 --------> #4 -% #6 -% -\setpos(#1)% -\puttwohmorphisms(\xpos,\ypos)[#2`#3;#5`#6]{#8}11% -\advance\xpos by #8 -\puthmorphism(\xpos,\ypos)[\phantom{#3}`#4`#7]{#8}1{#9} -}} - -\def\putvcoequalizer(#1)[#2`#3`#4;#5`#6`#7]#8#9{{% -% #1 is (\xpos,\ypos), the next 6 are the nodes and arrow labels -% #8 is the distance between each pair of nodes and #9 is the pos of #7 -% either l (left) or r (right) -% -% #2 -% | | -% | | -% #5 | | #6 -% | | -% | | -% v v -% #3 -% | -% | -% #7 | -% | -% v -% #4 -% -\setpos(#1)% -\puttwovmorphisms(\xpos,\ypos)[#2`#3;#5`#6]{#8}11% -\advance\ypos by -#8 -\putvmorphism(\xpos,\ypos)[\phantom{#3}`#4`#7]{#8}1{#9} -}} - -\def\putthreehmorphisms(#1)[#2`#3;#4`#5`#6]#7(#8)#9{{% -% Use: \putthreehmorphisms(xpos,ypos)[lnode`rnode;toplabel`midlabel% -% botlabel]{distance}(toparrowtype,midarrowtype,botarrowtype){position} -\setpos(#1) \settypes(#8) -\if a#9 % - \vertsize{\tempcounta}{#5}% - \vertsize{\tempcountb}{#6}% - \ifnum \tempcounta<\tempcountb \tempcounta=\tempcountb \fi -\else - \vertsize{\tempcounta}{#4}% - \vertsize{\tempcountb}{#5}% - \ifnum \tempcounta<\tempcountb \tempcounta=\tempcountb \fi -\fi -\advance \tempcounta by 60 -\puthmorphism(\xpos,\ypos)[#2`#3`#5]{#7}{\arrowtypeb}{#9} -\advance\ypos by \tempcounta -\puthmorphism(\xpos,\ypos)[\phantom{#2}`\phantom{#3}`#4]{#7}{\arrowtypea}{#9} -\advance\ypos by -\tempcounta \advance\ypos by -\tempcounta -\puthmorphism(\xpos,\ypos)[\phantom{#2}`\phantom{#3}`#6]{#7}{\arrowtypec}{#9} -}} - -\def\setarrowtoks[#1`#2`#3`#4`#5`#6]{% -\def\toka{#1} -\def\tokb{#2} -\def\tokc{#3} -\def\tokd{#4} -\def\toke{#5} -\def\tokf{#6} -} -\def\hex{\@ifnextchar <{\hexp}{\hexp<1000`400>}} -\def\hexp<#1`#2>[#3`#4`#5`#6`#7`#8;#9]{% -\setarrowtoks[#9] -\yext=#2 \advance \yext by #2 -\xext=#1 \advance\xext by \yext -\bfig -\putCtriangle<-1`0`1;#2>(0,0)[`#5`;\tokb``\tokd] -\xext=#1 \yext=#2 \advance \yext by #2 -\putsquare<1`0`0`1;\xext`\yext>(#2,0)[#3`#4`#7`#8;\toka```\tokf] -\advance \xext by #2 -\putDtriangle<0`1`-1;#2>(\xext,0)[`#6`;`\tokc`\toke] -\efig -} -%\def\doublecomplex[#1`#2`#3`#4`#5`#6`#7`#8`#9]{% -%\bfig -%\putsquare<0`0`1`1;500`500>(0,1700)[`\vdots`\cdots`{#1};```] -%\puthmorphism(500,1700)[\ph{#1}`\cdots`]{500}1a -%\puthmorphism(1000,1700)[\ph{\cdots}`\ph{#2}`]{500}1a -%\putsquare<0`1`1`1;700`500>(1500,1700)[\vdots`\vdots`{#2}`{#3};```] -%\puthmorphism(2200,1700)[\ph{#3}`0`]{500}1a -%\putvmorphism(500,1700)[`\vdots`]{400}1a \putvmorphism(500,1300)[``]{400}1a -%\putvmorphism(1500,1700)[`\vdots`]{400}1a \putvmorphism(1500,1300)[``]{400}1a -%\putvmorphism(2200,1700)[`\vdots`]{400}1a \putvmorphism(2200,1300)[``]{400}1a -%\putsquare<1`0`1`1;500`500>(0,400)[\cdots`{#4}`\cdots`{#7};```] -%\puthmorphism(500,900)[\ph{#1}`\cdots`]{500}1a -%\puthmorphism(1000,900)[\ph{\cdots}`\ph{#2}`]{500}1a -%\puthmorphism(500,400)[\ph{#1}`\cdots`]{500}1a -%\puthmorphism(1000,400)[\ph{\cdots}`\ph{#2}`]{500}1a -%\putsquare<1`1`1`1;700`500>(1500,400)[{#5}`{#6}`{#8}`{#9};```] -%\puthmorphism(2200,900)[\ph{#6}`0`]{500}1a -%\puthmorphism(2200,400)[\ph{#9}`0`]{500}1a -%\putvmorphism(500,400)[`0`]{400}1a -%\putvmorphism(1500,400)[`0`]{400}1a -%\putvmorphism(2200,400)[`0`]{400}1a -%\efig -%} -% -%\def\doublecocomplex[#1`#2`#3`#4`#5`#6`#7`#8`#9]{% -%\bfig -%\putsquare<0`0`-1`-1;500`500>(0,1700)[`\vdots`\cdots`{#1};```] -%\puthmorphism(500,1700)[\ph{#1}`\cdots`]{500}{-1}a -%\puthmorphism(1000,1700)[\ph{\cdots}`\ph{#2}`]{500}{-1}a -%\putsquare<0`-1`-1`-1;500`500>(1500,1700)[\vdots`\vdots`{#2}`{#3};```] -%\puthmorphism(2000,1700)[\ph{#3}`0`]{500}{-1}a -%\putvmorphism(500,1700)[`\vdots`]{400}{-1}a \putvmorphism(500,1300)[``]{400}{-1}a -%\putvmorphism(1500,1700)[`\vdots`]{400}{-1}a \putvmorphism(1500,1300)[``]{400}{-1}a -%\putvmorphism(2000,1700)[`\vdots`]{400}{-1}a \putvmorphism(2000,1300)[``]{400}{-1}a -%\putsquare<-1`0`-1`-1;500`500>(0,400)[\cdots`{#4}`\cdots`{#7};```] -%\puthmorphism(500,900)[\ph{#1}`\cdots`]{500}{-1}a -%\puthmorphism(1000,900)[\ph{\cdots}`\ph{#2}`]{500}{-1}a -%\puthmorphism(500,400)[\ph{#1}`\cdots`]{500}{-1}a -%\puthmorphism(1000,400)[\ph{\cdots}`\ph{#2}`]{500}{-1}a -%\putsquare<-1`-1`-1`-1;500`500>(1500,400)[{#5}`{#6}`{#8}`{#9};```] -%\puthmorphism(2000,900)[\ph{#6}`0`]{500}{-1}a -%\puthmorphism(2000,400)[\ph{#9}`0`]{500}{-1}a -%\putvmorphism(500,400)[`0`]{400}{-1}a -%\putvmorphism(1500,400)[`0`]{400}{-1}a -%\putvmorphism(2000,400)[`0`]{400}{-1}a -%\efig -%} -\makeatother diff --git a/Master/texmf-dist/tex/latex/barr/diagxy.tex b/Master/texmf-dist/tex/latex/barr/diagxy.tex deleted file mode 100644 index 5fc36e7cf54..00000000000 --- a/Master/texmf-dist/tex/latex/barr/diagxy.tex +++ /dev/null @@ -1,952 +0,0 @@ - \def\dated#1{\def\thedate{#1}} - \dated{2001-10-14} - % This is a package of commutative diagram macros built on top of Xy-pic - % by Michael Barr (email: barr@barrs.org). Its use is unrestricted. It - % may be freely distributed, unchanged, for non-commercial or commercial - % use. If changed, it must be renamed. Inclusion in a commercial - % software package is also permitted, but I would appreciate receiving a - % free copy for my personal examination and use. There are no guarantees - % that this package is good for anything. I have tested it with LaTeX 2e, - % LaTeX 2.09 and Plain TeX. Although I know of no reason it will not work - % with AMSTeX, I have not tested it. - -\input xy -\xyoption{arrow} - -\newdir{ >}{{ }*!/-9pt/@{>}} -\newdir{ (}{{ }*!/-5pt/@{(}} -\newdir^{ (}{{ }*!/-5pt/@^{(}} -\newdir{< }{!/9pt/@{<}*{ }} - -\newbox\Label% -\newdimen\high% -\newdimen\deep% -\newdimen\ul% -\newcount\deltax% -\newcount\deltay% -\newcount\deltaX% -\newcount\deltaY% - -\newdimen\wdth -\newcount\xend% -\newcount\yend% -\newcount\Xend -\newcount\Yend -\newcount\xpos% -\newcount\ypos% -\newcount\default \default=500% -\newcount\defaultmargin \defaultmargin=150 -\newcount\topw% -\newcount\botw% -\newcount\Xpos% -\newcount\Ypos% -\def\ratchet#1#2{\ifnum#1<#2\global #1=#2\fi}% - -\newcount\atcode \atcode=\catcode`\@% -\catcode`\@=11 -\expandafter\ifx\csname @ifnextchar\endcsname\relax -\def\ifnextchar#1#2#3{\let\@tempe -#1\def\@tempa{#2}\def\@tempb{#3}\futurelet - \@tempc\@ifnch}% -\def\@ifnch{\ifx \@tempc \@sptoken \let\@tempd\@xifnch - \else \ifx \@tempc \@tempe\let\@tempd\@tempa\else\let\@tempd\@tempb\fi - \fi \@tempd}% -\def\:{\let\@sptoken= } \: % this makes \@sptoken a space token -\def\:{\@xifnch} \expandafter\def\: {\futurelet\@tempc\@ifnch}% -\else -\let\ifnextchar\@ifnextchar -\fi -\ul=.01em% -\X@xbase =.01em% -\Y@ybase =.01em% -\def\scalefactor#1{\ul=#1\ul \X@xbase=#1\X@xbase \Y@ybase=#1\Y@ybase}% -\catcode`\@=12% - -\def\fontscale#1{% -\if#1h\relax -\font\xydashfont=xydash10 scaled \magstephalf -\font\xyatipfont=xyatip10 scaled \magstephalf -\font\xybtipfont=xybtip10 scaled \magstephalf -\font\xybsqlfont=xybsql10 scaled \magstephalf -\font\xycircfont=xycirc10 scaled \magstephalf -\else -\font\xydashfont=xydash10 scaled \magstep#1% -\font\xyatipfont=xyatip10 scaled \magstep#1% -\font\xybtipfont=xybtip10 scaled \magstep#1% -\font\xybsqlfont=xybsql10 scaled \magstep#1% -\font\xycircfont=xycirc10 scaled \magstep#1% -\fi} - -\let\bfig\xy% -\let\efig\endxy% - -\def\car#1#2\nil{#1}% - -\def\morphism{\ifnextchar({\morphismp}{\morphismp(0,0)}}% -\def\morphismp(#1){\ifnextchar|{\morphismpp(#1)}{\morphismpp(#1)|a|}}% -\def\morphismpp(#1)|#2|{\ifnextchar/{\morphismppp(#1)|#2|}% - {\morphismppp(#1)|#2|/>/}}% -\def\morphismppp(#1)|#2|/#3/{% - \ifnextchar<{\morphismpppp(#1)|#2|/#3/}% - {\morphismpppp(#1)|#2|/#3/<\default,0>}}% - -\def\morphismpppp(#1,#2)|#3|/#4/<#5,#6>[#7`#8;#9]{% -\xend#1\advance \xend by #5% -\yend#2\advance \yend by #6% -\domorphism(#1,#2)|#3|/#4/<#5,#6>[#7`#8;#9]} - -\def\domorphism(#1,#2)|#3|/#4/<#5,#6>[#7`#8;#9]{% -\edef\next{#4}% -\ifx\next\empty\relax - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar@{} (\xend,\yend)*+!!<0ex,.75ex>{#8}% -\else \def\next{\car#4\nil}\fi -\if@\next\relax - \if#3l% - \ifnum #6>0% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar#4^-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \else% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar#4_-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \fi% - \else \if#3m% - \setbox0\hbox{$#9$}% - \ifdim \wd0=0pt - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar#4 (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \else - \setbox\Label=\hbox{\kern .5pt $\labelstyle #9$\kern .5pt}% - \high=\ht\Label \advance\high by 2pt \ht\Label=\high% - \deep=\dp\Label \advance\deep by 2pt \dp\Label=\deep% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar#4|-{\box\Label} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \fi - \else \if#3r% - \ifnum #6<0% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar#4^-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \else% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar#4_-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \fi% - \else \if#3a% - \ifnum #5>0% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar#4^-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \else% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar#4_-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \fi% - \else \if#3b% - \ifnum #5<0% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar#4^-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \else% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar#4_-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \fi% - \else - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar#4 (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \fi\fi\fi\fi\fi% -\else% -\edef\next{#4}% - \ifx\next\empty\relax - \POS(#1,#2)*+!!<0ex,.75ex>{#7}; (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \else \edef\next{#4}% - \ifx\next\empty\relax - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \else \if#3l% - \ifnum #6>0% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar@{#4}^-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \else% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar@{#4}_-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \fi% - \else \if#3m% - \setbox0\hbox{$#9$}% - \ifdim \wd0=0pt - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar@{#4} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \else - \setbox\Label=\hbox{\kern .5pt $\labelstyle #9$\kern .5pt}% - \high=\ht\Label \advance\high by 2pt \ht\Label=\high% - \deep=\dp\Label \advance\deep by 2pt \dp\Label=\deep% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar@{#4}|-{\box\Label} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \fi - \else \if#3r% - \ifnum #6<0% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar@{#4}^-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \else% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar@{#4}_-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \fi% - \else \if#3a% - \ifnum #5>0% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar@{#4}^-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \else% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar@{#4}_-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \fi% - \else \if#3b% - \ifnum #5<0% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar@{#4}^-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \else% - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar@{#4}_-{#9} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \fi% - \else - \POS(#1,#2)*+!!<0ex,.75ex>{#7}\ar@{#4} (\xend,\yend)*+!!<0ex,.75ex>{#8}% - \fi\fi\fi\fi\fi\fi\fi% -\fi\ignorespaces}% - -\def\squarepppp(#1,#2)|#3|/#4`#5`#6`#7/<#8>[#9]{% -\xpos#1\ypos#2% -\def\next|##1##2##3##4|{% - \def\xa{##1}\def\xb{##2}\def\xc{##3}\def\xd{##4}\ignorespaces}% -\next|#3|% -\def\next<##1,##2>{\deltax=##1\deltay=##2\ignorespaces}% -\next<#8>% -\def\next[##1`##2`##3`##4;##5`##6`##7`##8]{% - \def\nodea{##1}\def\nodeb{##2}\def\nodec{##3}\def\noded{##4}% - \def\labela{##5}\def\labelb{##6}\def\labelc{##7}\def\labeld{##8}\ignorespaces}% -\next[#9]% -\morphism(\xpos,\ypos)|\xd|/{#7}/<\deltax,0>[\nodec`\noded;\labeld]% -\advance \ypos by \deltay% -\morphism(\xpos,\ypos)|\xb|/{#5}/<0,-\deltay>[\nodea`\nodec;\labelb]% -\morphism(\xpos,\ypos)|\xa|/{#4}/<\deltax,0>[\nodea`\nodeb;\labela]% - \advance \xpos by \deltax% -\morphism(\xpos,\ypos)|\xc|/{#6}/<0,-\deltay>[\nodeb`\noded;\labelc]% -\ignorespaces}% - -\def\square{\ifnextchar({\squarep}{\squarep(0,0)}}% -\def\squarep(#1){\ifnextchar|{\squarepp(#1)}{\squarepp(#1)|alrb|}}% -\def\squarepp(#1)|#2|{\ifnextchar/{\squareppp(#1)|#2|}% - {\squareppp(#1)|#2|/>`>`>`>/}}% -\def\squareppp(#1)|#2|/#3`#4`#5`#6/{% - \ifnextchar<{\squarepppp(#1)|#2|/#3`#4`#5`#6/}% - {\squarepppp(#1)|#2|/#3`#4`#5`#6/<\default,\default>}}% - -\def\ptrianglepppp(#1,#2)|#3|/#4`#5`#6/<#7>[#8]{% -\xpos#1\ypos#2% -\def\next|##1##2##3|{\def\xa{##1}\def\xb{##2}\def\xc{##3}}% -\next|#3|% -\def\next<##1,##2>{\deltax=##1\deltay=##2\ignorespaces}% -\next<#7>% -\def\next[##1`##2`##3;##4`##5`##6]{% - \def\nodea{##1}\def\nodeb{##2}\def\nodec{##3}% - \def\labela{##4}\def\labelb{##5}\def\labelc{##6}}% -\next[#8]% -\advance\ypos by \deltay% -\morphism(\xpos,\ypos)|\xa|/{#4}/<\deltax,0>[\nodea`\nodeb;\labela]% -\morphism(\xpos,\ypos)|\xb|/{#5}/<0,-\deltay>[\nodea`\nodec;\labelb]% -\advance\xpos by \deltax% -\morphism(\xpos,\ypos)|\xc|/{#6}/<-\deltax,-\deltay>[\nodeb`\nodec;\labelc]% -\ignorespaces}% - -\def\qtrianglepppp(#1,#2)|#3|/#4`#5`#6/<#7>[#8]{% -\xpos#1\ypos#2% -\def\next|##1##2##3|{\def\xa{##1}\def\xb{##2}\def\xc{##3}}% -\next|#3|% -\def\next<##1,##2>{\deltax=##1\deltay=##2\ignorespaces}% -\next<#7>% -\def\next[##1`##2`##3;##4`##5`##6]{% - \def\nodea{##1}\def\nodeb{##2}\def\nodec{##3}% - \def\labela{##4}\def\labelb{##5}\def\labelc{##6}}% -\next[#8]% -\advance\ypos by \deltay% -\morphism(\xpos,\ypos)|\xa|/{#4}/<\deltax,0>[\nodea`\nodeb;\labela]% -\morphism(\xpos,\ypos)|\xb|/{#5}/<\deltax,-\deltay>[\nodea`\nodec;\labelb]% -\advance\xpos by \deltax% -\morphism(\xpos,\ypos)|\xc|/{#6}/<0,-\deltay>[\nodeb`\nodec;\labelc]% -\ignorespaces}% - -\def\dtrianglepppp(#1,#2)|#3|/#4`#5`#6/<#7>[#8]{% -\xpos#1\ypos#2% -\def\next|##1##2##3|{\def\xa{##1}\def\xb{##2}\def\xc{##3}}% -\next|#3|% -\def\next<##1,##2>{\deltax=##1\deltay=##2\ignorespaces}% -\next<#7>% -\def\next[##1`##2`##3;##4`##5`##6]{% - \def\nodea{##1}\def\nodeb{##2}\def\nodec{##3}% - \def\labela{##4}\def\labelb{##5}\def\labelc{##6}}% -\next[#8]% -\morphism(\xpos,\ypos)|\xc|/{#6}/<\deltax,0>[\nodeb`\nodec;\labelc]% -\advance\ypos by \deltay\advance \xpos by \deltax% -\morphism(\xpos,\ypos)|\xa|/{#4}/<-\deltax,-\deltay>[\nodea`\nodeb;\labela]% -\morphism(\xpos,\ypos)|\xb|/{#5}/<0,-\deltay>[\nodea`\nodec;\labelb]% -\ignorespaces}% - -\def\btrianglepppp(#1,#2)|#3|/#4`#5`#6/<#7>[#8]{% -\xpos#1\ypos#2% -\def\next|##1##2##3|{\def\xa{##1}\def\xb{##2}\def\xc{##3}}% -\next|#3|% -\def\next<##1,##2>{\deltax=##1\deltay=##2\ignorespaces}% -\next<#7>% -\def\next[##1`##2`##3;##4`##5`##6]{% - \def\nodea{##1}\def\nodeb{##2}\def\nodec{##3}% - \def\labela{##4}\def\labelb{##5}\def\labelc{##6}}% -\next[#8]% -\morphism(\xpos,\ypos)|\xc|/{#6}/<\deltax,0>[\nodeb`\nodec;\labelc]% -\advance\ypos by \deltay% -\morphism(\xpos,\ypos)|\xa|/{#4}/<0,-\deltay>[\nodea`\nodeb;\labela]% -\morphism(\xpos,\ypos)|\xb|/{#5}/<\deltax,-\deltay>[\nodea`\nodec;\labelb]% -\ignorespaces}% - -\def\Atrianglepppp(#1,#2)|#3|/#4`#5`#6/<#7>[#8]{% -\xpos#1\ypos#2% -\def\next|##1##2##3|{\def\xa{##1}\def\xb{##2}\def\xc{##3}}% -\next|#3|% -\def\next<##1,##2>{\deltax=##1\deltay=##2\ignorespaces}% -\next<#7>% -\def\next[##1`##2`##3;##4`##5`##6]{% - \def\nodea{##1}\def\nodeb{##2}\def\nodec{##3}% - \def\labela{##4}\def\labelb{##5}\def\labelc{##6}}% -\next[#8]% -\multiply\deltax by 2% -\morphism(\xpos,\ypos)|\xc|/{#6}/<\deltax,0>[\nodeb`\nodec;\labelc]% -\divide\deltax by 2 -\advance\ypos by \deltay\advance\xpos by \deltax% -\morphism(\xpos,\ypos)|\xa|/{#4}/<-\deltax,-\deltay>[\nodea`\nodeb;\labela]% -\morphism(\xpos,\ypos)|\xb|/{#5}/<\deltax,-\deltay>[\nodea`\nodec;\labelb]% -\ignorespaces}% - -\def\Vtrianglepppp(#1,#2)|#3|/#4`#5`#6/<#7>[#8]{% -\xpos#1\ypos#2% -\def\next|##1##2##3|{\def\xa{##1}\def\xb{##2}\def\xc{##3}}% -\next|#3|% -\def\next<##1,##2>{\deltax=##1\deltay=##2\ignorespaces}% -\next<#7>% -\def\next[##1`##2`##3;##4`##5`##6]{% - \def\nodea{##1}\def\nodeb{##2}\def\nodec{##3}% - \def\labela{##4}\def\labelb{##5}\def\labelc{##6}}% -\next[#8]% -\advance\ypos by \deltay% -\morphism(\xpos,\ypos)|\xb|/{#5}/<\deltax,-\deltay>[\nodea`\nodec;\labelb]% -\multiply\deltax by 2% -\morphism(\xpos,\ypos)|\xa|/{#4}/<\deltax,0>[\nodea`\nodeb;\labela]% -\advance\xpos by \deltax \divide \deltax by 2 -\morphism(\xpos,\ypos)|\xc|/{#6}/<-\deltax,-\deltay>[\nodeb`\nodec;\labelc]% -\ignorespaces}% - -\def\Ctrianglepppp(#1,#2)|#3|/#4`#5`#6/<#7>[#8]{% -\xpos#1\ypos#2% -\def\next|##1##2##3|{\def\xa{##1}\def\xb{##2}\def\xc{##3}}% -\next|#3|% -\def\next<##1,##2>{\deltax=##1\deltay=##2\ignorespaces}% -\next<#7>% -\def\next[##1`##2`##3;##4`##5`##6]{% - \def\nodea{##1}\def\nodeb{##2}\def\nodec{##3}% - \def\labela{##4}\def\labelb{##5}\def\labelc{##6}}% -\next[#8]% -\advance \ypos by \deltay% -\morphism(\xpos,\ypos)|\xc|/{#6}/<\deltax,-\deltay>[\nodeb`\nodec;\labelc]% -\advance\ypos by \deltay \advance \xpos by \deltax% -\morphism(\xpos,\ypos)|\xa|/{#4}/<-\deltax,-\deltay>[\nodea`\nodeb;\labela]% -\multiply\deltay by 2% -\morphism(\xpos,\ypos)|\xb|/{#5}/<0,-\deltay>[\nodea`\nodec;\labelb]% -\ignorespaces}% - -\def\Dtrianglepppp(#1,#2)|#3|/#4`#5`#6/<#7>[#8]{% -\xpos#1\ypos#2% -\def\next|##1##2##3|{\def\xa{##1}\def\xb{##2}\def\xc{##3}}% -\next|#3|% -\def\next<##1,##2>{\deltax=##1\deltay=##2\ignorespaces}% -\next<#7>% -\def\next[##1`##2`##3;##4`##5`##6]{% - \def\nodea{##1}\def\nodeb{##2}\def\nodec{##3}% - \def\labela{##4}\def\labelb{##5}\def\labelc{##6}}% -\next[#8]% -\advance\xpos by \deltax \advance\ypos by \deltay% -\morphism(\xpos,\ypos)|\xc|/{#6}/<-\deltax,-\deltay>[\nodeb`\nodec;\labelc]% -\advance\xpos by -\deltax \advance\ypos by \deltay% -\morphism(\xpos,\ypos)|\xb|/{#5}/<\deltax,-\deltay>[\nodea`\nodeb;\labelb]% -\multiply \deltay by 2% -\morphism(\xpos,\ypos)|\xa|/{#4}/<0,-\deltay>[\nodea`\nodec;\labela]% -\ignorespaces}% - -\def\ptriangle{\ifnextchar({\ptrianglep}{\ptrianglep(0,0)}}% -\def\ptrianglep(#1){\ifnextchar|{\ptrianglepp(#1)}{\ptrianglepp(#1)|alr|}}% -\def\ptrianglepp(#1)|#2|{\ifnextchar/{\ptriangleppp(#1)|#2|}% - {\ptriangleppp(#1)|#2|/>`>`>/}}% -\def\ptriangleppp(#1)|#2|/#3`#4`#5/{% - \ifnextchar<{\ptrianglepppp(#1)|#2|/#3`#4`#5/}% - {\ptrianglepppp(#1)|#2|/#3`#4`#5/<\default,\default>}}% - -\def\qtriangle{\ifnextchar({\qtrianglep}{\qtrianglep(0,0)}}% -\def\qtrianglep(#1){\ifnextchar|{\qtrianglepp(#1)}{\qtrianglepp(#1)|alr|}}% -\def\qtrianglepp(#1)|#2|{\ifnextchar/{\qtriangleppp(#1)|#2|}% - {\qtriangleppp(#1)|#2|/>`>`>/}}% -\def\qtriangleppp(#1)|#2|/#3`#4`#5/{% - \ifnextchar<{\qtrianglepppp(#1)|#2|/#3`#4`#5/}% - {\qtrianglepppp(#1)|#2|/#3`#4`#5/<\default,\default>}}% - -\def\dtriangle{\ifnextchar({\dtrianglep}{\dtrianglep(0,0)}}% -\def\dtrianglep(#1){\ifnextchar|{\dtrianglepp(#1)}{\dtrianglepp(#1)|lrb|}}% -\def\dtrianglepp(#1)|#2|{\ifnextchar/{\dtriangleppp(#1)|#2|}% - {\dtriangleppp(#1)|#2|/>`>`>/}}% -\def\dtriangleppp(#1)|#2|/#3`#4`#5/{% - \ifnextchar<{\dtrianglepppp(#1)|#2|/#3`#4`#5/}% - {\dtrianglepppp(#1)|#2|/#3`#4`#5/<\default,\default>}}% - -\def\btriangle{\ifnextchar({\btrianglep}{\btrianglep(0,0)}}% -\def\btrianglep(#1){\ifnextchar|{\btrianglepp(#1)}{\btrianglepp(#1)|lrb|}}% -\def\btrianglepp(#1)|#2|{\ifnextchar/{\btriangleppp(#1)|#2|}% - {\btriangleppp(#1)|#2|/>`>`>/}}% -\def\btriangleppp(#1)|#2|/#3`#4`#5/{% - \ifnextchar<{\btrianglepppp(#1)|#2|/#3`#4`#5/}% - {\btrianglepppp(#1)|#2|/#3`#4`#5/<\default,\default>}}% - -\def\Atriangle{\ifnextchar({\Atrianglep}{\Atrianglep(0,0)}}% -\def\Atrianglep(#1){\ifnextchar|{\Atrianglepp(#1)}{\Atrianglepp(#1)|lrb|}}% -\def\Atrianglepp(#1)|#2|{\ifnextchar/{\Atriangleppp(#1)|#2|}% - {\Atriangleppp(#1)|#2|/>`>`>/}}% -\def\Atriangleppp(#1)|#2|/#3`#4`#5/{% - \ifnextchar<{\Atrianglepppp(#1)|#2|/#3`#4`#5/}% - {\Atrianglepppp(#1)|#2|/#3`#4`#5/<\default,\default>}}% - -\def\Vtriangle{\ifnextchar({\Vtrianglep}{\Vtrianglep(0,0)}}% -\def\Vtrianglep(#1){\ifnextchar|{\Vtrianglepp(#1)}{\Vtrianglepp(#1)|alb|}}% -\def\Vtrianglepp(#1)|#2|{\ifnextchar/{\Vtriangleppp(#1)|#2|}% - {\Vtriangleppp(#1)|#2|/>`>`>/}}% -\def\Vtriangleppp(#1)|#2|/#3`#4`#5/{% - \ifnextchar<{\Vtrianglepppp(#1)|#2|/#3`#4`#5/}% - {\Vtrianglepppp(#1)|#2|/#3`#4`#5/<\default,\default>}}% - -\def\Ctriangle{\ifnextchar({\Ctrianglep}{\Ctrianglep(0,0)}}% -\def\Ctrianglep(#1){\ifnextchar|{\Ctrianglepp(#1)}{\Ctrianglepp(#1)|arb|}}% -\def\Ctrianglepp(#1)|#2|{\ifnextchar/{\Ctriangleppp(#1)|#2|}% - {\Ctriangleppp(#1)|#2|/>`>`>/}}% -\def\Ctriangleppp(#1)|#2|/#3`#4`#5/{% - \ifnextchar<{\Ctrianglepppp(#1)|#2|/#3`#4`#5/}% - {\Ctrianglepppp(#1)|#2|/#3`#4`#5/<\default,\default>}}% - -\def\Dtriangle{\ifnextchar({\Dtrianglep}{\Dtrianglep(0,0)}}% -\def\Dtrianglep(#1){\ifnextchar|{\Dtrianglepp(#1)}{\Dtrianglepp(#1)|alb|}}% -\def\Dtrianglepp(#1)|#2|{\ifnextchar/{\Dtriangleppp(#1)|#2|}% - {\Dtriangleppp(#1)|#2|/>`>`>/}}% -\def\Dtriangleppp(#1)|#2|/#3`#4`#5/{% - \ifnextchar<{\Dtrianglepppp(#1)|#2|/#3`#4`#5/}% - {\Dtrianglepppp(#1)|#2|/#3`#4`#5/<\default,\default>}}% - - -\def\Atrianglepairpppp(#1)|#2|/#3`#4`#5`#6`#7/<#8>[#9]{% -\def\next(##1,##2){\xpos##1\ypos##2}% -\next(#1)% -\def\next|##1##2##3##4##5|{\def\xa{##1}\def\xb{##2}% -\def\xc{##3}\def\xd{##4}\def\xe{##5}}% -\next|#2|% -\def\next<##1,##2>{\deltax=##1\deltay=##2\ignorespaces}% -\next<#8>% -\def\next[##1`##2`##3`##4;##5`##6`##7`##8`##9]{% - \def\nodea{##1}\def\nodeb{##2}\def\nodec{##3}\def\noded{##4}% - \def\labela{##5}\def\labelb{##6}\def\labelc{##7}\def\labeld{##8}\def\labele{##9}}% -\next[#9]% -\morphism(\xpos,\ypos)|\xd|/{#6}/<\deltax,0>[\nodeb`\nodec;\labeld]% -\advance\xpos by \deltax% -\morphism(\xpos,\ypos)|\xe|/{#7}/<\deltax,0>[\nodec`\noded;\labele]% -\advance\ypos by \deltay% -\morphism(\xpos,\ypos)|\xa|/{#3}/<-\deltax,-\deltay>[\nodea`\nodeb;\labela]% -\morphism(\xpos,\ypos)|\xb|/{#4}/<0,-\deltay>[\nodea`\nodec;\labelb]% -\morphism(\xpos,\ypos)|\xc|/{#5}/<\deltax,-\deltay>[\nodea`\noded;\labelc]% -\ignorespaces}% - -\def\Vtrianglepairpppp(#1)|#2|/#3`#4`#5`#6`#7/<#8>[#9]{% -\def\next(##1,##2){\xpos##1\ypos##2}% -\next(#1)% -\def\next|##1##2##3##4##5|{\def\xa{##1}\def\xb{##2}% -\def\xc{##3}\def\xd{##4}\def\xe{##5}}% -\next|#2|% -\def\next<##1,##2>{\deltax=##1\deltay=##2\ignorespaces}% -\next<#8>% -\def\next[##1`##2`##3`##4;##5`##6`##7`##8`##9]{% - \def\nodea{##1}\def\nodeb{##2}\def\nodec{##3}\def\noded{##4}% - \def\labela{##5}\def\labelb{##6}\def\labelc{##7}\def\labeld{##8}\def\labele{##9}}% -\next[#9]% -\advance\ypos by \deltay% -\morphism(\xpos,\ypos)|\xa|/{#3}/<\deltax,0>[\nodea`\nodeb;\labela]% -\morphism(\xpos,\ypos)|\xc|/{#5}/<\deltax,-\deltay>[\nodea`\noded;\labelc]% -\advance\xpos by \deltax% -\morphism(\xpos,\ypos)|\xb|/{#4}/<\deltax,0>[\nodeb`\nodec;\labelb]% -\morphism(\xpos,\ypos)|\xd|/{#6}/<0,-\deltay>[\nodeb`\noded;\labeld]% -\advance\xpos by \deltax% -\morphism(\xpos,\ypos)|\xe|/{#7}/<-\deltax,-\deltay>[\nodec`\noded;\labele]% -\ignorespaces}% - -\def\Ctrianglepairpppp(#1)|#2|/#3`#4`#5`#6`#7/<#8>[#9]{% -\def\next(##1,##2){\xpos##1\ypos##2}% -\next(#1)% -\def\next|##1##2##3##4##5|{\def\xa{##1}\def\xb{##2}% -\def\xc{##3}\def\xd{##4}\def\xe{##5}}% -\next|#2|% -\def\next<##1,##2>{\deltax=##1\deltay=##2\ignorespaces}% -\next<#8>% -\def\next[##1`##2`##3`##4;##5`##6`##7`##8`##9]{% - \def\nodea{##1}\def\nodeb{##2}\def\nodec{##3}\def\noded{##4}% - \def\labela{##5}\def\labelb{##6}\def\labelc{##7}\def\labeld{##8}\def\labele{##9}}% -\next[#9]% -\advance\ypos by \deltay% -\morphism(\xpos,\ypos)|\xe|/{#7}/<0,-\deltay>[\nodec`\noded;\labele]% -\advance\xpos by -\deltax% -\morphism(\xpos,\ypos)|\xc|/{#5}/<\deltax,0>[\nodeb`\nodec;\labelc]% -\morphism(\xpos,\ypos)|\xd|/{#6}/<\deltax,-\deltay>[\nodeb`\noded;\labeld]% -\advance\ypos by \deltay% -\advance\xpos by \deltax% -\morphism(\xpos,\ypos)|\xa|/{#3}/<-\deltax,-\deltay>[\nodea`\nodeb;\labela]% -\morphism(\xpos,\ypos)|\xb|/{#4}/<0,-\deltay>[\nodea`\nodec;\labelb]% -\ignorespaces}% - -\def\Dtrianglepairpppp(#1)|#2|/#3`#4`#5`#6`#7/<#8>[#9]{% -\def\next(##1,##2){\xpos##1\ypos##2}% -\next(#1)% -\def\next|##1##2##3##4##5|{\def\xa{##1}\def\xb{##2}% -\def\xc{##3}\def\xd{##4}\def\xe{##5}}% -\next|#2|% -\def\next<##1,##2>{\deltax=##1\deltay=##2\ignorespaces}% -\next<#8>% -\def\next[##1`##2`##3`##4;##5`##6`##7`##8`##9]{% - \def\nodea{##1}\def\nodeb{##2}\def\nodec{##3}\def\noded{##4}% - \def\labela{##5}\def\labelb{##6}\def\labelc{##7}\def\labeld{##8}\def\labele{##9}}% -\next[#9]% -\advance\ypos by \deltay% -\morphism(\xpos,\ypos)|\xc|/{#5}/<\deltax,0>[\nodeb`\nodec;\labelc]% -\morphism(\xpos,\ypos)|\xd|/{#6}/<0,-\deltay>[\nodeb`\noded;\labeld]% -\advance\ypos by \deltay% -\morphism(\xpos,\ypos)|\xa|/{#3}/<0,-\deltay>[\nodea`\nodeb;\labela]% -\morphism(\xpos,\ypos)|\xb|/{#4}/<\deltax,-\deltay>[\nodea`\nodec;\labelb]% -\advance\ypos by -\deltay% -\advance\xpos by \deltax% -\morphism(\xpos,\ypos)|\xe|/{#7}/<-\deltax,-\deltay>[\nodec`\noded;\labele]% -\ignorespaces}% - -\def\Atrianglepair{\ifnextchar({\Atrianglepairp}{\Atrianglepairp(0,0)}}% -\def\Atrianglepairp(#1){\ifnextchar|{\Atrianglepairpp(#1)}% -{\Atrianglepairpp(#1)|lmrbb|}}% -\def\Atrianglepairpp(#1)|#2|{\ifnextchar/{\Atrianglepairppp(#1)|#2|}% - {\Atrianglepairppp(#1)|#2|/>`>`>`>`>/}}% -\def\Atrianglepairppp(#1)|#2|/#3`#4`#5`#6`#7/{% - \ifnextchar<{\Atrianglepairpppp(#1)|#2|/#3`#4`#5`#6`#7/}% - {\Atrianglepairpppp(#1)|#2|/#3`#4`#5`#6`#7/<\default,\default>}}% - -\def\Vtrianglepair{\ifnextchar({\Vtrianglepairp}{\Vtrianglepairp(0,0)}}% -\def\Vtrianglepairp(#1){\ifnextchar|{\Vtrianglepairpp(#1)}% -{\Vtrianglepairpp(#1)|aalmr|}}% -\def\Vtrianglepairpp(#1)|#2|{\ifnextchar/{\Vtrianglepairppp(#1)|#2|}% - {\Vtrianglepairppp(#1)|#2|/>`>`>`>`>/}}% -\def\Vtrianglepairppp(#1)|#2|/#3`#4`#5`#6`#7/{% - \ifnextchar<{\Vtrianglepairpppp(#1)|#2|/#3`#4`#5`#6`#7/}% - {\Vtrianglepairpppp(#1)|#2|/#3`#4`#5`#6`#7/<\default,\default>}}% - -\def\Ctrianglepair{\ifnextchar({\Ctrianglepairp}{\Ctrianglepairp(0,0)}}% -\def\Ctrianglepairp(#1){\ifnextchar|{\Ctrianglepairpp(#1)}% -{\Ctrianglepairpp(#1)|lrmlr|}}% -\def\Ctrianglepairpp(#1)|#2|{\ifnextchar/{\Ctrianglepairppp(#1)|#2|}% - {\Ctrianglepairppp(#1)|#2|/>`>`>`>`>/}}% -\def\Ctrianglepairppp(#1)|#2|/#3`#4`#5`#6`#7/{% - \ifnextchar<{\Ctrianglepairpppp(#1)|#2|/#3`#4`#5`#6`#7/}% - {\Ctrianglepairpppp(#1)|#2|/#3`#4`#5`#6`#7/<\default,\default>}}% - -\def\Dtrianglepair{\ifnextchar({\Dtrianglepairp}{\Dtrianglepairp(0,0)}}% -\def\Dtrianglepairp(#1){\ifnextchar|{\Dtrianglepairpp(#1)}% -{\Dtrianglepairpp(#1)|lrmlr|}}% -\def\Dtrianglepairpp(#1)|#2|{\ifnextchar/{\Dtrianglepairppp(#1)|#2|}% - {\Dtrianglepairppp(#1)|#2|/>`>`>`>`>/}}% -\def\Dtrianglepairppp(#1)|#2|/#3`#4`#5`#6`#7/{% - \ifnextchar<{\Dtrianglepairpppp(#1)|#2|/#3`#4`#5`#6`#7/}% - {\Dtrianglepairpppp(#1)|#2|/#3`#4`#5`#6`#7/<\default,\default>}}% - -\def\place(#1,#2)[#3]{\POS(#1,#2)*+!!<0ex,.75ex>{#3}\ignorespaces}% - -\def\pullback#1]#2]{\square#1]\trident#2]\ignorespaces}% - -\def\tridentppp|#1#2#3|/#4`#5`#6/<#7,#8>[#9]{% -\def\next[##1;##2`##3`##4]{\def\nodee{##1}\def\labele{##2}% - \def\labelf{##3}\def\labelg{##4}}% -\next[#9]% -\advance \xpos by -\deltax% -\advance \xpos by -#7\advance \ypos by #8% -\advance\deltax by #7% -\morphism(\xpos,\ypos)|#1|/{#4}/<\deltax,-#8>[\nodee`\nodeb;\labele]% -\advance\deltax by -#7% -\morphism(\xpos,\ypos)|#2|/{#5}/<#7,-#8>[\nodee`\nodea;\labelf]% -\advance\deltay by #8% -\morphism(\xpos,\ypos)|#3|/{#6}/<#7,-\deltay>[\nodee`\nodec;\labelg]% -\ignorespaces}% - -\def\trident{\ifnextchar|{\tridentp}{\tridentp|amb|}}% -\def\tridentp|#1|{\ifnextchar/{\tridentpp|#1|}{\tridentpp|#1|/{>}`{>}`{>}/}}% -\def\tridentpp|#1|/#2/{\ifnextchar<{\tridentppp|#1|/#2/}% - {\tridentppp|#1|/#2/<500,500>}}% - -\def\setmorphismwidth#1#2#3#4{% - \setbox0=\hbox{$#1{\labelstyle#3#3}#2$}#4=\wd0% - \divide #4 by 2 \divide #4 by \ul% - \advance #4 by 350 \ratchet{#4}{500}}% - -\def\setSquarewidth[#1`#2`#3`#4;#5`#6`#7`#8]{% - \setmorphismwidth{#1}{#2}{#5}{\topw}% - \setmorphismwidth{#3}{#4}{#8}{\botw}% -\ratchet{\topw}{\botw}}% - -\def\Squarepppp(#1)|#2|/#3/<#4>[#5]{% - \setSquarewidth[#5]% - \squarepppp(#1)|#2|/#3/<\topw,#4>[#5]% -\ignorespaces}% - -\def\Square{\ifnextchar({\Squarep}{\Squarep(0,0)}}% -\def\Squarep(#1){\ifnextchar|{\Squarepp(#1)}{\Squarepp(#1)|alrb|}}% -\def\Squarepp(#1)|#2|{\ifnextchar/{\Squareppp(#1)|#2|}% - {\Squareppp(#1)|#2|/>`>`>`>/}}% -\def\Squareppp(#1)|#2|/#3`#4`#5`#6/{% - \ifnextchar<{\Squarepppp(#1)|#2|/#3`#4`#5`#6/}% - {\Squarepppp(#1)|#2|/#3`#4`#5`#6/<\default>}}% - -\def\hSquarespppp(#1,#2)|#3|/#4/<#5>[#6;#7]{% -\Xpos=#1\Ypos=#2% -\def\next|##1##2##3##4##5##6##7|{% - \def\Xa{##1}\def\Xb{##2}\def\Xc{##3}\def\Xd{##4}% - \def\Xe{##5}\def\Xf{##6}\def\Xg{##7}}% -\next|#3|% -\deltaY=#5% -\def\next[##1`##2`##3`##4`##5`##6]{% - \def\Nodea{##1}\def\Nodeb{##2}\def\Nodec{##3}% - \def\Noded{##4}\def\Nodee{##5}\def\Nodef{##6}}% -\next[#6]% -\def\next[##1`##2`##3`##4`##5`##6`##7]{% - \def\Labela{##1}\def\Labelb{##2}\def\Labelc{##3}\def\Labeld{##4}% - \def\Labele{##5}\def\Labelf{##6}\def\Labelg{##7}}% -\next[#7]% -\dohSquares/#4/}% - -\def\dohSquares/#1`#2`#3`#4`#5`#6`#7/{% -\Squarepppp(\Xpos,\Ypos)|\Xa\Xc\Xd\Xf|/#1`#3`#4`#6/<\deltaY>% - [\Nodea`\Nodeb`\Noded`\Nodee;\Labela`\Labelc`\Labeld`\Labelf]% - \advance \Xpos by \topw -\Squarepppp(\Xpos,\Ypos)|\Xb\Xd\Xe\Xg|/#2``#5`#7/<\deltaY>% -[\Nodeb`\Nodec`\Nodee`\Nodef;\Labelb``\Labele`\Labelg]% -\ignorespaces}% - -\def\hSquares{\ifnextchar({\hSquaresp}{\hSquaresp(0,0)}}% -\def\hSquaresp(#1){\ifnextchar|{\hSquarespp(#1)}{\hSquarespp% -(#1)|aalmrbb|}}% -\def\hSquarespp(#1)|#2|{\ifnextchar/{\hSquaresppp(#1)|#2|}% - {\hSquaresppp(#1)|#2|/>`>`>`>`>`>`>/}}% -\def\hSquaresppp(#1)|#2|/#3/{% - \ifnextchar<{\hSquarespppp(#1)|#2|/#3/}% - {\hSquarespppp(#1)|#2|/#3/<\default>}}% - -\def\vSquarespppp(#1,#2)|#3|/#4/<#5,#6>[#7;#8]{% -\Xpos=#1\Ypos=#2% -\def\next|##1##2##3##4##5##6##7|{% - \def\Xa{##1}\def\Xb{##2}\def\Xc{##3}\def\Xd{##4}% - \def\Xe{##5}\def\Xf{##6}\def\Xg{##7}}% -\next|#3|% -\deltaX=#5% -\deltaY=#6% -\def\next[##1`##2`##3`##4`##5`##6]{% - \def\Nodea{##1}\def\Nodeb{##2}\def\Nodec{##3}% - \def\Noded{##4}\def\Nodee{##5}\def\Nodef{##6}}% -\next[#7]% -\def\next[##1`##2`##3`##4`##5`##6`##7]{% - \def\Labela{##1}\def\Labelb{##2}\def\Labelc{##3}\def\Labeld{##4}% - \def\Labele{##5}\def\Labelf{##6}\def\Labelg{##7}}% -\next[#8]% -\dovSquares/#4/\ignorespaces}% - -\def\dovSquares/#1`#2`#3`#4`#5`#6`#7/{% -\setmorphismwidth{\Nodea}{\Nodeb}{\Labela}{\topw}% -\setmorphismwidth{\Nodec}{\Noded}{\Labeld}{\botw}% -\ratchet{\topw}{\botw}% -\setmorphismwidth{\Nodee}{\Nodef}{\Labelg}{\botw}% -\ratchet{\topw}{\botw}% -\square(\Xpos,\Ypos)|\Xd\Xe\Xf\Xg|/`#5`#6`#7/<\topw,\deltaX>% - [\Nodec`\Noded`\Nodee`\Nodef;`\Labele`\Labelf`\Labelg]% -\advance \Ypos by \deltaX% -\square(\Xpos,\Ypos)|\Xa\Xb\Xc\Xd|/#1`#2`#3`#4/<\topw,\deltaY>% - [\Nodea`\Nodeb`\Nodec`\Noded;\Labela`\Labelb`\Labelc`\Labeld]% -}% - -\def\vSquares{\ifnextchar({\vSquaresp}{\vSquaresp(0,0)}}% -\def\vSquaresp(#1){\ifnextchar|{\vSquarespp(#1)}{\vSquarespp% -(#1)|alrmlrb|}}% -\def\vSquarespp(#1)|#2|{\ifnextchar/{\vSquaresppp(#1)|#2|}% - {\vSquaresppp(#1)|#2|/>`>`>`>`>`>`>/}}% -\def\vSquaresppp(#1)|#2|/#3/{% - \ifnextchar<{\vSquarespppp(#1)|#2|/#3/}% - {\vSquarespppp(#1)|#2|/#3/<\default,\default>}}% - -\def\osquarepppp(#1)|#2|/#3`#4`#5`#6/<#7>[#8]{\squarepppp% - (#1)|#2|/#3`#4`#5`#6/<#7>[#8]% - \let\Nodea\nodea\let\Nodeb\nodeb% -\let\Nodec\nodec\let\Noded\noded\Xpos=\xpos\Ypos=\ypos% -\deltaX=\deltax \deltaY=\deltay \isquare} - -\def\cube{\ifnextchar({\osquarep}{\osquarep(0,0)}}% -\def\osquarep(#1){\ifnextchar|{\osquarepp(#1)}{\osquarepp(#1)|alrb|}}% -\def\osquarepp(#1)|#2|{\ifnextchar/{\osquareppp(#1)|#2|}% - {\osquareppp(#1)|#2|/>`>`>`>/}}% -\def\osquareppp(#1)|#2|/#3`#4`#5`#6/{% - \ifnextchar<{\osquarepppp(#1)|#2|/#3`#4`#5`#6/}% - {\osquarepppp(#1)|#2|/#3`#4`#5`#6/<1500,1500>}}% - -\def\isquarepppp(#1)|#2|/#3`#4`#5`#6/<#7>[#8]{% - \squarepppp(#1)|#2|/#3`#4`#5`#6/<#7>[#8]% -\ifnextchar|{\cubep}{\cubep|mmmm|}}% -\def\cubep|#1|{\ifnextchar/{\cubepp|#1|}{\cubepp|#1|/>`>`>`>/}}% - -\def\isquare{\ifnextchar({\isquarep}{\isquarep(\default,\default)}}% -\def\isquarep(#1){\ifnextchar|{\isquarepp(#1)}{\isquarepp(#1)|alrb|}} -\def\isquarepp(#1)|#2|{\ifnextchar/{\isquareppp(#1)|#2|}% - {\isquareppp(#1)|#2|/>`>`>`>/}}% -\def\isquareppp(#1)|#2|/#3`#4`#5`#6/{% - \ifnextchar<{\isquarepppp(#1)|#2|/#3`#4`#5`#6/}% - {\isquarepppp(#1)|#2|/#3`#4`#5`#6/<500,500>}}% - -\def\cubepp|#1#2#3#4|/#5`#6`#7`#8/[#9]{% -\def\next[##1`##2`##3`##4]{\gdef\Labela{##1}% -\gdef\Labelb{##2}\gdef\Labelc{##3}\gdef\Labeld{##4}}\next[#9]% -\xend\xpos \yend\ypos -\Xend\xend\advance\Xend by -\Xpos -\Yend\yend\advance\Yend by -\Ypos -\domorphism(\Xpos,\Ypos)|#2|/#6/<\Xend,\Yend>[\Nodeb`\nodeb;\Labelb]% -\advance\Xpos by-\deltaX -\advance\xend by-\deltax -\Xend\xend\advance\Xend by -\Xpos -\domorphism(\Xpos,\Ypos)|#1|/#5/<\Xend,\Yend>[\Nodea`\nodea;\Labela]% -\advance\Ypos by-\deltaY -\advance\yend by-\deltay -\Yend\yend\advance\Yend by -\Ypos -\domorphism(\Xpos,\Ypos)|#3|/#7/<\Xend,\Yend>[\Nodec`\nodec;\Labelc]% -\advance\Xpos by\deltaX -\advance\xend by\deltax -\Xend\xend\advance\Xend by -\Xpos -\domorphism(\Xpos,\Ypos)|#4|/#8/<\Xend,\Yend>[\Noded`\noded;\Labeld]% -\ignorespaces} - -\def\setwdth#1#2{\setbox0\hbox{$\labelstyle#1$}\wdth=\wd0 -\setbox0\hbox{$\labelstyle#2$}\ifnum\wdth<\wd0 \wdth=\wd0 \fi} - -\def\topppp/#1/<#2>^#3_#4{\allowbreak\mathrel{% -\ifnum#2=0 - \setwdth{#3}{#4}\deltax=\wdth \divide \deltax by \ul - \advance \deltax by \defaultmargin \ratchet{\deltax}{200}% -\else \deltax #2 -\fi -\xy\ar@{#1}^{#3}_{#4}(\deltax,0) \endxy -\ignorespaces}} - -\def\toppp/#1/<#2>^#3{\ifnextchar_{\topppp/#1/<#2>^{#3}}{\topppp/#1/<#2>^{#3}_{}}} -\def\topp/#1/<#2>{\ifnextchar^{\toppp/#1/<#2>}{\toppp/#1/<#2>^{}}} -\def\top/#1/{\ifnextchar<{\topp/#1/}{\topp/#1/<0>}} -\def\to{\ifnextchar/{\top}{\top/>/}} - -\def\mon{\to/ >->/} -\def\epi{\to/->>/} -\def\toleft{\to/<-/} -\def\monleft{\to/<-< /} -\def\epileft{\to/<<-/} - - -\def\twopppp/#1`#2/<#3>^#4_#5{\allowbreak\mathrel{% -\ifnum0=#3 - \setwdth{#4}{#5}\deltax=\wdth \divide \deltax by \ul \advance \deltax - by \defaultmargin \ratchet{\deltax}{200}% -\else \deltax#3 \fi -\xy\ar@{#1}@<2.5pt>^{#4}(\deltax,0)% -\ar@{#2}@<-2.5pt>_{#5}(\deltax,0)\endxy\ignorespaces}} - -\def\twoppp/#1`#2/<#3>^#4{\ifnextchar_{\twopppp/#1`#2/<#3>^{#4}}% - {\twopppp/#1`#2/<#3>^{#4}_{}}} -\def\twopp/#1`#2/<#3>{\ifnextchar^{\twoppp/#1`#2/<#3>}{\twoppp/#1`#2/<#3>^{}}} -\def\twop/#1`#2/{\ifnextchar<{\twopp/#1`#2/}{\twopp/#1`#2/<0>}} -\def\two{\ifnextchar/{\twop}{\twop/>`>/}} - -\def\twoleft{\two/<-`<-/} - -\def\threeppppp/#1`#2`#3/<#4>^#5|#6_#7{\allowbreak\mathrel{% -\ifnum0=#4 -\setbox0\hbox{$\labelstyle#5$}\wdth=\wd0 -\setbox0\hbox{$\labelstyle#6$}\ifnum\wdth<\wd0 \wdth=\wd0 \fi -\setbox0\hbox{$\labelstyle#7$}\ifnum\wdth<\wd0 \wdth=\wd0 \fi -\deltax=\wdth \divide \deltax by \ul \advance \deltax by -\defaultmargin \ratchet{\deltax}{300}% -\else\deltax#4 \fi - \xy \ifnum\wd0=0 \ar@{#2}(\deltax,0) - \else \ar@{#2}|{#6}(\deltax,0)\fi -\ar@{#1}@<4.5pt>^{#5}(\deltax,0) -\ar@{#3}@<-4.5pt>_{#7}(\deltax,0)\endxy\ignorespaces}} - -\def\threepppp/#1`#2`#3/<#4>^#5|#6{\ifnextchar_{\threeppppp - /#1`#2`#3/<#4>^{#5}|{#6}}{\threeppppp/#1`#2`#3/<#4>^{#5}|{#6}_{}}} -\def\threeppp/#1`#2`#3/<#4>^#5{\ifnextchar|{\threepppp - /#1`#2`#3/<#4>^{#5}}{\threepppp/#1`#2`#3/<#4>^{#5}|{}}} -\def\threepp/#1`#2`#3/<#4>{\ifnextchar^{\threeppp/#1`#2`#3/<#4>}% - {\threeppp/#1`#2`#3/<#4>^{}}} -\def\threep/#1`#2`#3/{\ifnextchar<{\threepp/#1`#2`#3/}% - {\threepp/#1`#2`#3/<0>}} -\def\three{\ifnextchar/{\threep}{\threep/>`>`>/}} - - -\def\twoar(#1,#2){{% - \scalefactor{0.1} - \deltax#1\deltay#2% - \deltaX=\ifnum\deltax<0-\fi\deltax - \deltaY=\ifnum\deltay<0-\fi\deltay - \Xend\deltax \multiply \Xend by \deltax - \Yend\deltay \multiply \Yend by \deltay - \advance\Xend by \Yend \multiply \Xend by 3 - \ifnum \deltaX > \deltaY - \multiply \deltaX by 3 \advance \deltaX by \deltaY - \else - \multiply \deltaY by 3 \advance \deltaX by \deltaY - \fi - \multiply\deltax by 500 - \multiply\deltay by 500 - \xpos\deltax \multiply \xpos by 3 \divide\xpos by \deltaX - \Xpos\deltax \multiply \Xpos by \deltaX \divide \Xpos by \Xend - \advance \xpos by \Xpos - \ypos\deltay \multiply \ypos by 3 \divide\ypos by \deltaX - \Ypos\deltay \multiply \Ypos by \deltaX \divide \Ypos by \Xend - \advance \ypos by \Ypos - \xy \ar@{=>}(\xpos,\ypos) \endxy -}\ignorespaces} - -\def\iiixiiipppppp(#1,#2)|#3|/#4/<#5>#6<#7>[#8;#9]{% - \xpos#1\ypos#2\relax - \def\next|##1##2##3##4##5##6##7|{\def\xa{##1}\def\xb{##2}% - \def\xc{##3}\def\xd{##4}\def\xe{##5}\def\xf{##6}\nextt|##7|}% - \def\nextt|##1##2##3##4##5##6|{\def\xg{##1}\def\xh{##2}% - \def\xi{##3}\def\xj{##4}\def\xk{##5}\def\xl{##6}}% - \next|#3|% - \def\next<##1,##2>{\deltax##1\deltay##2}% - \next<#5>% - \def\next<##1,##2>{\deltaX##1\deltaY##2}% - \next<#7>% - \def\next##1{\topw##1\relax - \ifodd\topw \def\zl{}\else\def\zl{\relax}\fi \divide\topw by 2 - \ifodd\topw \def\zk{}\else\def\zk{\relax}\fi \divide\topw by 2 - \ifodd\topw \def\zj{}\else\def\zj{\relax}\fi \divide\topw by 2 - \ifodd\topw \def\zi{}\else\def\zi{\relax}\fi \divide\topw by 2 - \ifodd\topw \def\zh{}\else\def\zh{\relax}\fi \divide\topw by 2 - \ifodd\topw \def\zg{}\else\def\zg{\relax}\fi \divide\topw by 2 - \ifodd\topw \def\zf{}\else\def\zf{\relax}\fi \divide\topw by 2 - \ifodd\topw \def\ze{}\else\def\ze{\relax}\fi \divide\topw by 2 - \ifodd\topw \def\zd{}\else\def\zd{\relax}\fi \divide\topw by 2 - \ifodd\topw \def\zc{}\else\def\zc{\relax}\fi \divide\topw by 2 - \ifodd\topw \def\zb{}\else\def\zb{\relax}\fi \divide\topw by 2 - \ifodd\topw \def\za{}\else\def\za{\relax}\fi}% - \next{#6}% - \def\next[##1`##2`##3`##4`##5`##6`##7`##8`##9]{% - \def\nodea{##1}\def\nodeb{##2}\def\nodec{##3}% - \def\noded{##4}\def\nodee{##5}\def\nodef{##6}% - \def\nodeg{##7}\def\nodeh{##8}\def\nodei{##9}}% - \next[#8]% - \def\next[##1`##2`##3`##4`##5`##6`##7]{% - \def\labela{##1}\def\labelb{##2}\def\labelc{##3}% - \def\labeld{##4}\def\labele{##5}\def\labelf{##6}\nextt[##7]}% - \def\nextt[##1`##2`##3`##4`##5`##6]{% - \def\labelg{##1}\def\labelh{##2}\def\labeli{##3}% - \def\labelj{##4}\def\labelk{##5}\def\labell{##6}}% - \next[#9]% - \def\next/##1`##2`##3`##4`##5`##6`##7/{% -\morphism(\xpos,\ypos)|\xe|/{##5}/<\deltax,0>[\nodeg`\nodeh;\labele]% - \ifx\zi\empty\relax \morphism(\xpos,\ypos)||/<-/<-\deltaX,0>[\nodeg`0;]\fi - \ifx\zd\empty\relax \morphism(\xpos,\ypos)||<0,-\deltaY>[\nodeg`0;]\fi - \advance\xpos by \deltax - \morphism(\xpos,\ypos)|\xf|/{##6}/<\deltax,0>[\nodeh`\nodei;\labelf]% - \ifx\ze\empty\relax \morphism(\xpos,\ypos)||<0,-\deltaY>[\nodeh`0;]\fi - \advance\xpos by \deltax - \ifx\zf\empty\relax \morphism(\xpos,\ypos)||<0,-\deltaY>[\nodei`0;]\fi - \ifx\zl\empty\relax \morphism(\xpos,\ypos)||<\deltaX,0>[\nodei`0;]\fi - \advance\ypos by \deltay - \ifx\zk\empty\relax \morphism(\xpos,\ypos)||<\deltaX,0>[\nodef`0;]\fi - \advance\xpos by -\deltax - \morphism(\xpos,\ypos)|\xd|/{##4}/<\deltax,0>[\nodee`\nodef;\labeld]% - \advance\xpos by -\deltax - \morphism(\xpos,\ypos)|\xc|/{##3}/<\deltax,0>[\noded`\nodee;\labelc]% - \ifx\zh\empty\relax \morphism(\xpos,\ypos)||/<-/<-\deltaX,0>[\noded`0;]\fi - \advance\ypos by \deltay - \morphism(\xpos,\ypos)|\xa|/{##1}/<\deltax,0>[\nodea`\nodeb;\labela]% - \ifx\zg\empty\relax \morphism(\xpos,\ypos)||/<-/<-\deltaX,0>[\nodea`0;]\fi - \ifx\za\empty\relax \morphism(\xpos,\ypos)||/<-/<0,\deltaY>[\nodea`0;]\fi - \advance\xpos by \deltax - \morphism(\xpos,\ypos)|\xb|/{##2}/<\deltax,0>[\nodeb`\nodec;\labelb]% - \ifx\zb\empty\relax \morphism(\xpos,\ypos)||/<-/<0,\deltaY>[\nodeb`0;]\fi - \advance\xpos by \deltax - \ifx\zc\empty\relax \morphism(\xpos,\ypos)||/<-/<0,\deltaY>[\nodec`0;]\fi - \ifx\zj\empty\relax \morphism(\xpos,\ypos)||<\deltaX,0>[\nodec`0;]\fi - \nextt/##7/}% - \def\nextt/##1`##2`##3`##4`##5`##6/{% - \morphism(\xpos,\ypos)|\xi|/{##3}/<0,-\deltay>[\nodec`\nodef;\labeli]% - \advance\xpos by -\deltax - \morphism(\xpos,\ypos)|\xh|/{##2}/<0,-\deltay>[\nodeb`\nodee;\labelh]% - \advance\xpos by -\deltax - \morphism(\xpos,\ypos)|\xg|/{##1}/<0,-\deltay>[\nodea`\noded;\labelg]% - \advance\ypos by -\deltay - \morphism(\xpos,\ypos)|\xj|/{##4}/<0,-\deltay>[\noded`\nodeg;\labelj]% - \advance\xpos by \deltax - \morphism(\xpos,\ypos)|\xk|/{##5}/<0,-\deltay>[\nodee`\nodeh;\labelk]% - \advance\xpos by \deltax - \morphism(\xpos,\ypos)|\xl|/{##6}/<0,-\deltay>[\nodef`\nodei;\labell]}% - \next/#4/\ignorespaces} - -\def\iiixiii{\ifnextchar({\iiixiiip}{\iiixiiip(0,0)}}% -\def\iiixiiip(#1){\ifnextchar|{\iiixiiipp(#1)}% - {\iiixiiipp(#1)|aammbblmrlmr|}}% -\def\iiixiiipp(#1)|#2|{\ifnextchar/{\iiixiiippp(#1)|#2|}% - {\iiixiiippp(#1)|#2|/>`>`>`>`>`>`>`>`>`>`>`>/}}% -\def\iiixiiippp(#1)|#2|/#3/{% - \ifnextchar<{\iiixiiipppp(#1)|#2|/#3/}% - {\iiixiiipppp(#1)|#2|/#3/<\default,\default>}}% -\def\iiixiiipppp(#1)|#2|/#3/<#4>{\ifnextchar[{\iiixiiippppp(#1)|#2|/#3/% - <#4>0<0,0>}{\iiixiiippppp(#1)|#2|/#3/<#4>}}% -\def\iiixiiippppp(#1)|#2|/#3/<#4>#5{\ifnextchar<% - {\iiixiiipppppp(#1)|#2|/#3/<#4>{#5}}% - {\iiixiiipppppp(#1)|#2|/#3/<#4>{#5}<400,400>}}% - -\def\iiixiipppppp(#1,#2)|#3|/#4/<#5>#6<#7>[#8;#9]{% - \xpos#1\ypos#2\relax - \def\next|##1##2##3##4##5##6##7|{\def\xa{##1}\def\xb{##2}% - \def\xc{##3}\def\xd{##4}\def\xe{##5}\def\xf{##6}\def\xg{##7}}% - \next|#3|% - \def\next<##1,##2>{\deltax##1\deltay##2}% - \next<#5>% - \deltaX#7 - \topw#6 - \def\next{% - \ifodd\topw \def\zd{}\else\def\zd{\relax}\fi \divide\topw by 2 - \ifodd\topw \def\zc{}\else\def\zc{\relax}\fi \divide\topw by 2 - \ifodd\topw \def\zb{}\else\def\zb{\relax}\fi \divide\topw by 2 - \ifodd\topw \def\za{}\else\def\za{\relax}\fi}% - \next - \def\next[##1`##2`##3`##4`##5`##6]{% - \def\nodea{##1}\def\nodeb{##2}\def\nodec{##3}% - \def\noded{##4}\def\nodee{##5}\def\nodef{##6}}% - \next[#8]% - \def\next[##1`##2`##3`##4`##5`##6`##7]{% - \def\labela{##1}\def\labelb{##2}\def\labelc{##3}% - \def\labeld{##4}\def\labele{##5}\def\labelf{##6}\def\labelg{##7}}% - \next[#9]% - \def\next/##1`##2`##3`##4`##5`##6`##7/{% - \ifx\zc\empty\relax\morphism(\xpos,\ypos)<\deltaX,0>[0`\noded;]\fi - \advance\xpos by\deltaX - \morphism(\xpos,\ypos)|\xc|/##3/<\deltax,0>[\noded`\nodee;\labelc]% - \advance\xpos by \deltax - \morphism(\xpos,\ypos)|\xd|/##4/<\deltax,0>[\nodee`\nodef;\labeld]% - \advance\xpos by \deltax - \ifx\zd\empty\relax \morphism(\xpos,\ypos)<\deltaX,0>[\nodef`0;]\fi - \advance\xpos by -\deltaX \advance\xpos by -\deltax - \advance\xpos by -\deltax \advance\ypos by \deltay - \ifx\za\empty\relax\morphism(\xpos,\ypos)<\deltaX,0>[0`\nodea;]\fi - \advance\xpos by\deltaX - \morphism(\xpos,\ypos)|\xa|/##1/<\deltax,0>[\nodea`\nodeb;\labela]% - \morphism(\xpos,\ypos)|\xe|/##5/<0,-\deltay>[\nodea`\noded;\labele]% - \advance\xpos by \deltax - \morphism(\xpos,\ypos)|\xb|/##2/<\deltax,0>[\nodeb`\nodec;\labelb]% - \morphism(\xpos,\ypos)|\xf|/##6/<0,-\deltay>[\nodeb`\nodee;\labelf]% - \advance\xpos by \deltax - \morphism(\xpos,\ypos)|\xg|/##7/<0,-\deltay>[\nodec`\nodef;\labelg]% - \ifx\zb\empty\relax \morphism(\xpos,\ypos)<\deltaX,0>[\nodec`0;]\fi}% - \next/#4/\ignorespaces} - - -\def\iiixii{\ifnextchar({\iiixiip}{\iiixiip(0,0)}}% -\def\iiixiip(#1){\ifnextchar|{\iiixiipp(#1)}% - {\iiixiipp(#1)|aabblmr|}}% -\def\iiixiipp(#1)|#2|{\ifnextchar/{\iiixiippp(#1)|#2|}% - {\iiixiippp(#1)|#2|/>`>`>`>`>`>`>/}}% -\def\iiixiippp(#1)|#2|/#3/{% - \ifnextchar<{\iiixiipppp(#1)|#2|/#3/}% - {\iiixiipppp(#1)|#2|/#3/<\default,\default>}}% -\def\iiixiipppp(#1)|#2|/#3/<#4>{\ifnextchar[{\iiixiippppp(#1)|#2|/#3/% - <#4>{0}<0>}{\iiixiippppp(#1)|#2|/#3/<#4>}}% -\def\iiixiippppp(#1)|#2|/#3/<#4>#5{\ifnextchar<% - {\iiixiipppppp(#1)|#2|/#3/<#4>{#5}}% - {\iiixiipppppp(#1)|#2|/#3/<#4>{#5}<0>}}% - -\catcode`\@=\atcode% -\endinput |