Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- \makeatletter
- % Name of the new directions
- \xyletcsnamecsname@{dir4{}}{dir{}}
- \xydefcsname@{dir4{-}}{\line@ \quadruple@\xydashh@}
- \xydefcsname@{dir4{.}}{\point@ \quadruple@\xydashh@}
- \xydefcsname@{dir4{~}}{\squiggle@ \quadruple@\xybsqlh@}
- \xydefcsname@{dir4{>}}{\Tttip@}
- \xydefcsname@{dir4{<}}{\reverseDirection@\Tttip@}
- % quadruple command
- % Beware: the % position is important !!
- \xydef@\quadruple@#1{%
- \edef\Drop@@{%
- \dimen@=#1\relax
- \dimen@=.5\dimen@
- \A@=-\sinDirection\dimen@
- \B@=\cosDirection\dimen@
- \setboxz@h{%
- \setbox2=\hbox{\kern3\A@\raise3\B@\copy\z@}%
- \dp2=\z@ \ht2=\z@ \wd2=\z@ \box2
- \setbox2=\hbox{\kern\A@\raise\B@\copy\z@}%
- \dp2=\z@ \ht2=\z@ \wd2=\z@ \box2
- \setbox2=\hbox{\kern-\A@\raise-\B@\copy\z@}%
- \dp2=\z@ \ht2=\z@ \wd2=\z@ \box2
- \setbox2=\hbox{\kern-3\A@\raise-3\B@ \noexpand\boxz@}%
- \dp2=\z@ \ht2=\z@ \wd2=\z@ \box2
- }%
- \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \noexpand\styledboxz@
- }%
- }
- % quadruple arrows heads : positionning ok, joints to do
- \xydef@\Tttip@{\kern2pt \vrule height2pt depth2pt width\z@
- \Tttip@@ \kern2pt \egroup
- \U@c=0pt \D@c=0pt \L@c=0pt \R@c=0pt \Edge@c={\circleEdge}%
- \def\Leftness@{.5}\def\Upness@{.5}%
- \def\Drop@@{\styledboxz@}\def\Connect@@{\straight@{\dottedSpread@\jot}}}
- \xydef@\Tttip@@{%
- \dimen@=.25\dimen@
- \B@=\cosDirection\dimen@
- \setboxz@h\bgroup\reverseDirection@\line@ \wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@
- {\vDirection@(1,-1)\xydashl@ \xyatipfont\char\DirectionChar}%
- {\vDirection@(1,+1)\xydashl@ \xybtipfont\char\DirectionChar}%
- }
- % Redefinition of the command \ar
- % Provoque a warning when compiled
- \xydef@\ar@form{
- \ifx \space@\next \expandafter\DN@\space{\xyFN@\ar@form}%
- \else\ifx ^\next \DN@ ^{\xyFN@\ar@style}\edef\arvariant@@{\string^}%
- \else\ifx _\next \DN@ _{\xyFN@\ar@style}\edef\arvariant@@{\string_}%
- \else\ifx 0\next \DN@ 0{\xyFN@\ar@style}\def\arvariant@@{0}%
- \else\ifx 1\next \DN@ 1{\xyFN@\ar@style}\def\arvariant@@{1}%
- \else\ifx 2\next \DN@ 2{\xyFN@\ar@style}\def\arvariant@@{2}%
- \else\ifx 3\next \DN@ 3{\xyFN@\ar@style}\def\arvariant@@{3}%
- \else\ifx 4\next \DN@ 4{\xyFN@\ar@style}\def\arvariant@@{4}%
- \else\ifx \bgroup\next \let\next@=\ar@style
- \else\ifx [\next \DN@[##1]{\ar@modifiers{[##1]}}%]
- \else\ifx *\next \DN@ *{\ar@modifiers}%
- \else\addLT@\ifx\next \let\next@=\ar@slide
- \else\ifx /\next \let\next@=\ar@curveslash
- \else\ifx (\next \let\next@=\ar@curveinout %)
- \else\addRQ@\ifx\next \addRQ@\DN@{\ar@curve@}%
- \else\addLQ@\ifx\next \addLQ@\DN@{\xyFN@\ar@curve}%
- \else\addDASH@\ifx\next \addDASH@\DN@{\defarstem@-\xyFN@\ar@}%
- \else\addEQ@\ifx\next \addEQ@\DN@{\def\arvariant@@{2}\defarstem@-\xyFN@\ar@}%
- \else\addDOT@\ifx\next \addDOT@\DN@{\defarstem@.\xyFN@\ar@}%
- \else\ifx :\next \DN@:{\def\arvariant@@{2}\defarstem@.\xyFN@\ar@}%
- \else\ifx ~\next \DN@~{\defarstem@~\xyFN@\ar@}%
- \else\ifx !\next \DN@!{\dasharstem@\xyFN@\ar@}%
- \else\ifx ?\next \DN@?{\ar@upsidedown\xyFN@\ar@}%
- \else \let\next@=\ar@error
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next@}
- \makeatother
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement