summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/curve2e
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-07-24 16:33:36 +0000
committerKarl Berry <karl@freefriends.org>2006-07-24 16:33:36 +0000
commite75737b783520c645f61255510dac74d8cc1e221 (patch)
tree1f5b9a2365f5b3e12d34cc65385462e4a5245278 /Master/texmf-dist/tex/latex/curve2e
parentfccdc59ac91ea4544133144a8d6d41c053b4cb3f (diff)
new (latex) package curve2e
git-svn-id: svn://tug.org/texlive/trunk@1910 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/curve2e')
-rw-r--r--Master/texmf-dist/tex/latex/curve2e/curve2e.sty660
1 files changed, 660 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/curve2e/curve2e.sty b/Master/texmf-dist/tex/latex/curve2e/curve2e.sty
new file mode 100644
index 00000000000..e01f0e2d27b
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/curve2e/curve2e.sty
@@ -0,0 +1,660 @@
+%%
+%% This is file `curve2e.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% curve2e.dtx (with options: `package')
+%%
+%% Copyright 2005 Claudio Beccari All rights reserved.
+%%
+%% This system 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.
+%%
+%%
+%% IMPORTANT NOTICE:
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "author-maintained".
+%%
+%% This work consists of all files listed in manifest.txt.
+%%
+%%
+%% If you receive only some of these files from someone, complain!
+%%
+%%
+%% File `curve2e.dtx'.
+%% Copyright (C) 2005 Claudio Beccari all rights reserved.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{curve2e}%
+ [2005/08/15 v.0.10 Extension package for pict2e]
+\RequirePackage{color}
+\RequirePackageWithOptions{pict2e}[2004/06/01]
+\ifcase\pIIe@mode\relax
+\or %Postscript
+ \def\roundcap{\special{ps:: 1 setlinecap}}%
+ \def\squarecap{\special{ps:: 0 setlinecap}}%
+ \def\roundjoin{\special{ps:: 1 setlinejoin}}%
+ \def\beveljoin{\special{ps:: 2 setlinejoin}}%
+\or %pdf
+ \def\roundcap{\pdfliteral{1 J}}%
+ \def\squarecap{\pdfliteral{0 J}}%
+ \def\roundjoin{\pdfliteral{1 j}}%
+ \def\beveljoin{\pdfliteral{2 j}}%
+\fi
+\def\TRON{\tracingcommands\tw@ \tracingmacros\tw@}%
+\def\TROF{\tracingcommands\z@ \tracingmacros\z@}%
+\ifx\undefined\@tdA \newdimen\@tdA \fi
+\ifx\undefined\@tdB \newdimen\@tdB \fi
+\ifx\undefined\@tdC \newdimen\@tdC \fi
+\ifx\undefined\@tdD \newdimen\@tdD \fi
+\ifx\undefined\@tdE \newdimen\@tdE \fi
+\ifx\undefined\@tdF \newdimen\@tdF \fi
+\ifx\undefined\defaultlinewidth \newdimen\defaultlinewidth \fi
+\newcommand\defaultlinethickness[1]{\defaultlinewidth=#1\relax
+\def\thicklines{\linethickness{\defaultlinewidth}}%
+\def\thinlines{\linethickness{.5\defaultlinewidth}}%
+\thinlines\ignorespaces}
+\def\Line(#1,#2){\pIIe@moveto\z@\z@
+ \pIIe@lineto{#1\unitlength}{#2\unitlength}\pIIe@strokeGraph}%
+\def\LINE(#1)(#2){\polyline(#1)(#2)}%
+\def\line(#1)#2{\begingroup
+ \@linelen #2\unitlength
+ \ifdim\@linelen<\z@\@badlinearg\else
+ \expandafter\DirOfVect#1to\Dir@line
+ \GetCoord(\Dir@line)\d@mX\d@mY
+ \ifdim\d@mX\p@=\z@\else
+ \DividE\ifdim\d@mX\p@<\z@-\fi\p@ by\d@mX\p@ to\sc@lelen
+ \@linelen=\sc@lelen\@linelen
+ \fi
+ \pIIe@moveto\z@\z@
+ \pIIe@lineto{\d@mX\@linelen}{\d@mY\@linelen}%
+ \pIIe@strokeGraph
+\fi
+\endgroup\ignorespaces}%
+\def\GetCoord(#1)#2#3{%
+\expandafter\SplitNod@\expandafter(#1)#2#3\ignorespaces}
+\def\SplitNod@(#1,#2)#3#4{\edef#3{#1}\edef#4{#2}}%
+ \def\vector(#1)#2{%
+ \begingroup
+ \GetCoord(#1)\d@mX\d@mY
+ \@linelen#2\unitlength
+ \ifdim\d@mX\p@=\z@\ifdim\d@mY\p@=\z@\@badlinearg\fi\fi
+ \ifdim\@linelen<\z@ \@linelen=-\@linelen\fi
+ \MakeVectorFrom\d@mX\d@mY to\@Vect
+ \DirOfVect\@Vect to\Dir@Vect
+ \YpartOfVect\Dir@Vect to\@ynum \@ydim=\@ynum\p@
+ \XpartOfVect\Dir@Vect to\@xnum \@xdim=\@xnum\p@
+ \ifdim\d@mX\p@=\z@
+ \else\ifdim\d@mY\p@=\z@
+ \else
+ \DividE\ifdim\@xnum\p@<\z@-\fi\p@ by\@xnum\p@ to\sc@lelen
+ \@linelen=\sc@lelen\@linelen
+ \fi
+ \fi
+ \@tdB=\@linelen
+\pIIe@concat\@xdim\@ydim{-\@ydim}\@xdim{\@xnum\@linelen}{\@ynum\@linelen}%
+ \@linelen\z@
+ \pIIe@vector
+ \pIIe@fillGraph
+ \@linelen=\@tdB
+ \@tdA=\pIIe@FAW\@wholewidth
+ \@tdA=\pIIe@FAL\@tdA
+ \advance\@linelen-\@tdA
+ \ifdim\@linelen>\z@
+ \pIIe@moveto\z@\z@
+ \pIIe@lineto{\@xnum\@linelen}{\@ynum\@linelen}%
+ \pIIe@strokeGraph\fi
+ \endgroup}
+\def\Vector(#1,#2){\vector(#1,#2){#1}}
+\def\VECTOR(#1)(#2){\begingroup
+\SubVect#1 from #2 to \@tempa
+\expandafter\put\expandafter(#1){\expandafter\Vector\expandafter(\@tempa)}%
+\endgroup\ignorespaces}
+\let\lp@r( \let\rp@r)
+\def\polyline(#1){\beveljoin\GetCoord(#1)\d@mX\d@mY
+ \pIIe@moveto{\d@mX\unitlength}{\d@mY\unitlength}%
+ \@ifnextchar\lp@r{\p@lyline}{%
+ \PackageWarning{curve2e}%
+ {Polygonal lines require at least two vertices!\MessageBreak
+ Control your polygonal line specification\MessageBreak}%
+ \ignorespaces}}
+\def\p@lyline(#1){\GetCoord(#1)\d@mX\d@mY
+ \pIIe@lineto{\d@mX\unitlength}{\d@mY\unitlength}%
+ \@ifnextchar\lp@r{\p@lyline}{\pIIe@strokeGraph\ignorespaces}}
+\def\GraphGrid(#1,#2){\begingroup\textcolor{red}{\linethickness{.1\p@}%
+\RoundUp#1modulo10to\@GridWd \RoundUp#2modulo10to\@GridHt
+\@tempcnta=\@GridWd \divide\@tempcnta10\relax \advance\@tempcnta\@ne
+\multiput(0,0)(10,0){\@tempcnta}{\line(0,1){\@GridHt}}%
+\@tempcnta=\@GridHt \divide\@tempcnta10\advance\@tempcnta\@ne
+\multiput(0,0)(0,10){\@tempcnta}{\line(1,0){\@GridWd}}\thinlines}%
+\endgroup\ignorespaces}
+\def\RoundUp#1modulo#2to#3{\expandafter\@tempcnta\Integer#1.??%
+\count254\@tempcnta\divide\count254by#2\relax
+\multiply\count254by#2\relax
+\count252\@tempcnta\advance\count252-\count254
+\ifnum\count252>0\advance\count252-#2\relax
+\advance\@tempcnta-\count252\fi\edef#3{\number\@tempcnta}\ignorespaces}%
+\def\Integer#1.#2??{#1}%
+\ifx\DividE\undefined
+ \def\DividE#1by#2to#3{%
+ \begingroup
+ \dimendef\Numer=254\relax \dimendef\Denom=252\relax
+ \countdef\Num 254\relax
+ \countdef\Den 252\relax
+ \countdef\I=250\relax
+ \Numer #1\relax \Denom #2\relax
+ \ifdim\Denom<\z@ \Denom -\Denom \Numer -\Numer\fi
+ \def\segno{}\ifdim\Numer<\z@ \def\segno{-}\Numer -\Numer\fi
+ \ifdim\Denom=\z@
+ \ifdim\Numer>\z@\def\Q{16383.99999}\else\def\Q{-16383.99999}\fi
+ \else
+ \Num=\Numer \Den=\Denom \divide\Num\Den
+ \edef\Q{\number\Num.}%
+ \advance\Numer -\Q\Denom \I=6\relax
+ \@whilenum \I>\z@ \do{\DividEDec\advance\I\m@ne}%
+ \fi
+ \xdef#3{\segno\Q}\endgroup
+ }%
+ \def\DividEDec{\Numer=10\Numer \Num=\Numer \divide\Num\Den
+ \edef\q{\number\Num}\edef\Q{\Q\q}\advance\Numer -\q\Denom}%
+\fi
+\ifx\undefined\@Numero% s
+ {\let\cc\catcode \cc`p=12\cc`t=12\gdef\@Numero#1pt{#1}}%
+\fi
+\ifx\undefined\Numero
+ \def\Numero#1#2{\dimen254
+#2\edef#1{\expandafter\@Numero\the\dimen254}\ignorespaces}%
+\fi
+\def\g@tTanCotanFrom#1to#2and#3{%
+\DividE 114.591559\p@ by#1to\X \@tdB=\X\p@
+\countdef\I=254\def\Tan{0}\I=11\relax
+\@whilenum\I>\z@\do{%
+ \@tdC=\Tan\p@ \@tdD=\I\@tdB
+ \advance\@tdD-\@tdC \DividE\p@ by\@tdD to\Tan
+ \advance\I-2\relax}%
+\def#2{\Tan}\DividE\p@ by\Tan\p@ to\Cot \def#3{\Cot}%
+\ignorespaces}%
+\def\SinOf#1to#2{\begingroup%
+\@tdA=#1\p@%
+\ifdim\@tdA>\z@%
+ \@whiledim\@tdA>180\p@\do{\advance\@tdA -360\p@}%
+\else%
+ \@whiledim\@tdA<-180\p@\do{\advance\@tdA 360\p@}%
+\fi \ifdim\@tdA=\z@
+ \gdef#2{0}%
+\else
+ \ifdim\@tdA>\z@
+ \def\Segno{+}%
+ \else
+ \def\Segno{-}%
+ \@tdA=-\@tdA
+ \fi
+ \ifdim\@tdA>90\p@
+ \@tdA=-\@tdA \advance\@tdA 180\p@
+ \fi
+ \ifdim\@tdA=90\p@
+ \xdef#2{\Segno1}%
+ \else
+ \ifdim\@tdA=180\p@
+ \gdef#2{0}%
+ \else
+ \ifdim\@tdA<\p@
+ \@tdA=\Segno0.0174533\@tdA
+ \DividE\@tdA by\p@ to#2%
+ \else
+ \g@tTanCotanFrom\@tdA to\T and\Tp
+ \@tdA=\T\p@ \advance\@tdA \Tp\p@
+ \DividE \Segno2\p@ by\@tdA to#2%
+ \fi
+ \fi
+ \fi
+\fi
+\endgroup\ignorespaces}%
+\def\CosOf#1to#2{\begingroup%
+\@tdA=#1\p@%
+\ifdim\@tdA>\z@%
+ \@whiledim\@tdA>360\p@\do{\advance\@tdA -360\p@}%
+\else%
+ \@whiledim\@tdA<\z@\do{\advance\@tdA 360\p@}%
+\fi
+\ifdim\@tdA>180\p@
+ \@tdA=-\@tdA \advance\@tdA 360\p@
+\fi
+\ifdim\@tdA<90\p@
+ \def\Segno{+}%
+\else
+ \def\Segno{-}%
+ \@tdA=-\@tdA \advance\@tdA 180\p@
+\fi
+\ifdim\@tdA=\z@
+ \gdef#2{\Segno1}%
+\else
+ \ifdim\@tdA<\p@
+ \@tdA=0.0174533\@tdA \Numero\@tempA\@tdA
+ \@tdA=\@tempA\@tdA \@tdA=-.5\@tdA
+ \advance\@tdA \p@
+ \DividE\@tdA by\p@ to#2%
+ \else
+ \ifdim\@tdA=90\p@
+ \gdef#2{0}%
+ \else
+ \g@tTanCotanFrom\@tdA to\T and\Tp
+ \@tdA=\Tp\p@ \advance\@tdA-\T\p@
+ \@tdB=\Tp\p@ \advance\@tdB\T\p@
+ \DividE\Segno\@tdA by\@tdB to#2%
+ \fi
+ \fi
+\fi
+\endgroup\ignorespaces}%
+\def\TanOf#1to#2{\begingroup%
+\@tdA=#1\p@%
+\ifdim\@tdA>90\p@%
+ \@whiledim\@tdA>90\p@\do{\advance\@tdA -180\p@}%
+\else%
+ \@whiledim\@tdA<-90\p@\do{\advance\@tdA 180\p@}%
+\fi%
+\ifdim\@tdA=\z@%
+ \gdef#2{0}%
+\else
+ \ifdim\@tdA>\z@
+ \def\Segno{+}%
+ \else
+ \def\Segno{-}%
+ \@tdA=-\@tdA
+ \fi
+ \ifdim\@tdA=90\p@
+ \xdef#2{\Segno16383.99999}%
+ \else
+ \ifdim\@tdA<\p@
+ \@tdA=\Segno0.0174533\@tdA
+ \DividE\@tdA by\p@ to#2%
+ \else
+ \g@tTanCotanFrom\@tdA to\T and\Tp
+ \@tdA\Tp\p@ \advance\@tdA -\T\p@
+ \DividE\Segno2\p@ by\@tdA to#2%
+ \fi
+ \fi
+\fi
+\endgroup\ignorespaces}%
+\def\MakeVectorFrom#1#2to#3{\edef#3{#1,#2}\ignorespaces}%
+\def\CopyVect#1to#2{\edef#2{#1}\ignorespaces}%
+\def\ModOfVect#1to#2{\GetCoord(#1)\t@X\t@Y
+\@tempdima=\t@X\p@ \ifdim\@tempdima<\z@ \@tempdima=-\@tempdima\fi
+\@tempdimb=\t@Y\p@ \ifdim\@tempdimb<\z@ \@tempdimb=-\@tempdimb\fi
+\ifdim\@tempdima>\@tempdimb
+ \DividE\@tempdimb by\@tempdima to\@T
+ \@tempdimc=\@tempdima
+\else
+ \DividE\@tempdima by\@tempdimb to\@T
+ \@tempdimc=\@tempdimb
+\fi
+\ifdim\@T\p@>\z@
+ \@tempdima=\@T\p@ \@tempdima=\@T\@tempdima
+ \advance\@tempdima\p@ %
+ \@tempdimb=\p@%
+ \@tempcnta=5\relax
+ \@whilenum\@tempcnta>\z@\do{\DividE\@tempdima by\@tempdimb to\@T
+ \advance\@tempdimb \@T\p@ \@tempdimb=.5\@tempdimb
+ \advance\@tempcnta\m@ne}%\
+ \@tempdimc=\@T\@tempdimc
+\fi
+\Numero#2\@tempdimc
+\ignorespaces}%
+\def\DirOfVect#1to#2{\GetCoord(#1)\t@X\t@Y
+\ModOfVect#1to\@tempa
+\ifdim\@tempdimc=\z@\else
+ \DividE\t@X\p@ by\@tempdimc to\t@X
+ \DividE\t@Y\p@ by\@tempdimc to\t@Y
+ \MakeVectorFrom\t@X\t@Y to#2\relax
+\fi\ignorespaces}%
+\def\ModAndDirOfVect#1to#2and#3{%
+\GetCoord(#1)\t@X\t@Y
+\ModOfVect#1to#2%
+\DividE\t@X\p@ by\@tempdimc to\t@X \DividE\t@Y\p@ by\@tempdimc to\t@Y
+\MakeVectorFrom\t@X\t@Y to#3\ignorespaces}%
+\def\DistanceAndDirOfVect#1minus#2to#3and#4{%
+\SubVect#2from#1to\@tempa \ModAndDirOfVect\@tempa to#3and#4\relax
+\ignorespaces}%
+\def\XpartOfVect#1to#2{%
+\GetCoord(#1)#2\@tempa
+\ignorespaces}%
+\def\YpartOfVect#1to#2{%
+\GetCoord(#1)\@tempa#2\relax
+\ignorespaces}%
+\def\DirFromAngle#1to#2{\CosOf#1to\t@X%
+\SinOf#1to\t@Y\MakeVectorFrom\t@X\t@Y to#2\ignorespaces}%
+\def\ScaleVect#1by#2to#3{\GetCoord(#1)\t@X\t@Y
+\@tempdima=\t@X\p@ \@tempdima=#2\@tempdima\Numero\t@X\@tempdima
+\@tempdima=\t@Y\p@ \@tempdima=#2\@tempdima\Numero\t@Y\@tempdima
+\MakeVectorFrom\t@X\t@Y to#3\ignorespaces}%
+\def\ConjVect#1to#2{\GetCoord(#1)\t@X\t@Y
+\@tempdima=-\t@Y\p@\Numero\t@Y\@tempdima
+\MakeVectorFrom\t@X\t@Y to#2\ignorespaces}%
+\def\AddVect#1and#2to#3{\GetCoord(#1)\tu@X\tu@Y
+\GetCoord(#2)\td@X\td@Y \@tempdima\tu@X\p@
+\advance\@tempdima\td@X\p@ \Numero\t@X\@tempdima \@tempdima\tu@Y\p@
+\advance\@tempdima\td@Y\p@ \Numero\t@Y\@tempdima
+\MakeVectorFrom\t@X\t@Y to#3\ignorespaces}%
+\def\SubVect#1from#2to#3{\GetCoord(#1)\tu@X\tu@Y
+\GetCoord(#2)\td@X\td@Y \@tempdima\td@X\p@
+\advance\@tempdima-\tu@X\p@ \Numero\t@X\@tempdima \@tempdima\td@Y\p@
+\advance\@tempdima-\tu@Y\p@ \Numero\t@Y\@tempdima
+\MakeVectorFrom\t@X\t@Y to#3\ignorespaces}%
+\def\MultVect#1by{\@ifstar{\@ConjMultVect#1by}{\@MultVect#1by}}%
+\def\@MultVect#1by#2to#3{\GetCoord(#1)\tu@X\tu@Y
+\GetCoord(#2)\td@X\td@Y \@tempdima\tu@X\p@
+\@tempdimb\tu@Y\p@
+\@tempdimc=\td@X\@tempdima\advance\@tempdimc-\td@Y\@tempdimb
+\Numero\t@X\@tempdimc
+\@tempdimc=\td@Y\@tempdima\advance\@tempdimc\td@X\@tempdimb
+\Numero\t@Y\@tempdimc
+\MakeVectorFrom\t@X\t@Y to#3\ignorespaces}%
+\def\@ConjMultVect#1by#2to#3{\GetCoord(#1)\tu@X\tu@Y
+\GetCoord(#2)\td@X\td@Y \@tempdima\tu@X\p@ \@tempdimb\tu@Y\p@
+\@tempdimc=\td@X\@tempdima\advance\@tempdimc+\td@Y\@tempdimb
+\Numero\t@X\@tempdimc
+\@tempdimc=\td@X\@tempdimb\advance\@tempdimc-\td@Y\@tempdima
+\Numero\t@Y\@tempdimc
+\MakeVectorFrom\t@X\t@Y to#3\ignorespaces}
+\def\DivVect#1by#2to#3{\ModAndDirOfVect#2to\@Mod and\@Dir
+\DividE\p@ by\@Mod\p@ to\@Mod \ConjVect\@Dir to\@Dir
+\ScaleVect#1by\@Mod to\@tempa
+\MultVect\@tempa by\@Dir to#3\ignorespaces}%
+\def\Arc(#1)(#2)#3{\begingroup
+\@tdA=#3\p@ \ifdim\@tdA=\z@\else
+ \@Arc(#1)(#2)%
+\fi
+\endgroup\ignorespaces}%
+\def\@Arc(#1)(#2){%
+\ifdim\@tdA>\z@
+ \let\Segno+%
+\else
+ \@tdA=-\@tdA \let\Segno-%
+\fi
+\Numero\@gradi\@tdA
+\ifdim\@tdA>360\p@
+ \PackageWarning{curve2e}{The arc aperture is \@gradi\space degrees
+ and gets reduced\MessageBreak%
+ to the range 0--360 taking the sign into consideration}%
+ \@whiledim\@tdA>360\p@\do{\advance\@tdA-360\p@}%
+\fi
+\SubVect#2from#1to\@V \ModOfVect\@V to\@Raggio \CopyVect#2to\@pPun
+\CopyVect#1to\@Cent \GetCoord(\@pPun)\@pPunX\@pPunY
+\@@Arc
+\pIIe@strokeGraph\ignorespaces}%
+\def\@@Arc{%
+\pIIe@moveto{\@pPunX\unitlength}{\@pPunY\unitlength}%
+\ifdim\@tdA>180\p@
+ \advance\@tdA-180\p@
+ \Numero\@gradi\@tdA
+ \SubVect\@pPun from\@Cent to\@V
+ \AddVect\@V and\@Cent to\@sPun
+ \MultVect\@V by0,-1.3333333to\@V \if\Segno-\ScaleVect\@V by-1to\@V\fi
+ \AddVect\@pPun and\@V to\@pcPun
+ \AddVect\@sPun and\@V to\@scPun
+ \GetCoord(\@pcPun)\@pcPunX\@pcPunY
+ \GetCoord(\@scPun)\@scPunX\@scPunY
+ \GetCoord(\@sPun)\@sPunX\@sPunY
+ \pIIe@curveto{\@pcPunX\unitlength}{\@pcPunY\unitlength}%
+ {\@scPunX\unitlength}{\@scPunY\unitlength}%
+ {\@sPunX\unitlength}{\@sPunY\unitlength}%
+ \CopyVect\@sPun to\@pPun
+\fi
+\ifdim\@tdA>\z@
+ \DirFromAngle\@gradi to\@Dir \if\Segno-\ConjVect\@Dir to\@Dir \fi
+ \SubVect\@Cent from\@pPun to\@V
+ \MultVect\@V by\@Dir to\@V
+ \AddVect\@Cent and\@V to\@sPun
+ \@tdA=.5\@tdA \Numero\@gradi\@tdA
+ \DirFromAngle\@gradi to\@Phimezzi
+ \GetCoord(\@Phimezzi)\@cosphimezzi\@sinphimezzi
+ \@tdB=1.3333333\p@ \@tdB=\@Raggio\@tdB
+ \@tdC=\p@ \advance\@tdC -\@cosphimezzi\p@ \Numero\@tempa\@tdC
+ \@tdB=\@tempa\@tdB
+ \DividE\@tdB by\@sinphimezzi\p@ to\@cZ
+ \ScaleVect\@Phimezzi by\@cZ to\@Phimezzi
+ \ConjVect\@Phimezzi to\@mPhimezzi
+ \if\Segno-%
+ \let\@tempa\@Phimezzi
+ \let\@Phimezzi\@mPhimezzi
+ \let\@mPhimezzi\@tempa
+ \fi
+ \SubVect\@sPun from\@pPun to\@V
+ \DirOfVect\@V to\@V
+ \MultVect\@Phimezzi by\@V to\@Phimezzi
+ \AddVect\@sPun and\@Phimezzi to\@scPun
+ \ScaleVect\@V by-1to\@V
+ \MultVect\@mPhimezzi by\@V to\@mPhimezzi
+ \AddVect\@pPun and\@mPhimezzi to\@pcPun
+ \GetCoord(\@pcPun)\@pcPunX\@pcPunY
+ \GetCoord(\@scPun)\@scPunX\@scPunY
+ \GetCoord(\@sPun)\@sPunX\@sPunY
+ \pIIe@curveto{\@pcPunX\unitlength}{\@pcPunY\unitlength}%
+ {\@scPunX\unitlength}{\@scPunY\unitlength}%
+ {\@sPunX\unitlength}{\@sPunY\unitlength}%
+\fi}
+\def\VectorArc(#1)(#2)#3{\begingroup
+\@tdA=#3\p@ \ifdim\@tdA=\z@\else
+ \@VArc(#1)(#2)%
+\fi
+\endgroup\ignorespaces}%
+\def\VectorARC(#1)(#2)#3{\begingroup
+\@tdA=#3\p@
+\ifdim\@tdA=\z@\else
+ \@VARC(#1)(#2)%
+\fi
+\endgroup\ignorespaces}%
+\def\@VArc(#1)(#2){%
+\ifdim\@tdA>\z@
+ \let\Segno+%
+\else
+ \@tdA=-\@tdA \let\Segno-%
+\fi \Numero\@gradi\@tdA
+\ifdim\@tdA>360\p@
+ \PackageWarning{curve2e}{The arc aperture is \@gradi\space degrees
+ and gets reduced\MessageBreak%
+ to the range 0--360 taking the sign into consideration}%
+ \@whiledim\@tdA>360\p@\do{\advance\@tdA-360\p@}%
+\fi
+\SubVect#1from#2to\@V \ModOfVect\@V to\@Raggio \CopyVect#2to\@pPun
+\@tdE=\pIIe@FAW\@wholewidth \@tdE=\pIIe@FAL\@tdE
+\Numero\@Freccia\@tdE
+\DividE\@Freccia\p@ by \@Raggio\p@ to\DeltaGradi
+\@tdD=\DeltaGradi\p@
+\@tdD=57.29578\@tdD \Numero\DeltaGradi\@tdD
+\@tdD=\ifx\Segno--\fi\@gradi\p@ \Numero\@tempa\@tdD
+\DirFromAngle\@tempa to\@Dir
+\MultVect\@V by\@Dir to\@sPun
+\edef\@tempA{\ifx\Segno-\m@ne\else\@ne\fi}%
+\MultVect\@sPun by 0,\@tempA to\@vPun
+\DirOfVect\@vPun to\@Dir
+\AddVect\@sPun and #1 to \@sPun
+\GetCoord(\@sPun)\@tdX\@tdY
+\@tdD\ifx\Segno--\fi\DeltaGradi\p@
+\@tdD=.5\@tdD \Numero\DeltaGradi\@tdD
+\DirFromAngle\DeltaGradi to\@Dird
+\MultVect\@Dir by*\@Dird to\@Dir
+\GetCoord(\@Dir)\@xnum\@ynum
+\put(\@tdX,\@tdY){\vector(\@xnum,\@ynum){0}}%
+\@tdE =\ifx\Segno--\fi\DeltaGradi\p@
+\advance\@tdA -\@tdE \Numero\@gradi\@tdA
+\CopyVect#1to\@Cent \GetCoord(\@pPun)\@pPunX\@pPunY
+\@@Arc
+\pIIe@strokeGraph\ignorespaces}%
+\def\@VARC(#1)(#2){%
+\ifdim\@tdA>\z@
+ \let\Segno+%
+\else
+ \@tdA=-\@tdA \let\Segno-%
+\fi \Numero\@gradi\@tdA
+\ifdim\@tdA>360\p@
+ \PackageWarning{curve2e}{The arc aperture is \@gradi\space degrees
+ and gets reduced\MessageBreak%
+ to the range 0--360 taking the sign into consideration}%
+ \@whiledim\@tdA>360\p@\do{\advance\@tdA-360\p@}%
+\fi
+\SubVect#1from#2to\@V \ModOfVect\@V to\@Raggio \CopyVect#2to\@pPun
+\@tdE=\pIIe@FAW\@wholewidth \@tdE=0.8\@tdE
+\Numero\@Freccia\@tdE
+\DividE\@Freccia\p@ by \@Raggio\p@ to\DeltaGradi
+\@tdD=\DeltaGradi\p@ \@tdD=57.29578\@tdD \Numero\DeltaGradi\@tdD
+\@tdD=\ifx\Segno--\fi\@gradi\p@ \Numero\@tempa\@tdD
+\DirFromAngle\@tempa to\@Dir
+\MultVect\@V by\@Dir to\@sPun
+\edef\@tempA{\ifx\Segno-\m@ne\else\@ne\fi}%
+\MultVect\@sPun by 0,\@tempA to\@vPun
+\DirOfVect\@vPun to\@Dir
+\AddVect\@sPun and #1 to \@sPun
+\GetCoord(\@sPun)\@tdX\@tdY
+\@tdD\ifx\Segno--\fi\DeltaGradi\p@
+\@tdD=.5\@tdD \Numero\@tempB\@tdD
+\DirFromAngle\@tempB to\@Dird
+\MultVect\@Dir by*\@Dird to\@Dir
+\GetCoord(\@Dir)\@xnum\@ynum
+\put(\@tdX,\@tdY){\vector(\@xnum,\@ynum){0}}%
+\@tdE =\DeltaGradi\p@
+\advance\@tdA -2\@tdE \Numero\@gradi\@tdA
+\CopyVect#1to\@Cent \GetCoord(\@pPun)\@pPunX\@pPunY
+\SubVect\@Cent from\@pPun to \@V
+\edef\@tempa{\ifx\Segno-\else-\fi\@ne}%
+\MultVect\@V by0,\@tempa to\@vPun
+\@tdE\ifx\Segno--\fi\DeltaGradi\p@
+\Numero\@tempB{0.5\@tdE}%
+\DirFromAngle\@tempB to\@Dird
+\MultVect\@vPun by\@Dird to\@vPun
+\DirOfVect\@vPun to\@Dir\GetCoord(\@Dir)\@xnum\@ynum
+\put(\@pPunX,\@pPunY){\vector(\@xnum,\@ynum){0}}
+\edef\@tempa{\ifx\Segno--\fi\DeltaGradi}%
+\DirFromAngle\@tempa to \@Dir
+\SubVect\@Cent from\@pPun to\@V
+\MultVect\@V by\@Dir to\@V
+\AddVect\@Cent and\@V to\@pPun
+\GetCoord(\@pPun)\@pPunX\@pPunY
+\@@Arc
+\pIIe@strokeGraph\ignorespaces}%
+\def\CurveBetween#1and#2WithDirs#3and#4{%
+\StartCurveAt#1WithDir{#3}\relax
+\CurveTo#2WithDir{#4}\CurveFinish}%
+\def\StartCurveAt#1WithDir#2{%
+\begingroup
+\GetCoord(#1)\@tempa\@tempb
+\CopyVect\@tempa,\@tempb to\@Pzero
+\pIIe@moveto{\@tempa\unitlength}{\@tempb\unitlength}%
+\GetCoord(#2)\@tempa\@tempb
+\CopyVect\@tempa,\@tempb to\@Dzero
+\DirOfVect\@Dzero to\@Dzero}
+\def\ChangeDir<#1>{%
+\GetCoord(#1)\@tempa\@tempb
+\CopyVect\@tempa,\@tempb to\@Dzero
+\DirOfVect\@Dzero to\@Dzero
+\ignorespaces}
+\def\CurveFinish{\pIIe@strokeGraph\endgroup\ignorespaces}%
+\def\CurveTo#1WithDir#2{%
+\def\@Puno{#1}\def\@Duno{#2}\DirOfVect\@Duno to\@Duno
+\DistanceAndDirOfVect\@Puno minus\@Pzero to\@Chord and\@DirChord
+\MultVect\@Dzero by*\@DirChord to \@Dpzero
+\MultVect\@Duno by*\@DirChord to \@Dpuno
+\GetCoord(\@Dpzero)\@Xpzero\@Ypzero
+\GetCoord(\@Dpuno)\@Xpuno\@Ypuno
+\ifdim\@Xpzero\p@=\z@
+ \ifdim\@Xpuno\p@=\z@
+ \@tdA=0.666666\p@
+ \Numero\@Mcpzero{\@Chord\@tdA}%
+ \edef\@Mcpuno{\@Mcpzero}%
+ \else
+ \@tdA=0.666666\p@
+ \Numero\@Mcpzero{\@Chord\@tdA}%
+ \SetCPmodule\@Mcpuno from\@ne\@Chord\@Dpuno%
+ \fi
+\else
+ \ifdim\@Xpuno\p@=\z@
+ \@tdA=0.666666\p@
+ \Numero\@Mcpuno{\@Chord\@tdA}%
+ \SetCPmodule\@Mcpzero from\@ne\@Chord\@Dpzero%
+ \else
+ \ifdim\@Ypzero\p@=\z@
+ \@tdA=0.333333\p@
+ \Numero\@Mcpzero{\@Chord\@tdA}%
+ \ifdim\@Ypuno\p@=\z@
+ \edef\@Mcpuno{\@Mcpzero}%
+ \fi
+ \else
+ \ifdim\@Ypuno\p@=\z@
+ \@tdA=0.333333\p@
+ \Numero\@Mcpuno{\@Chord\@tdA}%
+ \SetCPmodule\@Mcpzero from\@ne\@Chord\@Dpzero
+ \else
+ \@tdA=\@Ypzero\p@ \@tdA=\@Ypuno\@tdA
+ \ifdim\@tdA>\z@
+ \ConjVect\@Dpuno to\@Dwpuno
+ \else
+ \edef\@Dwpuno{\@Dpuno}%
+ \fi
+ \GetCoord(\@Dwpuno)\@Xwpuno\@Ywpuno
+ \@tdA=\@Xpzero\p@ \@tdA=\@Ywpuno\@tdA
+ \@tdB=\@Xwpuno\p@ \@tdB=\@Ypzero\@tdB
+ \DividE\@tdB by\@tdA to\@Fact
+ \@tdC=\p@ \advance\@tdC-\@Fact\p@
+ \ifdim\@tdC<\z@ \@tdC=-\@tdC\fi
+ \DividE\p@ by \@Fact\p@ to\@Fact
+ \@tdD=\p@ \advance\@tdD-\@Fact\p@
+ \ifdim\@tdD<\z@ \@tdD=-\@tdD\fi
+ \ifdim\@tdD<0.0001\p@
+ \def\@factzero{1}%
+ \def\@factuno{1}%
+ \else
+ \DividE\p@ by\@tdC to\@factzero
+ \DividE\p@ by\@tdD to\@factuno
+ \fi
+ \SetCPmodule\@Mcpzero from\@factzero\@Chord\@Dpzero
+ \SetCPmodule\@Mcpuno from\@factuno\@Chord\@Dwpuno
+ \fi
+ \fi
+ \fi
+\fi
+\ScaleVect\@Dzero by\@Mcpzero to\@CPzero
+\AddVect\@Pzero and\@CPzero to\@CPzero
+\ScaleVect\@Duno by\@Mcpuno to\@CPuno
+\SubVect\@CPuno from\@Puno to\@CPuno
+\GetCoord(\@Puno)\@XPuno\@YPuno
+\GetCoord(\@CPzero)\@XCPzero\@YCPzero
+\GetCoord(\@CPuno)\@XCPuno\@YCPuno
+\pIIe@curveto{\@XCPzero\unitlength}{\@YCPzero\unitlength}%
+ {\@XCPuno\unitlength}{\@YCPuno\unitlength}%
+ {\@XPuno\unitlength}{\@YPuno\unitlength}%
+\CopyVect\@Puno to\@Pzero
+\CopyVect\@Duno to\@Dzero
+\ignorespaces}%
+\def\SetCPmodule#1from#2#3#4{%
+\GetCoord(#4)\t@X\t@Y
+\@tdA=#3\p@
+\@tdA=#2\@tdA
+\@tdA=1.333333\@tdA
+\@tdB=\p@ \advance\@tdB +\t@X\p@
+\DividE\@tdA by\@tdB to#1\relax
+\ignorespaces}%
+\def\Curve(#1)<#2>{%
+ \StartCurveAt#1WithDir{#2}%
+ \@ifnextchar\lp@r\@Curve{%
+ \PackageWarning{curve2e}{%
+ Curve specifications must contain at least two nodes!\Messagebreak
+ Please, control your Curve specifications\MessageBreak}}}
+\def\@Curve(#1)<#2>{%
+ \CurveTo#1WithDir{#2}%
+ \@ifnextchar\lp@r\@Curve{%
+ \@ifnextchar[\@ChangeDir\CurveFinish}}
+\def\@ChangeDir[#1]{\ChangeDir<#1>\@Curve}
+
+\endinput
+%%
+%% End of file `curve2e.sty'.