%%% MACRO FILE FOR TRIPLE, QUADRUPLE AND QUINTUPLE ARROWS \catcode`\@=11 % SPECIAL SYMBOLS % adjoint symbol \newcommand{\adj}{\begin{picture}(9,6)% \put(1,3){\line(1,0){6}}\put(7,0){\line(0,1){6}}% \end{picture}}% % 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){\line(-1,0){2}}\end{picture}}% % natural transformation with names [1],[2],[3] \newcommand{\Nat}[3]{\raisebox{-2pt}% {\begin{picture}(34,15)% \put(2,10){\line(1,0){30}}% \put(32,10){\ehead}% \put(2,0){\line(1,0){30}}% \put(32,0){\ehead}% \put(13,2){$\Downarrow$}% \put(20,3){$\scriptstyle{#2}$}% \put(4,11){$\scriptstyle{#1}$}% \put(4,1){$\scriptstyle{#3}$}% \end{picture}}}% % natural transformation \newcommand{\nat}{\raisebox{-2pt}% {\begin{picture}(34,10)% \put(2,10){\line(1,0){30}}% \put(32,10){\ehead}% \put(2,0){\line(1,0){30}}% \put(32,0){\ehead}% \put(13,2){$\Downarrow$}% \end{picture}}}% % pair of natural transformations with names [1],[2],[3],[4],[5] \newcommand{\Binat}[5]{\raisebox{-7.5pt}% {\begin{picture}(34,25)% \put(2,20){\line(1,0){30}}% \put(32,20){\ehead}% \put(2,10){\line(1,0){30}}% \put(32,10){\ehead}% \put(2,0){\line(1,0){30}}% \put(32,0){\ehead}% \put(13,12){$\Downarrow$}% \put(13,2){$\Downarrow$}% \put(20,13){$\scriptstyle{#2}$}% \put(20,3){$\scriptstyle{#4}$}% \put(4,21){$\scriptstyle{#1}$}% \put(4,11){$\scriptstyle{#3}$}% \put(4,1){$\scriptstyle{#5}$}% \end{picture}}}% % pair of natural transformations \newcommand{\binat}{\raisebox{-7.5pt}% {\begin{picture}(34,20)% \put(2,20){\line(1,0){30}}% \put(32,20){\ehead}% \put(2,10){\line(1,0){30}}% \put(32,10){\ehead}% \put(2,0){\line(1,0){30}}% \put(32,0){\ehead}% \put(13,12){$\Downarrow$}% \put(13,2){$\Downarrow$}% \end{picture}}}% % display natural transformation with names [1],[2],[3] \newcommand{\Dnat}[3]{\raisebox{-2pt}% {\begin{picture}(54,15)% \put(2,10){\line(1,0){50}}% \put(52,10){\ehead}% \put(2,0){\line(1,0){50}}% \put(52,0){\ehead}% \put(23,2){$\Downarrow$}% \put(30,1){$\textstyle{#2}$}% \put(4,11){$\textstyle{#1}$}% \put(4,1){$\textstyle{#3}$}% \end{picture}}}% % display natural transformation \newcommand{\dnat}{\raisebox{-2pt}% {\begin{picture}(54,10)% \put(2,10){\line(1,0){50}}% \put(52,10){\ehead}% \put(2,0){\line(1,0){50}}% \put(52,0){\ehead}% \put(23,2){$\Downarrow$}% \end{picture}}}% % display pair of natural transformations with names [1],[2],[3],[4],[5] \newcommand{\Dbinat}[5]{\raisebox{-7.5pt}% {\begin{picture}(54,25)% \put(2,20){\line(1,0){50}}% \put(52,20){\ehead}% \put(2,10){\line(1,0){50}}% \put(52,10){\ehead}% \put(2,0){\line(1,0){50}}% \put(52,0){\ehead}% \put(23,12){$\Downarrow$}% \put(23,2){$\Downarrow$}% \put(30,11){$\textstyle{#2}$}% \put(30,1){$\textstyle{#4}$}% \put(4,21){$\textstyle{#1}$}% \put(4,11){$\textstyle{#3}$}% \put(4,1){$\textstyle{#5}$}% \end{picture}}}% % display pair of natural transformations \newcommand{\dbinat}{\raisebox{-7.5pt}% {\begin{picture}(54,20)% \put(2,20){\line(1,0){50}}% \put(52,20){\ehead}% \put(2,10){\line(1,0){50}}% \put(52,10){\ehead}% \put(2,0){\line(1,0){50}}% \put(52,0){\ehead}% \put(23,12){$\Downarrow$}% \put(23,2){$\Downarrow$}% \end{picture}}}% % MACROS FOR TEXT ARROWS % \ttricase{P} draws the tri-picture P % with length \textarrowlength pt. \newcommand{\ttricase}[1]{% \testtextmode% \setlength{\unitlength}{0.01pt}% \computetextparameters% \makebox[\actualtextarrowspace pt]% {\raisebox{4pt}{#1{\actualtextarrowlength}% {\rule{0pt}{6pt}}{\rule{0pt}{6pt}}{\rule{0pt}{6pt}}}}% \setlength{\unitlength}{1pt}}% % \Ttricase{P}{f}{g}{h} draws the tri-picture P with names f, g, h % and length \textarrowlength pt. \newcommand{\Ttricase}[4]{% \testtextmode% \setlength{\unitlength}{0.01pt}% \computetextparameters% \makebox[\actualtextarrowspace pt]% {\raisebox{4pt}% {#1{\actualtextarrowlength}{\rule{0pt}{6pt}\scriptstyle #2}% {\rule{0pt}{6pt}\scriptstyle #3}{\rule{0pt}{6pt}\scriptstyle #4}}}% \setlength{\unitlength}{1pt}}% % \tmulticase{P} draws the multi-picture P % with length \textarrowlength pt. \newcommand{\tmulticase}[1]{% \testtextmode% \setlength{\unitlength}{0.01pt}% \computetextparameters% \makebox[\actualtextarrowspace pt]% {\raisebox{1pt}{#1{\actualtextarrowlength}}}% \setlength{\unitlength}{1pt}}% % MACROS FOR DISPLAYED ARROWS % \dtricase{P} draws the tri-picture P % with length \displayarrowlength pt. \newcommand{\dtricase}[1]{% \testtextmode% \setlength{\unitlength}{0.01pt}% \computedisplayparameters% \makebox[\actualdisplayarrowspace pt]% {\raisebox{4pt}{#1{\actualdisplayarrowlength}% {\rule{0pt}{6pt}}{\rule{0pt}{6pt}}{\rule{0pt}{6pt}}}}% \setlength{\unitlength}{1pt}}% % \Dtricase{P}{f}{g}{h} draws the tri-picture P with names f, g, h % and length \displayarrowlength pt. \newcommand{\Dtricase}[4]{% \testtextmode% \setlength{\unitlength}{0.01pt}% \computedisplayparameters% \makebox[\actualdisplayarrowspace pt]% {\raisebox{4pt}% {#1{\actualdisplayarrowlength}{\rule{0pt}{6pt}\textstyle #2}% {\rule{0pt}{6pt}\textstyle #3}{\rule{0pt}{6pt}\textstyle #4}}}% \setlength{\unitlength}{1pt}}% % \dmulticase{P} draws the multi-picture P % with length \displayarrowlength pt. \newcommand{\dmulticase}[1]{% \testtextmode% \setlength{\unitlength}{0.01pt}% \computedisplayparameters% \makebox[\actualdisplayarrowspace pt]% {\raisebox{1pt}{#1{\actualdisplayarrowlength}}}% \setlength{\unitlength}{1pt}}% % TEXT ARROWS % \TRIAR{n}{f}{g}{h} draws a triple of arrows of length n units % and names f, g, h \newcommand{\TRIAR}[4]% {\renewcommand{\arraystretch}{0.2}% \begin{tabular}{c}% \mbox{$#2$}\\ \AR{#1}\\% \mbox{$#3$}\\ \AR{#1}\\% \mbox{$#4$}\\ \AR{#1}% \end{tabular}% \renewcommand{\arraystretch}{1}}% % \TRIADJAR{n} draws a triple of adjoint arrows of length n units % and names f, g, h \newcommand{\TRIADJAR}[4]% {\renewcommand{\arraystretch}{0.2}% \begin{tabular}{c}% \mbox{$#2$}\\ \BKAR{#1}\\% \mbox{$#3$}\\ \AR{#1}\\% \mbox{$#4$}\\ \BKAR{#1}% \end{tabular}% \renewcommand{\arraystretch}{1}}% % \QUADRIAR{n} draws a quadruple of arrows of length n units \newcommand{\QUADRIAR}[1]% {\renewcommand{\arraystretch}{0.2}% \begin{tabular}{c}% \AR{#1}\\% \rule{0pt}{3pt}\\ \AR{#1}\\% \rule{0pt}{3pt}\\ \AR{#1}\\% \rule{0pt}{3pt}\\ \AR{#1}% \end{tabular}% \renewcommand{\arraystretch}{1}}% % \QUADRIADJAR{n} draws a quadruple of adjoint arrows % of length n units \newcommand{\QUADRIADJAR}[1]% {\renewcommand{\arraystretch}{0.2}% \begin{tabular}{c}% \BKAR{#1}\\% \rule{0pt}{3pt}\\ \AR{#1}\\% \rule{0pt}{3pt}\\ \BKAR{#1}\\% \rule{0pt}{3pt}\\ \AR{#1}% \end{tabular}% \renewcommand{\arraystretch}{1}}% % \QUINTIAR{n} draws a quintuple of arrows of length n units \newcommand{\QUINTIAR}[1]% {\renewcommand{\arraystretch}{0.2}% \begin{tabular}{c}% \AR{#1}\\% \rule{0pt}{2pt}\\ \AR{#1}\\% \rule{0pt}{2pt}\\ \AR{#1}\\% \rule{0pt}{2pt}\\ \AR{#1}\\% \rule{0pt}{2pt}\\ \AR{#1}% \end{tabular}% \renewcommand{\arraystretch}{1}}% % \QUINTIADJAR{n} draws a quintuple of adjoint arrows % of length n units \newcommand{\QUINTIADJAR}[1]% {\renewcommand{\arraystretch}{0.2}% \begin{tabular}{c}% \AR{#1}\\% \rule{0pt}{2pt}\\ \BKAR{#1}\\% \rule{0pt}{2pt}\\ \AR{#1}\\% \rule{0pt}{2pt}\\ \BKAR{#1}\\% \rule{0pt}{2pt}\\ \AR{#1}% \end{tabular}% \renewcommand{\arraystretch}{1}}% % USER'S COMMANDS FOR TEXT ARROWS % triple of arrows \newcommand{\triar}{\ifinner\ttricase{\TRIAR}\else\dtricase{\TRIAR}\fi}% % triple of arrows with names [1],[2],[3] \newcommand{\Triar}[3]{\ifinner\Ttricase{\TRIAR}{#1}{#2}{#3}% \else\Dtricase{\TRIAR}{#1}{#2}{#3}\fi}% % triple of adjoint arrows \newcommand{\triadjar}{\ifinner\ttricase{\TRIADJAR}% \else\dtricase{\TRIADJAR}\fi}% % triple of adjoint arrows with names [1],[2],[3] \newcommand{\Triadjar}[3]{\ifinner\Ttricase{\TRIADJAR}{#1}{#2}{#3}% \else\Dtricase{\TRIADJAR}{#1}{#2}{#3}\fi}% % quadruple of arrows \newcommand{\quadriar}{\ifinner\tquadricase{\QUADRIAR}% \else\dmulticase{\QUADRIAR}\fi}% % quadruple of adjoint arrows \newcommand{\quadriadjar}{\ifinner\tmulticase{\QUADRIADJAR}% \else\dmulticase{\QUADRIADJAR}\fi}% % quintuple of arrows \newcommand{\quintiar}{\ifinner\tmulticase{\QUINTIAR}% \else\dmulticase{\QUINTIAR}\fi}% % quintuple of adjoint arrows \newcommand{\quintiadjar}{\ifinner\tmulticase{\QUINTIADJAR}% \else\dmulticase{\QUINTIADJAR}\fi}% % BACKWARD TEXT ARROWS % \BKTRIAR{n}{f}{g}{h} draws a triple of back arrows of length n units % and names f, g, h \newcommand{\BKTRIAR}[4]% {\renewcommand{\arraystretch}{0.2}% \begin{tabular}{c}% \mbox{$#2$}\\ \BKAR{#1}\\% \mbox{$#3$}\\ \BKAR{#1}\\% \mbox{$#4$}\\ \BKAR{#1}% \end{tabular}% \renewcommand{\arraystretch}{1}}% % \BKTRIADJAR{n} draws a back triple of adjoint arrows of length n units % and names f, g, h \newcommand{\BKTRIADJAR}[4]% {\renewcommand{\arraystretch}{0.2}% \begin{tabular}{c}% \mbox{$#2$}\\ \AR{#1}\\% \mbox{$#3$}\\ \BKAR{#1}\\% \mbox{$#4$}\\ \AR{#1}% \end{tabular}% \renewcommand{\arraystretch}{1}}% % \BKQUADRIAR{n} draws a quadruple of back arrows of length n units \newcommand{\BKQUADRIAR}[1]% {\renewcommand{\arraystretch}{0.2}% \begin{tabular}{c}% \BKAR{#1}\\% \rule{0pt}{3pt}\\ \BKAR{#1}\\% \rule{0pt}{3pt}\\ \BKAR{#1}\\% \rule{0pt}{3pt}\\ \BKAR{#1}% \end{tabular}% \renewcommand{\arraystretch}{1}}% % \BKQUADRIADJAR{n} draws a back quadruple of adjoint arrows % of length n units \newcommand{\BKQUADRIADJAR}[1]% {\renewcommand{\arraystretch}{0.2}% \begin{tabular}{c}% \AR{#1}\\% \rule{0pt}{3pt}\\ \BKAR{#1}\\% \rule{0pt}{3pt}\\ \AR{#1}\\% \rule{0pt}{3pt}\\ \BKAR{#1}% \end{tabular}% \renewcommand{\arraystretch}{1}}% % \BKQUINTIAR{n} draws a quintuple of back arrows of length n units \newcommand{\BKQUINTIAR}[1]% {\renewcommand{\arraystretch}{0.2}% \begin{tabular}{c}% \BKAR{#1}\\% \rule{0pt}{2pt}\\ \BKAR{#1}\\% \rule{0pt}{2pt}\\ \BKAR{#1}\\% \rule{0pt}{2pt}\\ \BKAR{#1}\\% \rule{0pt}{2pt}\\ \BKAR{#1}% \end{tabular}% \renewcommand{\arraystretch}{1}}% % \BKQUINTIADJAR{n} draws a back quintuple of adjoint arrows % of length n units \newcommand{\BKQUINTIADJAR}[1]% {\renewcommand{\arraystretch}{0.2}% \begin{tabular}{c}% \BKAR{#1}\\% \rule{0pt}{2pt}\\ \AR{#1}\\% \rule{0pt}{2pt}\\ \BKAR{#1}\\% \rule{0pt}{2pt}\\ \AR{#1}\\% \rule{0pt}{2pt}\\ \BKAR{#1}% \end{tabular}% \renewcommand{\arraystretch}{1}}% % USER'S COMMANDS FOR BACKWARD TEXT ARROWS % triple of back arrows \newcommand{\bktriar}{\ifinner\ttricase{\BKTRIAR}\else\dtricase{\BKTRIAR}\fi}% % triple of back arrows with names [1],[2],[3] \newcommand{\Bktriar}[3]{\ifinner\Ttricase{\BKTRIAR}{#1}{#2}{#3}% \else\Dtricase{\BKTRIAR}{#1}{#2}{#3}\fi}% % back triple of adjoint arrows \newcommand{\bktriadjar}{\ifinner\ttricase{\BKTRIADJAR}% \else\dtricase{\BKTRIADJAR}\fi}% % back triple of adjoint arrows with names [1],[2],[3] \newcommand{\Bktriadjar}[3]{\ifinner\Ttricase{\BKTRIADJAR}{#1}{#2}{#3}% \else\Dtricase{\BKTRIADJAR}{#1}{#2}{#3}\fi}% % back quadruple of arrows \newcommand{\bkquadriar}{\ifinner\tquadricase{\BKQUADRIAR}% \else\dmulticase{\BKQUADRIAR}\fi}% % back quadruple of adjoint arrows \newcommand{\bkquadriadjar}{\ifinner\tmulticase{\BKQUADRIADJAR}% \else\dmulticase{\BKQUADRIADJAR}\fi}% % back quintuple of arrows \newcommand{\bkquintiar}{\ifinner\tmulticase{\BKQUINTIAR}% \else\dmulticase{\BKQUINTIAR}\fi}% % back quintuple of adjoint arrows \newcommand{\bkquintiadjar}{\ifinner\tmulticase{\BKQUINTIADJAR}% \else\dmulticase{\BKQUINTIADJAR}\fi}% % MACROS FOR HORIZONTAL DIAGRAM ARROWS % \htricase{P}{n} draws the tri-picture P with length n units. \newcommand{\htricase}[2]% {\testdiagrammode\makebox[0pt]% {\raisebox{-12pt}[0pt][0pt]{#1{#2}{}{}{}{}}}}% % \Htricase{P}{f}{g}{h}{i}{n} draws the tri-picture P % with names f, g, h, i and length n units. \newcommand{\Htricase}[6]% {\testdiagrammode\makebox[0pt]% {\raisebox{-12pt}[0pt][0pt]{#1{#6}{#2}{#3}{#4}{#5}}}}% % \hmulticase{P}{n} draws the multi-picture P with length n units. \newcommand{\hmulticase}[2]% {\testdiagrammode\makebox[0pt]{\raisebox{-12pt}[0pt][0pt]{#1{#2}}}}% % EAST ARROWS % \ETRIAR{n}{f}{g}{h}{i} draws an east triple of arrows % of length n units with names f, g, h, i \newcommand{\ETRIAR}[5]% {\truex{1200}% \X=\value{x}% \multiply\X by 2% \begin{picture}(#1,\X)% \put(0,0){\line(1,0){#1}}% \put(#1,0){\ehead}% \put(0,\value{x}){\line(1,0){#1}}% \put(#1,\value{x}){\ehead}% \put(0,\X){\line(1,0){#1}}% \put(#1,\X){\ehead}% \X=#1% \divide\X by 2% \truex{-600}% \put(\X,\value{x}){\makebox(0,0){$#5$}}% \truex{600}% \put(\X,\value{x}){\makebox(0,0){$#4$}}% \truex{1800}% \put(\X,\value{x}){\makebox(0,0){$#3$}}% \truex{3000}% \put(\X,\value{x}){\makebox(0,0){$#2$}}% \end{picture}}% % \ETRIADJAR{n}{f}{g}{h}{i} draws an east triple of adjoint arrows % of length n units and names f, g, h, i \newcommand{\ETRIADJAR}[5]% {\truex{1200}% \X=\value{x}% \multiply\X by 2% \begin{picture}(#1,\X)% \put(#1,0){\line(-1,0){#1}}% \put(0,0){\whead}% \put(0,\value{x}){\line(1,0){#1}}% \put(#1,\value{x}){\ehead}% \put(#1,\X){\line(-1,0){#1}}% \put(0,\X){\whead}% \X=#1% \divide\X by 2% \truex{-600}% \put(\X,\value{x}){\makebox(0,0){$#5$}}% \truex{600}% \put(\X,\value{x}){\makebox(0,0){$#4$}}% \truex{1800}% \put(\X,\value{x}){\makebox(0,0){$#3$}}% \truex{3000}% \put(\X,\value{x}){\makebox(0,0){$#2$}}% \end{picture}}% % \EQUADRIAR{n} draws an east quadruple of arrows % of length n units \newcommand{\EQUADRIAR}[1]% {\truex{800}% \truey{1600}% \X=\value{x}% \multiply\X by 3% \begin{picture}(#1,\X)% \put(0,0){\line(1,0){#1}}% \put(#1,0){\ehead}% \put(0,\value{x}){\line(1,0){#1}}% \put(#1,\value{x}){\ehead}% \put(0,\value{y}){\line(1,0){#1}}% \put(#1,\value{y}){\ehead}% \put(0,\X){\line(1,0){#1}}% \put(#1,\X){\ehead}% \end{picture}}% % \EQUADRIADJAR{n} draws an east quadruple of adjoint arrows % of length n units \newcommand{\EQUADRIADJAR}[1]% {\truex{800}% \truey{1600}% \X=\value{x}% \multiply\X by 3% \begin{picture}(#1,\X)% \put(0,0){\line(1,0){#1}}% \put(#1,0){\ehead}% \put(#1,\value{x}){\line(-1,0){#1}}% \put(0,\value{x}){\whead}% \put(0,\value{y}){\line(1,0){#1}}% \put(#1,\value{y}){\ehead}% \put(#1,\X){\line(-1,0){#1}}% \put(0,\X){\whead}% \end{picture}}% % \EQUINTIAR{n} draws an east quintuple of arrows % of length n units \newcommand{\EQUINTIAR}[1]% {\truex{600}% \truey{1200}% \truez{1800}% \X=\value{x}% \multiply\X by 4% \begin{picture}(#1,\X)% \put(0,0){\line(1,0){#1}}% \put(#1,0){\ehead}% \put(0,\value{x}){\line(1,0){#1}}% \put(#1,\value{x}){\ehead}% \put(0,\value{y}){\line(1,0){#1}}% \put(#1,\value{y}){\ehead}% \put(0,\value{z}){\line(1,0){#1}}% \put(#1,\value{z}){\ehead}% \put(0,\X){\line(1,0){#1}}% \put(#1,\X){\ehead}% \end{picture}}% % \EQUINTIADJAR{n} draws an east quintuple of adjoint arrows % of length n units \newcommand{\EQUINTIADJAR}[1]% {\truex{600}% \truey{1200}% \truez{1800}% \X=\value{x}% \multiply\X by 4% \begin{picture}(#1,\X)% \put(0,0){\line(1,0){#1}}% \put(#1,0){\ehead}% \put(#1,\value{x}){\line(-1,0){#1}}% \put(0,\value{x}){\whead}% \put(0,\value{y}){\line(1,0){#1}}% \put(#1,\value{y}){\ehead}% \put(#1,\value{z}){\line(-1,0){#1}}% \put(0,\value{z}){\whead}% \put(0,\X){\line(1,0){#1}}% \put(#1,\X){\ehead}% \end{picture}}% % USER'S COMMANDS FOR EAST ARROWS % basic east triple of arrows \def\basicetriar[#1]{% \Z=#1% \multiply \Z by 100% \htricase{\ETRIAR}{\Z}}% % east triple of arrows \newcommand{\etriar}{\@ifnextchar[{\basicetriar}% {\hspace{\SOURCE\unitlength}\basicetriar[\ARROWLENGTH]}}% % basic east triple of arrows with upper names \def\basicEtriar[#1]#2#3#4{% \Z=#1% \multiply \Z by 100% \Htricase{\ETRIAR}{#2}{#3}{#4}{}{\Z}}% % east triple of arrows with upper names \newcommand{\Etriar}{\@ifnextchar[{\basicEtriar}% {\hspace{\SOURCE\unitlength}\basicEtriar[\ARROWLENGTH]}}% % basic east triple of arrows with lower names \def\basicetriaR[#1]#2#3#4{% \Z=#1% \multiply \Z by 100% \Htricase{\ETRIAR}{}{#2}{#3}{#4}{\Z}}% % east triple of arrows with lower name \newcommand{\etriaR}{\@ifnextchar[{\basicetriaR}% {\hspace{\SOURCE\unitlength}\basicetriaR[\ARROWLENGTH]}}% % basic east triple of adjoint arrows \def\basicetriadjar[#1]{% \Z=#1% \multiply \Z by 100% \htricase{\ETRIADJAR}{\Z}}% % east triple of adjoint arrows \newcommand{\etriadjar}{\@ifnextchar[{\basicetriadjar}% {\hspace{\SOURCE\unitlength}\basicetriadjar[\ARROWLENGTH]}}% % basic east triple of adjoint arrows with upper names \def\basicEtriadjar[#1]#2#3#4{% \Z=#1% \multiply \Z by 100% \Htricase{\ETRIADJAR}{#2}{#3}{#4}{}{\Z}}% % east triple of adjoint arrows with upper names \newcommand{\Etriadjar}{\@ifnextchar[{\basicEtriadjar}% {\hspace{\SOURCE\unitlength}\basicEtriadjar[\ARROWLENGTH]}}% % basic east triple of adjoint arrows with lower names \def\basicetriadjaR[#1]#2#3#4{% \Z=#1% \multiply \Z by 100% \Htricase{\ETRIADJAR}{}{#2}{#3}{#4}{\Z}}% % east triple of adjoint arrows with lower name \newcommand{\etriadjaR}{\@ifnextchar[{\basicetriadjaR}% {\hspace{\SOURCE\unitlength}\basicetriadjaR[\ARROWLENGTH]}}% % basic east quadruple of arrows \def\basicequadriar[#1]{% \Z=#1% \multiply \Z by 100% \hmulticase{\EQUADRIAR}{\Z}}% % east quadruple of arrows \newcommand{\equadriar}{\@ifnextchar[{\basicequadriar}% {\hspace{\SOURCE\unitlength}\basicequadriar[\ARROWLENGTH]}}% % basic east quadruple of adjoint arrows \def\basicequadriadjar[#1]{% \Z=#1% \multiply \Z by 100% \hmulticase{\EQUADRIADJAR}{\Z}}% % east quadruple of adjoint arrows \newcommand{\equadriadjar}{\@ifnextchar[{\basicequadriadjar}% {\hspace{\SOURCE\unitlength}\basicequadriadjar[\ARROWLENGTH]}}% % basic east quintuple of arrows \def\basicequintiar[#1]{% \Z=#1% \multiply \Z by 100% \hmulticase{\EQUINTIAR}{\Z}}% % east quintuple of arrows \newcommand{\equintiar}{\@ifnextchar[{\basicequintiar}% {\hspace{\SOURCE\unitlength}\basicequintiar[\ARROWLENGTH]}}% % basic east quintuple of adjoint arrows \def\basicequintiadjar[#1]{% \Z=#1% \multiply \Z by 100% \hmulticase{\EQUINTIADJAR}{\Z}}% % east quintuple of adjoint arrows \newcommand{\equintiadjar}{\@ifnextchar[{\basicequintiadjar}% {\hspace{\SOURCE\unitlength}\basicequintiadjar[\ARROWLENGTH]}}% % WEST ARROWS % \WTRIAR{n}{f}{g}{h}{i} draws a west triple of arrows % of length n units and names f, g, h, i \newcommand{\WTRIAR}[5]% {\truex{1200}% \X=\value{x}% \multiply\X by 2% \begin{picture}(#1,\X)% \put(#1,0){\line(-1,0){#1}}% \put(0,0){\whead}% \put(#1,\value{x}){\line(-1,0){#1}}% \put(0,\value{x}){\whead}% \put(#1,\X){\line(-1,0){#1}}% \put(0,\X){\whead}% \X=#1% \divide\X by 2% \truex{-600}% \put(\X,\value{x}){\makebox(0,0){$#5$}}% \truex{600}% \put(\X,\value{x}){\makebox(0,0){$#4$}}% \truex{1800}% \put(\X,\value{x}){\makebox(0,0){$#3$}}% \truex{3000}% \put(\X,\value{x}){\makebox(0,0){$#2$}}% \end{picture}}% % \WTRIADJAR{n}{f}{g}{h}{i} draws a west triple of adjoint arrows % of length n units and names f, g, h, i \newcommand{\WTRIADJAR}[5]% {\truex{1200}% \X=\value{x}% \multiply\X by 2% \begin{picture}(#1,\X)% \put(0,0){\line(1,0){#1}}% \put(#1,0){\ehead}% \put(#1,\value{x}){\line(-1,0){#1}}% \put(0,\value{x}){\whead}% \put(0,\X){\line(1,0){#1}}% \put(#1,\X){\ehead}% \X=#1% \divide\X by 2% \truex{-600}% \put(\X,\value{x}){\makebox(0,0){$#5$}}% \truex{600}% \put(\X,\value{x}){\makebox(0,0){$#4$}}% \truex{1800}% \put(\X,\value{x}){\makebox(0,0){$#3$}}% \truex{3000}% \put(\X,\value{x}){\makebox(0,0){$#2$}}% \end{picture}}% % \WQUADRIAR{n} draws a west quadruple of arrows % of length n units \newcommand{\WQUADRIAR}[1]% {\truex{800}% \truey{1600}% \X=\value{x}% \multiply\X by 3% \begin{picture}(#1,\X)% \put(#1,0){\line(-1,0){#1}}% \put(0,0){\whead}% \put(#1,\value{x}){\line(-1,0){#1}}% \put(0,\value{x}){\whead}% \put(#1,\value{y}){\line(-1,0){#1}}% \put(0,\value{y}){\whead}% \put(#1,\X){\line(-1,0){#1}}% \put(0,\X){\whead}% \end{picture}}% % \WQUADRIADJAR{n} draws a west quadruple of adjoint arrows % of length n units \newcommand{\WQUADRIADJAR}[1]% {\truex{800}% \truey{1600}% \X=\value{x}% \multiply\X by 3% \begin{picture}(#1,\X)% \put(#1,0){\line(-1,0){#1}}% \put(0,0){\whead}% \put(0,\value{x}){\line(1,0){#1}}% \put(#1,\value{x}){\ehead}% \put(#1,\value{y}){\line(-1,0){#1}}% \put(0,\value{y}){\whead}% \put(0,\X){\line(1,0){#1}}% \put(#1,\X){\ehead}% \end{picture}}% % \WQUINTIAR{n} draws a west quintuple of arrows % of length n units \newcommand{\WQUINTIAR}[1]% {\truex{600}% \truey{1200}% \truez{1800}% \X=\value{x}% \multiply\X by 4% \begin{picture}(#1,\X)% \put(#1,0){\line(-1,0){#1}}% \put(0,0){\whead}% \put(#1,\value{x}){\line(-1,0){#1}}% \put(0,\value{x}){\whead}% \put(#1,\value{y}){\line(-1,0){#1}}% \put(0,\value{y}){\whead}% \put(#1,\value{z}){\line(-1,0){#1}}% \put(0,\value{z}){\whead}% \put(#1,\X){\line(-1,0){#1}}% \put(0,\X){\whead}% \end{picture}}% % \WQUINTIADJAR{n} draws a west quintuple of adjoint arrows % of length n units \newcommand{\WQUINTIADJAR}[1]% {\truex{600}% \truey{1200}% \truez{1800}% \X=\value{x}% \multiply\X by 4% \begin{picture}(#1,\X)% \put(#1,0){\line(-1,0){#1}}% \put(0,0){\whead}% \put(0,\value{x}){\line(1,0){#1}}% \put(#1,\value{x}){\ehead}% \put(#1,\value{y}){\line(-1,0){#1}}% \put(0,\value{y}){\whead}% \put(0,\value{z}){\line(1,0){#1}}% \put(#1,\value{z}){\ehead}% \put(#1,\X){\line(-1,0){#1}}% \put(0,\X){\whead}% \end{picture}}% % USER'S COMMANDS FOR WEST ARROWS % basic west triple of arrows \def\basicwtriar[#1]{% \Z=#1% \multiply \Z by 100% \htricase{\WTRIAR}{\Z}}% % west triple of arrows \newcommand{\wtriar}{\@ifnextchar[{\basicwtriar}% {\hspace{\SOURCE\unitlength}\basicwtriar[\ARROWLENGTH]}}% % basic west triple of arrows with upper names \def\basicWtriar[#1]#2#3#4{% \Z=#1% \multiply \Z by 100% \Htricase{\WTRIAR}{#2}{#3}{#4}{}{\Z}}% % west triple of arrows with upper names \newcommand{\Wtriar}{\@ifnextchar[{\basicWtriar}% {\hspace{\SOURCE\unitlength}\basicWtriar[\ARROWLENGTH]}}% % basic west triple of arrows with lower names \def\basicwtriaR[#1]#2#3#4{% \Z=#1% \multiply \Z by 100% \Htricase{\WTRIAR}{}{#2}{#3}{#4}{\Z}}% % west triple of arrows with lower name \newcommand{\wtriaR}{\@ifnextchar[{\basicwtriaR}% {\hspace{\SOURCE\unitlength}\basicwtriaR[\ARROWLENGTH]}}% % basic west triple of adjoint arrows \def\basicwtriadjar[#1]{% \Z=#1% \multiply \Z by 100% \htricase{\WTRIADJAR}{\Z}}% % west triple of adjoint arrows \newcommand{\wtriadjar}{\@ifnextchar[{\basicwtriadjar}% {\hspace{\SOURCE\unitlength}\basicwtriadjar[\ARROWLENGTH]}}% % basic west triple of adjoint arrows with upper names \def\basicWtriadjar[#1]#2#3#4{% \Z=#1% \multiply \Z by 100% \Htricase{\WTRIADJAR}{#2}{#3}{#4}{}{\Z}}% % west triple of adjoint arrows with upper names \newcommand{\Wtriadjar}{\@ifnextchar[{\basicWtriadjar}% {\hspace{\SOURCE\unitlength}\basicWtriadjar[\ARROWLENGTH]}}% % basic west triple of adjoint arrows with lower names \def\basicwtriadjaR[#1]#2#3#4{% \Z=#1% \multiply \Z by 100% \Htricase{\WTRIADJAR}{}{#2}{#3}{#4}{\Z}}% % west triple of adjoint arrows with lower name \newcommand{\wtriadjaR}{\@ifnextchar[{\basicwtriadjaR}% {\hspace{\SOURCE\unitlength}\basicwtriadjaR[\ARROWLENGTH]}}% % basic west quadruple of arrows \def\basicwquadriar[#1]{% \Z=#1% \multiply \Z by 100% \hmulticase{\WQUADRIAR}{\Z}}% % west quadruple of arrows \newcommand{\wquadriar}{\@ifnextchar[{\basicwquadriar}% {\hspace{\SOURCE\unitlength}\basicwquadriar[\ARROWLENGTH]}}% % basic west quadruple of adjoint arrows \def\basicwquadriadjar[#1]{% \Z=#1% \multiply \Z by 100% \hmulticase{\WQUADRIADJAR}{\Z}}% % west quadruple of adjoint arrows \newcommand{\wquadriadjar}{\@ifnextchar[{\basicwquadriadjar}% {\hspace{\SOURCE\unitlength}\basicwquadriadjar[\ARROWLENGTH]}}% % basic west quintuple of arrows \def\basicwquintiar[#1]{% \Z=#1% \multiply \Z by 100% \hmulticase{\WQUINTIAR}{\Z}}% % west quintuple of arrows \newcommand{\wquintiar}{\@ifnextchar[{\basicwquintiar}% {\hspace{\SOURCE\unitlength}\basicwquintiar[\ARROWLENGTH]}}% % basic west quintuple of adjoint arrows \def\basicwquintiadjar[#1]{% \Z=#1% \multiply \Z by 100% \hmulticase{\WQUINTIADJAR}{\Z}}% % west quintuple of adjoint arrows \newcommand{\wquintiadjar}{\@ifnextchar[{\basicwquintiadjar}% {\hspace{\SOURCE\unitlength}\basicwquintiadjar[\ARROWLENGTH]}}% % MACROS FOR VERTICAL DIAGRAM PICTURES % \vtricase{P}{n} draws the vertical tri-picture P % with length n units \newcommand{\vtricase}[2]% {\testdiagrammode\makebox[0pt]{#1{}{}{}{}{#2}}}% % \Vtricase{P}{f}{g}{h}{i}{n} draws the vertical tri-picture P % with length n units and names f, g, h, i. \newcommand{\Vtricase}[6]% {\testdiagrammode\makebox[0pt]{#1{#2}{#3}{#4}{#5}{#6}}}% % \vmulticase{P}{n} draws the vertical multi-picture P % with length n units. \newcommand{\vmulticase}[2]{\testdiagrammode\makebox[0pt]{#1{#2}}}% % SOUTH ARROWS % \STRIAR{f}{g}{h}{i}{n} draws a triple of south arrows % of length n units with names f, g, h, i % and centers it in a box of width 0pt and height 0pt \newcommand{\STRIAR}[5]% {\truex{1200}% \truey{1800}% \truez{600}% \begin{picture}(0,0)% \put(0,0){\makebox(0,0)% {\begin{picture}(0,#5)% \X=#5\divide\X by 2% \put(-\value{x},#5){\line(0,-1){#5}}% \put(-\value{x},0){\shead}% \put(0,#5){\line(0,-1){#5}}% \put(0,0){\shead}% \put(\value{x},#5){\line(0,-1){#5}}% \put(\value{x},0){\shead}% \put(-\value{y},\X){\makebox(0,0){$#1$}}% \put(\value{y},\X){\makebox(0,0){$#4$}}% \put(-\value{z},\X){\makebox(0,0){$#2$}}% \put(\value{z},\X){\makebox(0,0){$#3$}}% \end{picture}}}\end{picture}}% % \STRIADJAR{f}{g}{h}{i}{n} draws a south triple of adjoint % arrows of length n units with names f, g, h, i % and centers it in a box of width 0pt and height 0pt \newcommand{\STRIADJAR}[5]% {\truex{1200}% \truey{1800}% \truez{600}% \begin{picture}(0,0)% \put(0,0){\makebox(0,0)% {\begin{picture}(0,#5)% \X=#5\divide\X by 2% \put(-\value{x},0){\line(0,1){#5}}% \put(-\value{x},#5){\nhead}% \put(0,#5){\line(0,-1){#5}}% \put(0,0){\shead}% \put(\value{x},0){\line(0,1){#5}}% \put(\value{x},#5){\nhead}% \put(-\value{y},\X){\makebox(0,0){$#1$}}% \put(\value{y},\X){\makebox(0,0){$#4$}}% \put(-\value{z},\X){\makebox(0,0){$#2$}}% \put(\value{z},\X){\makebox(0,0){$#3$}}% \end{picture}}}\end{picture}}% % \SQUADRIAR{n} draws a quadruple of south arrows of length n units % and centers it in a box of width 0pt and height 0pt \newcommand{\SQUADRIAR}[1]% {\truex{400}% \truey{1200}% \begin{picture}(0,0)% \put(0,0){\makebox(0,0)% {\begin{picture}(0,#1)% \put(-\value{y},#1){\line(0,-1){#1}}% \put(-\value{y},0){\shead}% \put(-\value{x},#1){\line(0,-1){#1}}% \put(-\value{x},0){\shead}% \put(\value{x},#1){\line(0,-1){#1}}% \put(\value{x},0){\shead}% \put(\value{y},#1){\line(0,-1){#1}}% \put(\value{y},0){\shead}% \end{picture}}}\end{picture}}% % \SQUADRIADJAR{n} draws a south quadruple of adjoint arrows % of length n units and centers it in a box of width 0pt and height 0pt \newcommand{\SQUADRIADJAR}[1]% {\truex{400}% \truey{1200}% \begin{picture}(0,0)% \put(0,0){\makebox(0,0)% {\begin{picture}(0,#1)% \put(-\value{y},#1){\line(0,-1){#1}}% \put(-\value{y},0){\shead}% \put(-\value{x},0){\line(0,1){#1}}% \put(-\value{x},#1){\nhead}% \put(\value{x},#1){\line(0,-1){#1}}% \put(\value{x},0){\shead}% \put(\value{y},0){\line(0,1){#1}}% \put(\value{y},#1){\nhead}% \end{picture}}}\end{picture}}% % \SQUINTIAR{n} draws a quintuple of south arrows of length n units % and centers it in a box of width 0pt and height 0pt \newcommand{\SQUINTIAR}[1]% {\truex{600}% \truey{1200}% \begin{picture}(0,0)% \put(0,0){\makebox(0,0)% {\begin{picture}(0,#1)% \put(-\value{y},#1){\line(0,-1){#1}}% \put(-\value{y},0){\shead}% \put(-\value{x},#1){\line(0,-1){#1}}% \put(-\value{x},0){\shead}% \put(0,#1){\line(0,-1){#1}}% \put(0,0){\shead}% \put(\value{x},#1){\line(0,-1){#1}}% \put(\value{x},0){\shead}% \put(\value{y},#1){\line(0,-1){#1}}% \put(\value{y},0){\shead}% \end{picture}}}\end{picture}}% % \SQUINTIADJAR{n} draws a south quintuple of adjoint arrows % of length n units and centers it in a box of width 0pt and height 0pt \newcommand{\SQUINTIADJAR}[1]% {\truex{600}% \truey{1200}% \begin{picture}(0,0)% \put(0,0){\makebox(0,0)% {\begin{picture}(0,#1)% \put(-\value{y},#1){\line(0,-1){#1}}% \put(-\value{y},0){\shead}% \put(-\value{x},0){\line(0,1){#1}}% \put(-\value{x},#1){\nhead}% \put(0,#1){\line(0,-1){#1}}% \put(0,0){\shead}% \put(\value{x},0){\line(0,1){#1}}% \put(\value{x},#1){\nhead}% \put(\value{y},#1){\line(0,-1){#1}}% \put(\value{y},0){\shead}% \end{picture}}}\end{picture}}% % USER'S COMMANDS FOR SOUTH ARROWS % basic south triple of arrows \def\basicstriar[#1]{\vtricase{\STRIAR}{#100}}% % south triple of arrows \newcommand{\striar}{\@ifnextchar[{\basicstriar}{\basicstriar[50]}}% % basic south triple of arrows with left names \def\basicStriar[#1]#2#3#4{\Vtricase{\STRIAR}{#2}{#3}{#4}{}{#100}}% % south triple of arrows with left names \newcommand{\Striar}{\@ifnextchar[{\basicStriar}{\basicStriar[50]}}% % basic south triple of arrows with right names \def\basicstriaR[#1]#2#3#4{\Vtricase{\STRIAR}{}{#2}{#3}{#4}{#100}}% % south triple of arrows with right name \newcommand{\striaR}{\@ifnextchar[{\basicstriaR}{\basicstriaR[50]}}% % basic south triple of adjoint arrows \def\basicstriadjar[#1]{\vtricase{\STRIADJAR}{#100}}% % south triple of adjoint arrows \newcommand{\striadjar}{\@ifnextchar[{\basicstriadjar}{\basicstriadjar[50]}}% % basic south triple of adjoint arrows with left names \def\basicStriadjar[#1]#2#3#4{\Vtricase{\STRIADJAR}{#2}{#3}{#4}{}{#100}}% % south triple of adjoint arrows with left names \newcommand{\Striadjar}{\@ifnextchar[{\basicStriadjar}{\basicStriadjar[50]}}% % basic south triple of adjoint arrows with right names \def\basicstriadjaR[#1]#2#3#4{\Vtricase{\STRIADJAR}{}{#2}{#3}{#4}{#100}}% % south triple of adjoint arrows with right name \newcommand{\striadjaR}{\@ifnextchar[{\basicstriadjaR}{\basicstriadjaR[50]}}% % basic south quadruple of arrows \def\basicsquadriar[#1]{% \Z=#1% \multiply \Z by 100% \vmulticase{\SQUADRIAR}{\Z}}% % south quadruple of arrows \newcommand{\squadriar}{\@ifnextchar[{\basicsquadriar}% {\hspace{\SOURCE\unitlength}\basicsquadriar[\ARROWLENGTH]}}% % basic south quadruple of adjoint arrows \def\basicsquadriadjar[#1]{% \Z=#1% \multiply \Z by 100% \vmulticase{\SQUADRIADJAR}{\Z}}% % south quadruple of adjoint arrows \newcommand{\squadriadjar}{\@ifnextchar[{\basicsquadriadjar}% {\hspace{\SOURCE\unitlength}\basicsquadriadjar[\ARROWLENGTH]}}% % basic south quintuple of arrows \def\basicsquintiar[#1]{% \Z=#1% \multiply \Z by 100% \vmulticase{\SQUINTIAR}{\Z}}% % south quintuple of arrows \newcommand{\squintiar}{\@ifnextchar[{\basicsquintiar}% {\hspace{\SOURCE\unitlength}\basicsquintiar[\ARROWLENGTH]}}% % basic south quintuple of adjoint arrows \def\basicsquintiadjar[#1]{% \Z=#1% \multiply \Z by 100% \vmulticase{\SQUINTIADJAR}{\Z}}% % south quintuple of adjoint arrows \newcommand{\squintiadjar}{\@ifnextchar[{\basicsquintiadjar}% {\hspace{\SOURCE\unitlength}\basicsquintiadjar[\ARROWLENGTH]}}% % NORTH ARROWS % \NTRIAR{f}{g}{h}{i}{n} draws a triple of north arrows % of length n units with names f, g, h, i % and centers it in a box of width 0pt and height 0pt \newcommand{\NTRIAR}[5]% {\truex{1200}% \truey{1800}% \truez{600}% \begin{picture}(0,0)% \put(0,0){\makebox(0,0)% {\begin{picture}(0,#5)% \X=#5\divide\X by 2% \put(-\value{x},0){\line(0,1){#5}}% \put(-\value{x},#5){\nhead}% \put(0,0){\line(0,1){#5}}% \put(0,#5){\nhead}% \put(\value{x},0){\line(0,1){#5}}% \put(\value{x},#5){\nhead}% \put(-\value{y},\X){\makebox(0,0){$#1$}}% \put(\value{y},\X){\makebox(0,0){$#4$}}% \put(-\value{z},\X){\makebox(0,0){$#2$}}% \put(\value{z},\X){\makebox(0,0){$#3$}}% \end{picture}}}\end{picture}}% % \NTRIADJAR{f}{g}{h}{i}{n} draws a north triple of adjoint % arrows of length n units with names f, g, h, i % and centers it in a box of width 0pt and height 0pt \newcommand{\NTRIADJAR}[5]% {\truex{1200}% \truey{1800}% \truez{600}% \begin{picture}(0,0)% \put(0,0){\makebox(0,0)% {\begin{picture}(0,#5)% \X=#5\divide\X by 2% \put(-\value{x},#5){\line(0,-1){#5}}% \put(-\value{x},0){\shead}% \put(0,0){\line(0,1){#5}}% \put(0,#5){\nhead}% \put(\value{x},#5){\line(0,-1){#5}}% \put(\value{x},0){\shead}% \put(-\value{y},\X){\makebox(0,0){$#1$}}% \put(\value{y},\X){\makebox(0,0){$#4$}}% \put(-\value{z},\X){\makebox(0,0){$#2$}}% \put(\value{z},\X){\makebox(0,0){$#3$}}% \end{picture}}}\end{picture}}% % \NQUADRIAR{n} draws a quadruple of north arrows of length n units % and centers it in a box of width 0pt and height 0pt \newcommand{\NQUADRIAR}[1]% {\truex{400}% \truey{1200}% \begin{picture}(0,0)% \put(0,0){\makebox(0,0)% {\begin{picture}(0,#1)% \put(-\value{y},0){\line(0,1){#1}}% \put(-\value{y},#1){\nhead}% \put(-\value{x},0){\line(0,1){#1}}% \put(-\value{x},#1){\nhead}% \put(\value{x},0){\line(0,1){#1}}% \put(\value{x},#1){\nhead}% \put(\value{y},0){\line(0,1){#1}}% \put(\value{y},#1){\nhead}% \end{picture}}}\end{picture}}% % \NQUADRIADJAR{n} draws a north quadruple of adjoint arrows % of length n units and centers it in a box of width 0pt and height 0pt \newcommand{\NQUADRIADJAR}[1]% {\truex{400}% \truey{1200}% \begin{picture}(0,0)% \put(0,0){\makebox(0,0)% {\begin{picture}(0,#1)% \put(-\value{y},0){\line(0,1){#1}}% \put(-\value{y},#1){\nhead}% \put(-\value{x},#1){\line(0,-1){#1}}% \put(-\value{x},0){\shead}% \put(\value{x},0){\line(0,1){#1}}% \put(\value{x},#1){\nhead}% \put(\value{y},#1){\line(0,-1){#1}}% \put(\value{y},0){\shead}% \end{picture}}}\end{picture}}% % \NQUINTIAR{n} draws a quintuple of north arrows of length n units % and centers it in a box of width 0pt and height 0pt \newcommand{\NQUINTIAR}[1]% {\truex{600}% \truey{1200}% \begin{picture}(0,0)% \put(0,0){\makebox(0,0)% {\begin{picture}(0,#1)% \put(-\value{y},0){\line(0,1){#1}}% \put(-\value{y},#1){\nhead}% \put(-\value{x},0){\line(0,1){#1}}% \put(-\value{x},#1){\nhead}% \put(0,0){\line(0,1){#1}}% \put(0,#1){\nhead}% \put(\value{x},0){\line(0,1){#1}}% \put(\value{x},#1){\nhead}% \put(\value{y},0){\line(0,1){#1}}% \put(\value{y},#1){\nhead}% \end{picture}}}\end{picture}}% % \NQUINTIADJAR{n} draws a north quintuple of adjoint arrows % of length n units and centers it in a box of width 0pt and height 0pt \newcommand{\NQUINTIADJAR}[1]% {\truex{600}% \truey{1200}% \begin{picture}(0,0)% \put(0,0){\makebox(0,0)% {\begin{picture}(0,#1)% \put(-\value{y},0){\line(0,1){#1}}% \put(-\value{y},#1){\nhead}% \put(-\value{x},#1){\line(0,-1){#1}}% \put(-\value{x},0){\shead}% \put(0,0){\line(0,1){#1}}% \put(0,#1){\nhead}% \put(\value{x},#1){\line(0,-1){#1}}% \put(\value{x},0){\shead}% \put(\value{y},0){\line(0,1){#1}}% \put(\value{y},#1){\nhead}% \end{picture}}}\end{picture}}% % USER'S COMMANDS FOR NORTH ARROWS % basic north triple of arrows \def\basicntriar[#1]{\vtricase{\NTRIAR}{#100}}% % north triple of arrows \newcommand{\ntriar}{\@ifnextchar[{\basicntriar}{\basicntriar[50]}}% % basic north triple of arrows with left names \def\basicNtriar[#1]#2#3#4{\Vtricase{\NTRIAR}{#2}{#3}{#4}{}{#100}}% % north triple of arrows with left names \newcommand{\Ntriar}{\@ifnextchar[{\basicNtriar}{\basicNtriar[50]}}% % basic north triple of arrows with right names \def\basicntriaR[#1]#2#3#4{\Vtricase{\NTRIAR}{}{#2}{#3}{#4}{#100}}% % north triple of arrows with right name \newcommand{\ntriaR}{\@ifnextchar[{\basicntriaR}{\basicntriaR[50]}}% % basic north triple of adjoint arrows \def\basicntriadjar[#1]{\vtricase{\NTRIADJAR}{#100}}% % north triple of adjoint arrows \newcommand{\ntriadjar}{\@ifnextchar[{\basicntriadjar}{\basicntriadjar[50]}}% % basic north triple of adjoint arrows with left names \def\basicNtriadjar[#1]#2#3#4{\Vtricase{\NTRIADJAR}{#2}{#3}{#4}{}{#100}}% % north triple of adjoint arrows with left names \newcommand{\Ntriadjar}{\@ifnextchar[{\basicNtriadjar}{\basicNtriadjar[50]}}% % basic north triple of adjoint arrows with right names \def\basicntriadjaR[#1]#2#3#4{\Vtricase{\NTRIADJAR}{}{#2}{#3}{#4}{#100}}% % north triple of adjoint arrows with right name \newcommand{\ntriadjaR}{\@ifnextchar[{\basicntriadjaR}{\basicntriadjaR[50]}}% % basic north quadruple of arrows \def\basicnquadriar[#1]{% \Z=#1% \multiply \Z by 100% \vmulticase{\NQUADRIAR}{\Z}}% % north quadruple of arrows \newcommand{\nquadriar}{\@ifnextchar[{\basicnquadriar}% {\hspace{\SOURCE\unitlength}\basicnquadriar[\ARROWLENGTH]}}% % basic north quadruple of adjoint arrows \def\basicnquadriadjar[#1]{% \Z=#1% \multiply \Z by 100% \vmulticase{\NQUADRIADJAR}{\Z}}% % north quadruple of adjoint arrows \newcommand{\nquadriadjar}{\@ifnextchar[{\basicnquadriadjar}% {\hspace{\SOURCE\unitlength}\basicnquadriadjar[\ARROWLENGTH]}}% % basic north quintuple of arrows \def\basicnquintiar[#1]{% \Z=#1% \multiply \Z by 100% \vmulticase{\NQUINTIAR}{\Z}}% % north quintuple of arrows \newcommand{\nquintiar}{\@ifnextchar[{\basicnquintiar}% {\hspace{\SOURCE\unitlength}\basicnquintiar[\ARROWLENGTH]}}% % basic north quintuple of adjoint arrows \def\basicnquintiadjar[#1]{% \Z=#1% \multiply \Z by 100% \vmulticase{\NQUINTIADJAR}{\Z}}% % north quintuple of adjoint arrows \newcommand{\nquintiadjar}{\@ifnextchar[{\basicnquintiadjar}% {\hspace{\SOURCE\unitlength}\basicnquintiadjar[\ARROWLENGTH]}}% \catcode`\@=12