diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/borceux/MultipleArrows')
-rw-r--r-- | Master/texmf-dist/tex/generic/borceux/MultipleArrows | 1313 |
1 files changed, 1313 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/borceux/MultipleArrows b/Master/texmf-dist/tex/generic/borceux/MultipleArrows new file mode 100644 index 00000000000..9ac6aa2f85c --- /dev/null +++ b/Master/texmf-dist/tex/generic/borceux/MultipleArrows @@ -0,0 +1,1313 @@ +%%% 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
\ No newline at end of file |