diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-13 00:01:57 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-13 00:01:57 +0000 |
commit | b947be239b40a6eaec6083a561bf347ff84385e9 (patch) | |
tree | de6e275795855424864a563f8c1b882f8a2286c8 /Master/texmf-dist/tex/latex/pb-diagram/pb-xy.sty | |
parent | 950f03b7024e00033a9f56cbd3f66212eaeaa4c8 (diff) |
pb-diagram
git-svn-id: svn://tug.org/texlive/trunk@1176 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/pb-diagram/pb-xy.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/pb-diagram/pb-xy.sty | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/pb-diagram/pb-xy.sty b/Master/texmf-dist/tex/latex/pb-diagram/pb-xy.sty new file mode 100644 index 00000000000..f5cadd5a51e --- /dev/null +++ b/Master/texmf-dist/tex/latex/pb-diagram/pb-xy.sty @@ -0,0 +1,133 @@ +% pb-xy.sty: Xypic arrow enhancements for pb-diagram.sty +% Author: Bill Richter <richter@math.nwu.edu> +% Version Number: 5.0 +% Version Date: 20 Oct 1998 +% +% Copyright (c) 1998 by Bill Richter +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; if not, write to the Free Software +% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% +% This style file should be loaded as follows: +% \usepackage[cmtip,arrow]{xy} +% \usepackage{pb-diagram,pb-xy} +% +% This code adds to the "diagram" environment the use of +% Xypic fancy arrow heads and tails, as well as additional arrow +% directions. Most of the options defined here can be +% combined arbitrarily. +% + +\makeatother +\def\PBXYarat{\ar@}% +\makeatletter + +\newcount\PBXYxsize +\newcount\PBXYysize + +\def\pbxy@tail{{}}% +\def\pbxy@mid{-}% +\def\pbxy@head{>}% + +\@namedef{dgo@}{% + \let\dg@VECTOR=\PBXYvector + \def\pbxy@tail{{}}\def\pbxy@mid{-}\def\pbxy@head{>}% + \dg@LBLPOS=\dgARROWPARTS \divide\dg@LBLPOS\tw@}% from pb-diagram.sty + +\@namedef{dgo@-}{\def\pbxy@head{{}}}% +\@namedef{dgo@!}{\def\pbxy@mid{{}}\def\pbxy@head{{}}% + \let\dg@VECTOR=\dg@novector}% from pb-diagram.sty +\@namedef{dgo@..}{\def\pbxy@mid{.}}% +\@namedef{dgo@--}{\def\pbxy@mid{--}}% +\@namedef{dgo@<>}{\def\pbxy@tail{<}\def\pbxy@head{>}}% +\@namedef{dgo@=}{\def\pbxy@mid{2{-}}\def\pbxy@head{{}}}% +\@namedef{dgo@'}{\def\pbxy@head{^{>}}}% +\@namedef{dgo@`}{\def\pbxy@head{_{>}}}% +\@namedef{dgo@A}{\def\pbxy@head{>>}}% +\@namedef{dgo@V}{\def\pbxy@tail{>}}% +\@namedef{dgo@J}{\def\pbxy@tail{^{(}}}% +\@namedef{dgo@L}{\def\pbxy@tail{_{(}}}% +\@namedef{dgo@S}{\def\pbxy@mid{~}}% +\@namedef{dgo@T}{\def\pbxy@tail{|}}% + +\def\PBXYvector(#1,#2)#3{% + \PBXYxsize#3\relax + \ifnum#1<\z@\multiply\PBXYxsize\m@ne\fi + \PBXYysize\PBXYxsize\relax + \ifnum#1=\z@ + \PBXYxsize\z@ + \ifnum#2<\z@\multiply\PBXYysize\m@ne\fi + \else + \multiply\PBXYysize#2\relax\divide\PBXYysize#1\relax + \fi + \edef\PBXYarrow{\noexpand\PBXYarat{\pbxy@tail\pbxy@mid\pbxy@head}}% + \ifnum#1<\z@ + \makebox(\PBXYxsize,\PBXYysize){% + \begin{xy} 0;<\unitlength,\z@>:% + \PBXYarrow(\PBXYxsize,\PBXYysize)% + \end{xy}% + }% + \else + {\begin{xy} <\unitlength,\z@>:% + \PBXYarrow(\PBXYxsize,\PBXYysize)% + \end{xy}}% + \fi +} + +\def\dgt@nee{\dg@DX=\tw@ \dg@DY=\@ne \dg@SIZE=\tw@}% +\def\dgt@see{\dg@DX=\tw@ \dg@DY=\m@ne \dg@SIZE=\tw@}% +\def\dgt@nww{\dg@DX=-\tw@ \dg@DY=\@ne \dg@SIZE=\tw@}% +\def\dgt@sww{\dg@DX=-\tw@ \dg@DY=\m@ne \dg@SIZE=\tw@}% +\def\dgt@neee{\dg@DX=\thr@@ \dg@DY=\@ne \dg@SIZE=\thr@@}% +\def\dgt@nnne{\dg@DX=\@ne \dg@DY=\thr@@ \dg@SIZE=\@ne}% +\def\dgt@nnnw{\dg@DX=\m@ne \dg@DY=\thr@@ \dg@SIZE=\@ne}% +\def\dgt@nwww{\dg@DX=-\thr@@ \dg@DY=\@ne \dg@SIZE=\thr@@}% +\def\dgt@swww{\dg@DX=-\thr@@ \dg@DY=\m@ne \dg@SIZE=\thr@@}% +\def\dgt@sssw{\dg@DX=\m@ne \dg@DY=-\thr@@ \dg@SIZE=\@ne}% +\def\dgt@ssse{\dg@DX=\@ne \dg@DY=-\thr@@ \dg@SIZE=\@ne}% +\def\dgt@seee{\dg@DX=\thr@@ \dg@DY=\m@ne \dg@SIZE=\thr@@}% +\def\dgt@nneee{\dg@DX=\thr@@ \dg@DY=\tw@ \dg@SIZE=\thr@@}% +\def\dgt@nnnee{\dg@DX=\tw@ \dg@DY=\thr@@ \dg@SIZE=\tw@}% +\def\dgt@nnnww{\dg@DX=-\tw@ \dg@DY=\thr@@ \dg@SIZE=\tw@}% +\def\dgt@nnwww{\dg@DX=-\thr@@ \dg@DY=\tw@ \dg@SIZE=\thr@@}% +\def\dgt@sswww{\dg@DX=-\thr@@ \dg@DY=-\tw@ \dg@SIZE=\thr@@}% +\def\dgt@sssww{\dg@DX=-\tw@ \dg@DY=-\thr@@ \dg@SIZE=\tw@}% +\def\dgt@sssee{\dg@DX=\tw@ \dg@DY=-\thr@@ \dg@SIZE=\tw@}% +\def\dgt@sseee{\dg@DX=\thr@@ \dg@DY=-\tw@ \dg@SIZE=\thr@@}% + +% approximate aspect ratio by half-integer betw 1/2 and 4 +% +\def\dggeometry{ + \dg@ZTEMP=\dg@XGRID \multiply\dg@ZTEMP\tw@ + \ifnum\dg@YGRID=\z@ \dg@ZTEMP=\tw@ + \else \divide\dg@ZTEMP\dg@YGRID \fi + \ifnum\dg@ZTEMP>8\relax \dg@ZTEMP=8\relax \fi + \ifnum\dg@ZTEMP<\@ne \dg@ZTEMP=\@ne \fi + \unitlength=1sp\relax + \ifnum\dg@ZTEMP<\tw@ + % round aspect ratio up toward 2:2, widen rect + \advance\dg@ZTEMP\@ne + \multiply\unitlength\dg@YGRID + \dg@XGRID=\dg@ZTEMP \dg@YGRID=\tw@ + \dg@rmcommondiv\tw@\dg@XGRID\dg@YGRID + \divide\unitlength\dg@YGRID + \else + % round aspect ratio down toward 2:2, tallen rect + \multiply\unitlength\dg@XGRID + \dg@XGRID=\dg@ZTEMP \dg@YGRID=\tw@ + \dg@rmcommondiv\tw@\dg@XGRID\dg@YGRID + \divide\unitlength\dg@XGRID + \fi + \divide\unitlength\@m\relax}% + |