\message{Partial emulation of Francis Borceux's diagrams using...............} % you need Paul Taylor's commutative diagrams package loaded as well. \input diagrams \message{} % The macro names have been taken from Francis Borceux's "diagram.tex" % and replaced with equivalent commands in Paul Taylor's package. % The "ternary" (4x2), curved, multiple and free arrows have not yet % been implemented. To do so requires an option to be added to PT's % diagrams which, it is intended, will be in the next version. % Some of these commands can of course be implemented essentially by % copying FB's macros. You can do this if you want to, but I shall not % do it myself, distribute your code or guarantee that it will work % in future. % If you want to add commands which do have translations, please send % them to me, accompanied by a test file which exercises them. Please % test it with both FB's macros and the emulation. Your contributions % will then be included in this file, with acknowledgement. % The commands below are terminated with "\relax". This is to ensure % that anything that follows is printed afterwards instead of being % interpreted as a label or optional argument. DO NOT MAKE A HABIT OF % PUTTING \relax AFTER ARROW COMMANDS. If anything follows a horizontal % arrow within a cell, the "through" feature is disabled, so the filler % is printed in two parts instead of one. When the filler is made from % repeated components, such as those with double shafts, this may result % in gaps if the arrow is too short. % In this version all size parameters are ignored. We ought to save the % size specified in \DIAGV, and convert that in sized diagonals to cells. % If you think this emulation was worth the effort, please tell me! % (Otherwise I shaln't bother to maintain it.) %*************************************************************************** %% crossed LaTeX arrowheads \def\lhxla{\lhla\mkern-3mu\scriptaxis+}%% \def\rhxla{\scriptaxis+\mkern-2mu\rhla}%% \def\uhxla{\hbox{\uhla\raise-1.5ex\hbox to0pt{\hss$\scriptstyle+$\hss}}}%% \def\dhxla{\hbox{\dhla\lower-1ex\hbox to0pt{\hss$\scriptstyle+$\hss}}}%% \newarrowhead{+la}\rhxla\lhxla\dhxla\uhxla \newarrowtail+++++ \newarrow{Into}+---> \newarrow{Bi}+---{+la} \newarrow{Onto}----{+la} %\newarrow{To}----> %\newarrow{Dotsto}....> %\newarrow{Eq}===== %\newarrow{Mono} %\newarrow{ar}----> %\newarrow{dotar}....> %\newarrow{mono}+---> %\newarrow{epi}----{+>} %\newarrow{bimo}+---{+la} %\newarrow{iso}--{iso}-> % It would be better to define \newarrow's with names like FBar, FBmono, etc % nohcheck allows arrows in text (ie not maths) mode, amongst other things. % The assumption is that you start off with a correct FB diagram; in this % case you don't want extra &s being inserted! % 2620000sp is approx 40pt (4em at 10pt size) \diagramstyle[heads=LaTeX,nohcheck,size=2620000sp] % This was for debugging, to list the commands as they're defined. %\let\ddef\def %\ddef\zdef#1{\message{\string#1^^J}\ddef#1} %\let\def\zdef % The begin/end diagram commands. \def\DIAG#1{\begin{diagram}[]\relax#1\relax} \def\DIAGV#1#2{\dimen0=#1\DiagramCellHeight\CellSize=.01\dimen0 \begin{diagram}[]\relax#2\relax} \def\diag{\relax\end{diagram}} % \diagv{t}{l}{b} prints the last item of the diagram and % adds a t points extra space at the top of the diagram % adds a l points extra space at the left of the diagram % adds a b points extra space at the bottom of the diagram \def\diagv#1#2#3{\relax\end{diagram}}% currently ignored. % Overprint, next cell & next line commands \def\n#1{} \def\nn#1{\\#1} \def\cross#1#2{\relax#1\relax#2\relax} % Make the next arrow bold. \def\B{\csname diagramstyle\endcsname[thick]} % Not implemented. \def\movename#1#2#3{#1} \def\com{} % commutative diagram symbol %\newcommand{\com}{\begin{picture}(12,8)% %\put(6,4){\oval(8,8)[b]}\put(6,4){\oval(8,8)[r]}% %\put(6,8){\vector(-1,0){2}}\end{picture}}% \def\adj{\mbox{$\dashv$}} % Natural transformations \def\nat{\pile{\rTo\\\Downarrow\\\rTo}} \def\Nat#1#2#3{\pile{\rTo^{#1\qquad}\\ \Downarrow{\scriptstyle#2}\\ \rTo^{#3\quad}}} \def\binat{\pile{\rTo\\\Downarrow\\\rTo\\\Downarrow\\\rTo}} \def\Binat#1#2#3#4#5{\pile{\rTo^{#1\qquad}\\ \Downarrow{\scriptstyle#2}\\ \rTo^{#3\quad}\\ \Downarrow{\scriptstyle#2}\\ \rTo^{#3\quad}}} %*************************************************************************** % PRIMARY ARROW COMMANDS - FULLY TESTED %*************************************************************************** % right-ward in-text arrows \def\ar {\rTo\relax} \def\dotar{\rDotsto\relax} \def\mono {\rInto\relax} \def\epi {\rOnto\relax} \def\bimo {\rBi\relax} \def\iso {\rTo^{\cong}\relax} \def\biar {\pile{\rTo\\\rTo}\relax} \def\eql {\rEq\relax} \def\adjar{\pile{\lTo\\\rTo}\relax} % labelled right-ward in-text arrows \def\Ar #1{\rTo^{#1}\relax} \def\Dotar#1{\rDotsto^{#1}\relax} \def\Mono #1{\rInto^{#1}\relax} \def\Epi #1{\rOnto^{#1}\relax} \def\Bimo #1{\rBi^{#1}\relax} \def\Iso #1{\rTo^{{\cong}{#1}}\relax} \def\Biar #1#2{\pile{\rTo^{#1}\\\rTo_{#2}}\relax} %\def\Eql #1{\rEq^{#1}\relax} \def\Adjar#1#2{\pile{\lTo^{#1}\\\rTo_{#2}}\relax} % left-ward in-text arrows \def\bkar {\lTo\relax} \def\bkdotar{\lDotsto\relax} \def\bkmono {\lInto\relax} \def\bkepi {\lOnto\relax} \def\bkbimo {\lBi\relax} \def\bkiso {\lTo^{\cong}\relax} \def\bkbiar {\pile{\lTo\\\lTo}\relax} \def\bkeql {\lEq\relax} \def\bkadjar{\pile{\rTo\\\lTo}\relax} % labelled left-ward in-text arrows \def\Bkar #1{\lTo^{#1}\relax} \def\Bkdotar#1{\lDotsto^{#1}\relax} \def\Bkmono #1{\lInto^{#1}\relax} \def\Bkepi #1{\lOnto^{#1}\relax} \def\Bkbimo #1{\lBi^{#1}\relax} \def\Bkiso #1{\lTo^{{\cong}{#1}}\relax} \def\Bkbiar #1#2{\pile{\lTo^{#1}\\\lTo_{#2}}\relax} %\def\Bkeql #1{\lEq^{#1}\relax} \def\Bkadjar#1#2{\pile{\rTo^{#1}\\\lTo_{#2}}\relax} % east-ward diagram arrows \def\ear {\rTo\relax} \def\edotar{\rDotsto\relax} \def\emono {\rInto\relax} \def\eepi {\rOnto\relax} \def\ebimo {\rBi\relax} \def\eiso {\rTo^{\cong}\relax} \def\ebiar {\pile{\rTo\\\rTo}\relax} \def\eeql {\rEq\relax} \def\eadjar{\pile{\lTo\\\rTo}\relax} % labelled east-ward diagram arrows \def\Ear #1{\rTo^{#1}\relax} \def\Edotar#1{\rDotsto^{#1}\relax} \def\Emono #1{\rInto^{#1}\relax} \def\Eepi #1{\rOnto^{#1}\relax} \def\Ebimo #1{\rBi^{#1}\relax} \def\Eiso #1{\rTo^{{\cong}{#1}}\relax} \def\Ebiar #1#2{\pile{\rTo^{#1}\\\rTo_{#2}}\relax} %\def\Eeql #1{\rEq^{#1}\relax} \def\Eadjar#1#2{\pile{\lTo^{#1}\\\rTo_{#2}}\relax} % labelled east-ward diagram arrows \def\eaR #1{\rTo_{#1}\relax} \def\edotaR#1{\rDotsto_{#1}\relax} \def\emonO #1{\rInto_{#1}\relax} \def\eepI #1{\rOnto_{#1}\relax} \def\ebimO #1{\rBi_{#1}\relax} \def\eisO #1{\rTo_{{\cong}{#1}}\relax} %\def\ebiaR #1#2{\pile{\rTo_{#1}\\\rTo_{#2}}\relax} %\def\eeqL #1{\rEq_{#1}\relax} %\def\eadjaR#1#2{\pile{\lTo_{#1}\\\rTo_{#2}}\relax} % west-ward diagram arrows \def\war {\lTo\relax} \def\wdotar{\lDotsto\relax} \def\wmono {\lInto\relax} \def\wepi {\lOnto\relax} \def\wbimo {\lBi\relax} \def\wiso {\lTo^{\cong}\relax} \def\wbiar {\pile{\lTo\\\lTo}\relax} \def\weql {\lEq\relax} \def\wadjar{\pile{\rTo\\\lTo}\relax} % labelled west-ward diagram arrows \def\War #1{\lTo^{#1}\relax} \def\Wdotar#1{\lDotsto^{#1}\relax} \def\Wmono #1{\lInto^{#1}\relax} \def\Wepi #1{\lOnto^{#1}\relax} \def\Wbimo #1{\lBi^{#1}\relax} %\def\Wiso #1{\lTo^{{\cong}{#1}}\relax}%%%%%%% FB's has no \cong!!!!!!!! \def\Wiso #1{\lTo^{{#1}}\relax} \def\Wbiar #1#2{\pile{\lTo^{#1}\\\lTo_{#2}}\relax} %\def\Weql #1{\lEq^{#1}\relax} \def\Wadjar#1#2{\pile{\rTo^{#1}\\\lTo_{#2}}\relax} % labelled west-ward diagram arrows \def\waR #1{\lTo_{#1}\relax} \def\wdotaR#1{\lDotsto_{#1}\relax} \def\wmonO #1{\lInto_{#1}\relax} \def\wepI #1{\lOnto_{#1}\relax} \def\wbimO #1{\lBi_{#1}\relax} %\def\wisO #1{\lTo_{{\cong}{#1}}\relax}%%%%%%%%%%%%% FB's has no \cong!!!!!!! \def\wisO #1{\lTo_{{#1}}\relax} %\def\wbiaR #1#2{\pile{\lTo_{#1}\\\lTo_{#2}}\relax} %\def\weqL #1{\lEq_{#1}\relax} %\def\wadjaR#1#2{\pile{\rTo_{#1}\\\lTo_{#2}}\relax} % north-ward diagram arrows \def\nar {\uTo\relax} \def\ndotar{\uDotsto\relax} \def\nmono {\uInto\relax} \def\nepi {\uOnto\relax} \def\nbimo {\uBi\relax} \def\niso {\uTo>{\cong}\relax} \def\nbiar {\uTo\uTo\relax} \def\neql {\uEq\relax} \def\nadjar{\uTo\dTo\relax} % labelled north-ward diagram arrows \def\Nar #1{\uTo^{#1}\relax} \def\Ndotar#1{\uDotsto^{#1}\relax} \def\Nmono #1{\uInto^{#1}\relax} \def\Nepi #1{\uOnto^{#1}\relax} \def\Nbimo #1{\uBi^{#1}\relax} \def\Niso #1{\uTo<{#1}>{\cong}\relax} \def\Nbiar #1#2{uTo^{#1}\uTo_{#2}\relax} %\def\Neql #1{\uEq^{#1}\relax} \def\Nadjar#1#2{\uTo^{#1}\dTo_{#2}\relax} % labelled north-ward diagram arrows \def\naR #1{\uTo_{#1}\relax} \def\ndotaR#1{\uDotsto_{#1}\relax} \def\nmonO #1{\uInto_{#1}\relax} \def\nepI #1{\uOnto_{#1}\relax} \def\nbimO #1{\uBi_{#1}\relax} %\def\nisO #1{\uTo_{{\cong}{#1}}\relax} %\def\nbiaR #1#2{uTo_{#1}\\\uTo_{#2}\relax} %\def\neqL #1{\uEq_{#1}\relax} %\def\nadjaR#1#2{\uTo_{#1}\dTo_{#2}\relax} % south-ward diagram arrows \def\sar {\dTo\relax} \def\sdotar{\dDotsto\relax} \def\smono {\dInto\relax} \def\sepi {\dOnto\relax} \def\sbimo {\dBi\relax} \def\siso {\dTo>{\cong}\relax} \def\sbiar {\dTo\dTo\relax} \def\seql {\dEq\relax} \def\sadjar{\dTo\uTo\relax} % labelled south-ward diagram arrows \def\Sar #1{\dTo^{#1}\relax} \def\Sdotar#1{\dDotsto^{#1}\relax} \def\Smono #1{\dInto^{#1}\relax} \def\Sepi #1{\dOnto^{#1}\relax} \def\Sbimo #1{\dBi^{#1}\relax} \def\Siso #1{\dTo<{#1}>{\cong}\relax} \def\Sbiar #1#2{\dTo^{#1}\dTo_{#2}\relax} %\def\Seql #1{\dEq^{#1}\relax} \def\Sadjar#1#2{\dTo^{#1}\uTo_{#2}\relax} % labelled south-ward diagram arrows \def\saR #1{\dTo_{#1}\relax} \def\sdotaR#1{\dDotsto_{#1}\relax} \def\smonO #1{\dInto_{#1}\relax} \def\sepI #1{\dOnto_{#1}\relax} \def\sbimO #1{\dBi_{#1}\relax} %\def\sisO #1{\dTo_{{\cong}{#1}}\relax} %\def\sbiaR #1#2{\dTo_{#1}\dTo_{#2}\relax} %\def\seqL #1{\dEq_{#1}\relax} %\def\sadjaR#1#2{\dTo_{#1}\uTo_{#2}\relax} % east-ward variable-length diagram arrows \def\earv #1{\rTo\relax} \def\edotarv#1{\rDotsto\relax} \def\emonov #1{\rInto\relax} \def\eepiv #1{\rOnto\relax} \def\ebimov #1{\rBi\relax} \def\eisov #1{\rTo^{\cong}\relax} \def\ebiarv #1{\pile{\rTo\\\rTo}\relax} \def\eeqlv #1{\rEq\relax} \def\eadjarv#1{\pile{\lTo\\\rTo}\relax} % labelled east-ward variable-length diagram arrows \def\Earv #1#2{\rTo^{#1}\relax} \def\Edotarv#1#2{\rDotsto^{#1}\relax} \def\Emonov #1#2{\rInto^{#1}\relax} \def\Eepiv #1#2{\rOnto^{#1}\relax} \def\Ebimov #1#2{\rBi^{#1}\relax} \def\Eisov #1#2{\rTo^{{\cong}{#1}}\relax} \def\Ebiarv #1#2#3{\pile{\rTo^{#1}\\\rTo_{#2}}\relax} %\def\Eeqlv #1#2{\rEq^{#1}\relax} \def\Eadjarv#1#2#3{\pile{\lTo^{#1}\\\rTo_{#2}}\relax} % labelled east-ward variable-length diagram arrows \def\eaRv #1#2{\rTo_{#1}\relax} \def\edotaRv#1#2{\rDotsto_{#1}\relax} \def\emonOv #1#2{\rInto_{#1}\relax} \def\eepIv #1#2{\rOnto_{#1}\relax} \def\ebimOv #1#2{\rBi_{#1}\relax} \def\eisOv #1#2{\rTo_{{\cong}{#1}}\relax} %\def\ebiaRv #1#2#3{\pile{\rTo_{#1}\\\rTo_{#2}}\relax} %\def\eeqLv #1#2{\rEq_{#1}\relax} %\def\eadjaRv#1#2#3{\pile{\lTo_{#1}\\\rTo_{#2}}\relax} % west-ward variable-length diagram arrows \def\warv #1{\lTo\relax} \def\wdotarv#1{\lDotsto\relax} \def\wmonov #1{\lInto\relax} \def\wepiv #1{\lOnto\relax} \def\wbimov #1{\lBi\relax} \def\wisov #1{\lTo^{\cong}\relax} \def\wbiarv #1{\pile{\lTo\\\lTo}\relax} \def\weqlv #1{\lEq\relax} \def\wadjarv#1{\pile{\rTo\\\lTo}\relax} % labelled west-ward variable-length diagram arrows \def\Warv #1#2{\lTo^{#1}\relax} \def\Wdotarv#1#2{\lDotsto^{#1}\relax} \def\Wmonov #1#2{\lInto^{#1}\relax} \def\Wepiv #1#2{\lOnto^{#1}\relax} \def\Wbimov #1#2{\lBi^{#1}\relax} \def\Wisov #1#2{\lTo^{{\cong}{#1}}\relax} \def\Wbiarv #1#2#3{\pile{\lTo^{#1}\\\lTo_{#2}}\relax} %\def\Weqlv #1#2{\lEq^{#1}\relax} \def\Wadjarv#1#2#3{\pile{\rTo^{#1}\\\lTo_{#2}}\relax} % labelled west-ward variable-length diagram arrows \def\waRv #1#2{\lTo_{#1}\relax} \def\wdotaRv#1#2{\lDotsto_{#1}\relax} \def\wmonOv #1#2{\lInto_{#1}\relax} \def\wepIv #1#2{\lOnto_{#1}\relax} \def\wbimOv #1#2{\lBi_{#1}\relax} \def\wisOv #1#2{\lTo_{{\cong}{#1}}\relax} %\def\wbiaRv #1#2#3{\pile{\lTo_{#1}\\\lTo_{#2}}\relax} %\def\weqLv #1#2{\lEq_{#1}\relax} %\def\wadjaRv#1#2#3{\pile{\rTo_{#1}\\\lTo_{#2}}\relax} % north-ward variable-length diagram arrows \def\narv #1{\uTo\relax} \def\ndotarv#1{\uDotsto\relax} \def\nmonov #1{\uInto\relax} \def\nepiv #1{\uOnto\relax} \def\nbimov #1{\uBi\relax} \def\nisov #1{\uTo>{\cong}\relax} \def\nbiarv #1{\uTo\uTo\relax} \def\neqlv #1{\uEq\relax} \def\nadjarv#1{\uTo\dTo\relax} % labelled north-ward variable-length diagram arrows \def\Narv #1#2{\uTo^{#1}\relax} \def\Ndotarv#1#2{\uDotsto^{#1}\relax} \def\Nmonov #1#2{\uInto^{#1}\relax} \def\Nepiv #1#2{\uOnto^{#1}\relax} \def\Nbimov #1#2{\uBi^{#1}\relax} \def\Nisov #1#2{\uTo<{#1}>{\cong}\relax} \def\Nbiarv #1#2#3{\uTo^{#1}\uTo_{#2}\relax} %\def\Neqlv #1#2{\uEq^{#1}\relax} \def\Nadjarv#1#2#3{\uTo^{#1}\dTo_{#2}\relax} % labelled north-ward variable-length diagram arrows \def\naRv #1#2{\uTo_{#1}\relax} \def\ndotaRv#1#2{\uDotsto_{#1}\relax} \def\nmonOv #1#2{\uInto_{#1}\relax} \def\nepIv #1#2{\uOnto_{#1}\relax} \def\nbimOv #1#2{\uBi_{#1}\relax} %\def\nisOv #1#2{\uTo_{{\cong}{#1}}\relax} %\def\nbiaRv #1#2#3{\uTo_{#1}\uTo_{#2}\relax} %\def\neqLv #1#2{\uEq_{#1}\relax} %\def\nadjaRv#1#2#3{\uTo_{#1}\dTo_{#2}\relax} % south-ward variable-length diagram arrows \def\sarv #1{\dTo\relax} \def\sdotarv#1{\dDotsto\relax} \def\smonov #1{\dInto\relax} \def\sepiv #1{\dOnto\relax} \def\sbimov #1{\dBi\relax} \def\sisov #1{\dTo>{\cong}\relax} \def\sbiarv #1{\dTo\dTo\relax} \def\seqlv #1{\dEq\relax} \def\sadjarv#1{\dTo\uTo\relax} % labelled south-ward variable-length diagram arrows \def\Sarv #1#2{\dTo^{#1}\relax} \def\Sdotarv#1#2{\dDotsto^{#1}\relax} \def\Smonov #1#2{\dInto^{#1}\relax} \def\Sepiv #1#2{\dOnto^{#1}\relax} \def\Sbimov #1#2{\dBi^{#1}\relax} \def\Sisov #1#2{\dTo<{#1}>{\cong}\relax} \def\Sbiarv #1#2#3{\dTo^{#1}\dTo_{#2}\relax} %\def\Seqlv #1#2{\dEq^{#1}\relax} \def\Sadjarv#1#2#3{\dTo^{#1}\uTo_{#2}\relax} % labelled south-ward variable-length diagram arrows \def\saRv #1#2{\dTo_{#1}\relax} \def\sdotaRv#1#2{\dDotsto_{#1}\relax} \def\smonOv #1#2{\dInto_{#1}\relax} \def\sepIv #1#2{\dOnto_{#1}\relax} \def\sbimOv #1#2{\dBi_{#1}\relax} %\def\sisOv #1#2{\dTo_{{\cong}{#1}}\relax} %\def\sbiaRv #1#2#3{\dTo_{#1}\dTo_{#2}\relax} %\def\seqLv #1#2{\dEq_{#1}\relax} %\def\sadjaRv#1#2#3{\dTo_{#1}\uTo_{#2}\relax} %*************************************************************************** % THE SECONDARY ARROWS NEED THOROUGH TESTING! %*************************************************************************** % north-east-ward diagram arrows \def\near {\ruTo\relax} \def\nedotar{\ruDotsto\relax} \def\nemono {\ruInto\relax} \def\neepi {\ruOnto\relax} \def\nebimo {\ruBi\relax} \def\neiso {\ruTo^{\cong}\relax} \def\nebiar {\ruTo\ruTo\relax} \def\neeql {\ruEq\relax} \def\neadjar{\ldTo\ruTo\relax} % labelled north-east-ward diagram arrows \def\Near #1{\ruTo^{#1}\relax} \def\Nedotar#1{\ruDotsto^{#1}\relax} \def\Nemono #1{\ruInto^{#1}\relax} \def\Neepi #1{\ruOnto^{#1}\relax} \def\Nebimo #1{\ruBi^{#1}\relax} \def\Neiso #1{\ruTo^{{\cong}{#1}}\relax} \def\Nebiar #1#2{\ruTo^{#1}\ruTo_{#2}\relax} %\def\Neeql #1{\ruEq^{#1}\relax} \def\Neadjar#1#2{\ldTo^{#1}\ruTo_{#2}\relax} % labelled north-east-ward diagram arrows \def\neaR #1{\ruTo_{#1}\relax} \def\nedotaR#1{\ruDotsto_{#1}\relax} \def\nemonO #1{\ruInto_{#1}\relax} \def\neepI #1{\ruOnto_{#1}\relax} \def\nebimO #1{\ruBi_{#1}\relax} %\def\neisO #1{\ruTo_{{\cong}{#1}}\relax} %\def\nebiaR #1#2{\ruTo_{#1}\ruTo_{#2}\relax} %\def\neeqL #1{\ruEq_{#1}\relax} %\def\neadjaR#1#2{\ldTo_{#1}\ruTo_{#2}\relax} % north-west-ward diagram arrows \def\nwar {\luTo\relax} \def\nwdotar{\luDotsto\relax} \def\nwmono {\luInto\relax} \def\nwepi {\luOnto\relax} \def\nwbimo {\luBi\relax} \def\nwiso {\luTo^{\cong}\relax} \def\nwbiar {\luTo\luTo\relax} \def\nweql {\luEq\relax} \def\nwadjar{\luTo\rdTo\relax} % labelled north-west-ward diagram arrows \def\Nwar #1{\luTo^{#1}\relax} \def\Nwdotar#1{\luDotsto^{#1}\relax} \def\Nwmono #1{\luInto^{#1}\relax} \def\Nwepi #1{\luOnto^{#1}\relax} \def\Nwbimo #1{\luBi^{#1}\relax} \def\Nwiso #1{\luTo^{{\cong}{#1}}\relax} \def\Nwbiar #1#2{\luTo^{#1}\luTo_{#2}\relax} %\def\Nweql #1{\luEq^{#1}\relax} \def\Nwadjar#1#2{\luTo^{#1}\rdTo_{#2}\relax} % labelled north-west-ward diagram arrows \def\nwaR #1{\luTo_{#1}\relax} \def\nwdotaR#1{\luDotsto_{#1}\relax} \def\nwmonO #1{\luInto_{#1}\relax} \def\nwepI #1{\luOnto_{#1}\relax} \def\nwbimO #1{\luBi_{#1}\relax} %\def\nwisO #1{\luTo_{{\cong}{#1}}\relax} %\def\nwbiaR #1#2{\luTo_{#1}\luTo_{#2}\relax} %\def\nweqL #1{\luEq_{#1}\relax} %\def\nwadjaR#1#2{\luTo_{#1}\rdTo_{#2}\relax} % south-east-ward diagram arrows \def\sear {\rdTo\relax} \def\sedotar{\rdDotsto\relax} \def\semono {\rdInto\relax} \def\seepi {\rdOnto\relax} \def\sebimo {\rdBi\relax} \def\seiso {\rdTo^{\cong}\relax} \def\sebiar {\rdTo\rdTo\relax} \def\seeql {\rdEq\relax} \def\seadjar{\rdTo\luTo\relax} % labelled south-east-ward diagram arrows \def\Sear #1{\rdTo^{#1}\relax} \def\Sedotar#1{\rdDotsto^{#1}\relax} \def\Semono #1{\rdInto^{#1}\relax} \def\Seepi #1{\rdOnto^{#1}\relax} \def\Sebimo #1{\rdBi^{#1}\relax} \def\Seiso #1{\rdTo^{{\cong}{#1}}\relax} \def\Sebiar #1#2{\rdTo^{#1}\rdTo_{#2}\relax} %\def\Seeql #1{\rdEq^{#1}\relax} \def\Seadjar#1#2{\rdTo^{#1}\luTo_{#2}\relax} % labelled south-east-ward diagram arrows \def\seaR #1{\rdTo_{#1}\relax} \def\sedotaR#1{\rdDotsto_{#1}\relax} \def\semonO #1{\rdInto_{#1}\relax} \def\seepI #1{\rdOnto_{#1}\relax} \def\sebimO #1{\rdBi_{#1}\relax} %\def\seisO #1{\rdTo_{{\cong}{#1}}\relax} %\def\sebiaR #1#2{\rdTo_{#1}\rdTo_{#2}\relax} %\def\seeqL #1{\rdEq_{#1}\relax} %\def\seadjaR#1#2{\rdTo_{#1}\luTo_{#2}\relax} % south-west-ward diagram arrows \def\swar {\ldTo\relax} \def\swdotar{\ldDotsto\relax} \def\swmono {\ldInto\relax} \def\swepi {\ldOnto\relax} \def\swbimo {\ldBi\relax} \def\swiso {\ldTo^{\cong}\relax} \def\swbiar {\ldTo\ldTo\relax} \def\sweql {\ldEq\relax} \def\swadjar{\ruTo\ldTo\relax}% ? % labelled south-west-ward diagram arrows \def\Swar #1{\ldTo^{#1}\relax} \def\Swdotar#1{\ldDotsto^{#1}\relax} \def\Swmono #1{\ldInto^{#1}\relax} \def\Swepi #1{\ldOnto^{#1}\relax} \def\Swbimo #1{\ldBi^{#1}\relax} \def\Swiso #1{\ldTo^{{\cong}{#1}}\relax} \def\Swbiar #1#2{\ldTo^{#1}\ldTo_{#2}\relax} %\def\Sweql #1{\ldEq^{#1}\relax} \def\Swadjar#1#2{\ruTo^{#1}\ldTo_{#2}\relax}% ? % labelled south-west-ward diagram arrows \def\swaR #1{\ldTo_{#1}\relax} \def\swdotaR#1{\ldDotsto_{#1}\relax} \def\swmonO #1{\ldInto_{#1}\relax} \def\swepI #1{\ldOnto_{#1}\relax} \def\swbimO #1{\ldBi_{#1}\relax} %\def\swisO #1{\ldTo_{{\cong}{#1}}\relax} %\def\swbiaR #1#2{\ldTo_{#1}\ldTo_{#2}\relax} %\def\sweqL #1{\ldEq_{#1}\relax} %\def\swadjaR#1#2{\ruTo_{#1}\ldTo_{#2}\relax}% ? % secondary variable-length diagram arrows \def\nwarv#1{\luTo\relax}% \def\nearv#1{\ruTo\relax}% \def\swarv#1{\ldTo\relax}% \def\searv#1{\rdTo\relax}% % labelled secondary variable-length diagram arrows \def\nwaRv#1#2{\luTo^{#1}\relax}% \def\neaRv#1#2{\ruTo^{#1}\relax}% \def\swaRv#1#2{\ldTo^{#1}\relax}% \def\seaRv#1#2{\rdTo^{#1}\relax}% \def\Nwarv#1#2{\luTo^{#1}\relax}% \def\Nearv#1#2{\ruTo^{#1}\relax}% \def\Swarv#1#2{\ldTo^{#1}\relax}% \def\Searv#1#2{\rdTo^{#1}\relax}% % curved arrows second argument is length \def\Necurve#1#2{\uTo^{#1}\relax} \def\Nwcurve#1#2{\uTo^{#1}\relax} \def\Securve#1#2{\dTo^{#1}\relax} \def\Swcurve#1#2{\dTo^{#1}\relax} \def\Encurve#1#2{\rTo^{#1}\relax} \def\Escurve#1#2{\rTo^{#1}\relax} \def\Wncurve#1#2{\lTo^{#1}\relax} \def\Wscurve#1#2{\lTo^{#1}\relax} %*************************************************************************** % THE TERNARY ARROWS ARE NOT CORRECTLY PLACED! %*************************************************************************** % ternary arrows --- MISPLACED! \def\nnwar{\luTo[diagonalbase=(1,2)](2,4)\relax} \def\nnear{\ruTo[diagonalbase=(1,2)](2,4)\relax} \def\wnwar{\luTo[diagonalbase=(2,1)](4,2)\relax} \def\enear{\ruTo[diagonalbase=(2,1)](4,2)\relax} \def\sswar{\ldTo[diagonalbase=(1,2)](2,4)\relax} \def\ssear{\rdTo[diagonalbase=(1,2)](2,4)\relax} \def\wswar{\ldTo[diagonalbase=(2,1)](4,2)\relax} \def\esear{\rdTo[diagonalbase=(2,1)](4,2)\relax} % labelled ternary arrows --- MISPLACED! \def\Nnwar#1{\luTo[diagonalbase=(1,2)](2,4)^{#1}\relax} \def\Nnear#1{\ruTo[diagonalbase=(1,2)](2,4)^{#1}\relax} \def\Wnwar#1{\luTo[diagonalbase=(2,1)](4,2)^{#1}\relax} \def\Enear#1{\ruTo[diagonalbase=(2,1)](4,2)^{#1}\relax} \def\Sswar#1{\ldTo[diagonalbase=(1,2)](2,4)^{#1}\relax} \def\Ssear#1{\rdTo[diagonalbase=(1,2)](2,4)^{#1}\relax} \def\Wswar#1{\ldTo[diagonalbase=(2,1)](4,2)^{#1}\relax} \def\Esear#1{\rdTo[diagonalbase=(2,1)](4,2)^{#1}\relax} % labelled ternary arrows --- MISPLACED! \def\nnwaR#1{\luTo[diagonalbase=(1,2)](2,4)_{#1}\relax} \def\nneaR#1{\ruTo[diagonalbase=(1,2)](2,4)_{#1}\relax} \def\wnwaR#1{\luTo[diagonalbase=(2,1)](4,2)_{#1}\relax} \def\eneaR#1{\ruTo[diagonalbase=(2,1)](4,2)_{#1}\relax} \def\sswaR#1{\ldTo[diagonalbase=(1,2)](2,4)_{#1}\relax} \def\sseaR#1{\rdTo[diagonalbase=(1,2)](2,4)_{#1}\relax} \def\wswaR#1{\ldTo[diagonalbase=(2,1)](4,2)_{#1}\relax} \def\eseaR#1{\rdTo[diagonalbase=(2,1)](4,2)_{#1}\relax} %*************************************************************************** % THE CURVED ARROWS ARE NOT SUPPORTED! %*************************************************************************** % curved arrows \def\necurve#1{\uTo^{#1}\relax} \def\nwcurve#1{\uTo^{#1}\relax} \def\securve#1{\dTo^{#1}\relax} \def\swcurve#1{\dTo^{#1}\relax} \def\encurve#1{\rTo^{#1}\relax} \def\escurve#1{\rTo^{#1}\relax} \def\wncurve#1{\lTo^{#1}\relax} \def\wscurve#1{\lTo^{#1}\relax} % The remainder of this file is included so that the original % and emulated versions appear to have the same commands in them. % % missing commands %\def\ADJAR#1{}% draws a pair of adjoint arrows of length n units %\def\AR#1{}% draws an arrow of length n units %\def\BIAR#1{}% draws a pair of arrows of length n units %\def\BIMO#1{}% draws a bimorphism of length n units %\def\BKADJAR#1{}% draws a pair of adjoint arrows of length n units %\def\BKAR#1{}% draws a pointing back arrow of length n units %\def\BKBIAR#1{}% draws a pair of pointing back arrows of length n units %\def\BKBIMO#1{}% draws a pointing back bimorphism of length n units %\def\BKDOTAR#1{}% draws a backward dotted arrow %\def\BKEPI#1{}% draws a pointing back epimorphism of length n units %\def\BKMONO#1{}% draws a pointing back monomorphism of length n units %\def\DOTAR#1{}% draws a dotted arrow of length n units %\def\EADJAR#1{}% draws an east pair of adjoint arrows of length n %\def\EAR#1{}% draws an east arrow of length n units %\def\EBIAR#1{}% draws an east pair of arrows of length n units %\def\EBIMO#1{}% draws an east bimorphism of length n units %\def\EDOTAR{}% draws a dotted arrow of length n units %\def\EEPI#1{}% draws an east epimorphism of length n units %\def\EEQL#1{}% draws an east equality of length n units %\def\EMONO#1{}% draws an east monomorphism of length n units %\def\ENEAR{f}{g}{}% draws a east-north-east arrow with names f, g %\def\EPI#1{}% draws an epimorphism of length n units %\def\EQL#1{}% draws an equality of length n units %\def\ESEAR{f}{g}% draws an east-south-east arrow with names f, g %\def\MONO{}% %\def\NADJAR#1{}% draws a pair of vertical adjoint arrows of length n pt %\def\NAR#1{}% draws a north arrow of length n pt %\def\NBIAR#1{}% draws a pair of north arrows of length n pt %\def\NBIMO#1{}% draws a north bimorphism of length n pt %\def\NDOTAR#1{}% draws a north dotted arrow of length n units %\def\NEADJAR{}% draws a north-east pair of adjoint arrows %\def\NEAR{}% draws a north-east arrow %\def\NEARV#1{}% draws a north-east arrow of length nx100 units %\def\NEBIAR{}% draws a pair of north-east arrows %\def\NEBIMO{}% draws a north-east bimorphism %\def\NEDOTAR{}% draws a north-east dotted arrow %\def\NEEPI{}% draws a north-east epimorphism %\def\NEEQL{}% draws a north-east equality %\def\NEMONO{}% draws a north-east monomorphism %\def\NEPI#1{}% draws a north epimorphism of length n pt %\def\NMONO#1{}% draws a north monomorphism of length n pt %\def\NNEAR{f}{g}{}% draws a north-north-east arrow with names f, g %\def\NNWAR{f}{g}{}% draws a north-north-west arrow with names f, g %\def\NWADJAR{}% draws a north-west pair of adjoint arrows %\def\NWAR{}% draws a north-west arrow %\def\NWARV#1{}% draws a north-west arrow of length nx100 units %\def\NWBIAR{}% draws a pair of north-west arrows %\def\NWBIMO{}% draws a north-west bimorphism %\def\NWDOTAR{}% draws a north-west dotted arrow %\def\NWEPI{}% draws a north-west epimorphism %\def\NWMONO{}% draws a north-west monomorphism %\def\SADJAR#1{}% draws a pair of vertical adjoint arrows of length n units %\def\SAR#1{}% draws a south arrow of length n units %\def\SBIAR#1{}% draws a pair of south arrows of length n units %\def\SBIMO#1{}% draws a south bimorphism of length n units %\def\SDOTAR#1{}% draws a south dotted arrow of length n units %\def\SEADJAR{}% draws a south-east pair of adjoint arrows %\def\SEAR{}% draws a south-east arrow %\def\SEARV#1{}% draws a south-east arrow of length nx100 units %\def\SEBIAR{}% draws a pair of south-east arrows %\def\SEBIMO{}% draws a south-east bimorphism %\def\SEDOTAR{}% draws a south-east dotted arrow %\def\SEEPI{}% draws a south-east epimorphism %\def\SEEQL{}% draws a south-east equality %\def\SEMONO{}% draws a south-east monomorphism %\def\SEPI#1{}% draws a south epimorphism of length n units %\def\SEQL#1{}% draws a vertical equality of length n units %\def\SMONO#1{}% draws a south monomorphism of length n units %\def\SSEAR{f}{g}{}% draws a south-south-east arrow with names f, g %\def\SSWAR{f}{g}{}% draws a south-south-west arrow with names f, g %\def\SWADJAR{}% draws a south-west pair of adjoint arrows %\def\SWAR{}% draws a south-west arrow %\def\SWARV#1{}% draws a south-west arrow of length nx100 units %\def\SWBIAR{}% draws a pair of south-west arrows %\def\SWBIMO{}% draws a south-west bimorphism %\def\SWDOTAR{}% draws a south-west dotted arrow %\def\SWEPI{}% draws a south-west epimorphism %\def\SWMONO{}% draws a south-west monomorphism %\def\WADJAR#1{}% draws a pair of adjoint arrows of length n units %\def\WAR#1{}% draws a pointing back arrow of length n units %\def\WBIAR#1{}% draws a pair of pointing back arrows of length n units %\def\WBIMO#1{}% draws a pointing back bimorphism of length n units %\def\WDOTAR{}% draws a dotted arrow of length n units %\def\WEPI#1{}% draws a pointing back epimorphism of length n units %\def\WMONO#1{}% draws a pointing back monomorphism of length n units %\def\WNWAR{f}{g}% draws a west-north-west arrow with names f, g %\def\WSWAR{f}{g}% draws a west-south-west arrow with names f, g % %\newcount\ARROW{}% %\newcount\ARROWLENGTH{}% %\newcount\COLUMN{}% %\newcount\LINE{}% %\newcount\NUMBER{}% %\newcount\NUMBEROFDOTS{}% %\newcount\SCALE{}% %\newcount\SOURCE{}% %\newcount\TARGET %\newcount\WIDTH %\newskip\firstitem %\newskip\itemlength %\newskip\seconditem % %\def\Freear{}% %\def\Hbicase{}% %\def\Hcase{}% %\def\N{}% %\def\Tbicase{}% %\def\Tcase{}% %\def\Vbicase{}% %\def\Vcase{}% %\def\changecounters{}% %\def\conclude{}% %\def\crosslength{}% %\def\fdbicase{}% %\def\fdcase{}% %\def\freear{}% %\def\hbicase{}% %\def\hcasE{}% %\def\hcase{}% %\def\initialize{}% %\def\lowername{}% %\def\movearrow{}% %\def\movevertex{}% %\def\sdbicase{}% %\def\sdcase{}% %\def\tbicase{}% %\def\tcase{}% %\def\tlowername{}% %\def\truex{}% %\def\truey{}% %\def\truez{}% %\def\vbicase{}% %\def\vcasE{}% %\def\vcase{}% % % %\let\def\ddef\bye