diff options
Diffstat (limited to 'macros/latex/contrib/curve2e/curve2e-v161.sty')
-rw-r--r-- | macros/latex/contrib/curve2e/curve2e-v161.sty | 906 |
1 files changed, 0 insertions, 906 deletions
diff --git a/macros/latex/contrib/curve2e/curve2e-v161.sty b/macros/latex/contrib/curve2e/curve2e-v161.sty deleted file mode 100644 index af7081e23d..0000000000 --- a/macros/latex/contrib/curve2e/curve2e-v161.sty +++ /dev/null @@ -1,906 +0,0 @@ -%% -%% This is file `curve2e-v161.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% curve2e.dtx (with options: `v161') -%% -%% Copyright (C) 2005--2019 Claudio Beccari all rights reserved. -%% License information appended -%% - - - -\NeedsTeXFormat{LaTeX2e}[2016/01/01] -\ProvidesPackage{curve2e-v161}% - [2019/02/07 v.1.61 Extension package for pict2e] - -\RequirePackage{color} -\RequirePackageWithOptions{pict2e}[2014/01/01] -\RequirePackage{xparse} -\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 -\gdef\linethickness#1{\@wholewidth#1\@halfwidth.5\@wholewidth\ignorespaces}% -\newcommand\defaultlinethickness[1]{\defaultlinewidth=#1\relax -\def\thicklines{\linethickness{\defaultlinewidth}}% -\def\thinlines{\linethickness{.5\defaultlinewidth}}% -\thinlines\ignorespaces} -\def\LIne(#1){{\GetCoord(#1)\@tX\@tY - \moveto(0,0) - \pIIe@lineto{\@tX\unitlength}{\@tY\unitlength}\strokepath}\ignorespaces}% -\def\segment(#1)(#2){\@killglue\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 - \moveto(0,0) - \pIIe@lineto{\d@mX\@linelen}{\d@mY\@linelen}% - \strokepath - \fi -\endgroup\ignorespaces}% -\ifx\Dashline\undefined -\def\Dashline{\@ifstar{\Dashline@@}{\Dashline@}} -\def\Dashline@(#1)(#2)#3{% -\bgroup - \countdef\NumA3254\countdef\NumB3252\relax - \GetCoord(#1)\@tA\@tB \MakeVectorFrom\@tA\@tB to\V@ttA - \GetCoord(#2)\@tA\@tB \MakeVectorFrom\@tA\@tB to\V@ttB - \SubVect\V@ttA from\V@ttB to\V@ttC - \ModOfVect\V@ttC to\DlineMod - \DivideFN\DlineMod by#3 to\NumD - \NumA\expandafter\Integer\NumD.?? - \ifodd\NumA\else\advance\NumA\@ne\fi - \NumB=\NumA \divide\NumB\tw@ - \DividE\DlineMod\p@ by\NumA\p@ to\D@shMod - \DividE\p@ by\NumA\p@ to \@tempa - \MultVect\V@ttC by\@tempa,0 to\V@ttB - \MultVect\V@ttB by 2,0 to\V@ttC - \advance\NumB\@ne - \edef\@mpt{\noexpand\egroup - \noexpand\multiput(\V@ttA)(\V@ttC){\number\NumB}% - {\noexpand\LIne(\V@ttB)}}% - \@mpt\ignorespaces}% -\let\Dline\Dashline - -\def\Dashline@@(#1)(#2)#3{\put(#1){\Dashline@(0,0)(#2){#3}}} -\fi -\ifx\Dotline\undefined -\def\Dotline{\@ifstar{\Dotline@@}{\Dotline@}} -\def\Dotline@(#1)(#2)#3{% -\bgroup - \countdef\NumA 3254\relax \countdef\NumB 3255\relax - \GetCoord(#1)\@tA\@tB \MakeVectorFrom\@tA\@tB to\V@ttA - \GetCoord(#2)\@tA\@tB \MakeVectorFrom\@tA\@tB to\V@ttB - \SubVect\V@ttA from\V@ttB to\V@ttC - \ModOfVect\V@ttC to\DotlineMod - \DivideFN\DotlineMod by#3 to\NumD - \NumA=\expandafter\Integer\NumD.?? - \DivVect\V@ttC by\NumA,0 to\V@ttB - \advance\NumA\@ne - \edef\@mpt{\noexpand\egroup - \noexpand\multiput(\V@ttA)(\V@ttB){\number\NumA}% - {\noexpand\makebox(0,0){\noexpand\circle*{0.5}}}}% - \@mpt\ignorespaces}% - -\def\Dotline@@(#1)(#2)#3{\put(#1){\Dotline@(0,0)(#2){#3}}} -\fi -\AtBeginDocument{\@ifpackageloaded{eso-pic}{% -\renewcommand\LenToUnit[1]{\strip@pt\dimexpr#1*\p@/\unitlength}}{}} - -\def\GetCoord(#1)#2#3{% -\expandafter\SplitNod@\expandafter(#1)#2#3\ignorespaces} -\def\isnot@polar#1:#2!!{\def\@tempOne{#2}\ifx\@tempOne\empty -\expandafter\@firstoftwo\else -\expandafter\@secondoftwo\fi -{\SplitNod@@}{\SplitPolar@@}} - -\def\SplitNod@(#1)#2#3{\isnot@polar#1:!!(#1)#2#3}% -\def\SplitNod@@(#1,#2)#3#4{\edef#3{#1}\edef#4{#2}}% -\def\SplitPolar@@(#1:#2)#3#4{\DirFromAngle#1to\@DirA -\ScaleVect\@DirA by#2to\@DirA -\expandafter\SplitNod@@\expandafter(\@DirA)#3#4} - -\let\originalput\put -\def\put(#1){\bgroup\GetCoord(#1)\@tX\@tY -\edef\x{\noexpand\egroup\noexpand\originalput(\@tX,\@tY)}\x} - -\let\originalmultiput\multiput -\let\original@multiput\@multiput - -\long\def\@multiput(#1)#2#3{\bgroup\GetCoord(#1)\@mptX\@mptY -\edef\x{\noexpand\egroup\noexpand\original@multiput(\@mptX,\@mptY)}% -\x{#2}{#3}\ignorespaces} - -\gdef\multiput(#1)#2{\bgroup\GetCoord(#1)\@mptX\@mptY -\edef\x{\noexpand\egroup\noexpand\originalmultiput(\@mptX,\@mptY)}\x(}%) - \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 - \fillpath - \@linelen=\@tdB - \@tdA=\pIIe@FAW\@wholewidth - \@tdA=\pIIe@FAL\@tdA - \advance\@linelen-\@tdA - \ifdim\@linelen>\z@ - \moveto(0,0) - \pIIe@lineto{\@xnum\@linelen}{\@ynum\@linelen}% - \strokepath\fi - \endgroup} -\def\Vector(#1){{% -\GetCoord(#1)\@tX\@tY -\ifdim\@tX\p@=\z@\vector(\@tX,\@tY){\@tY} -\else -\vector(\@tX,\@tY){\@tX}\fi}} -\def\VECTOR(#1)(#2){\begingroup -\SubVect#1from#2to\@tempa -\expandafter\put\expandafter(#1){\expandafter\Vector\expandafter(\@tempa)}% -\endgroup\ignorespaces} -\let\lp@r( \let\rp@r) -\renewcommand*\polyline[1][\beveljoin]{\p@lylin@[#1]} - -\def\p@lylin@[#1](#2){\@killglue#1\GetCoord(#2)\d@mX\d@mY - \pIIe@moveto{\d@mX\unitlength}{\d@mY\unitlength}% - \@ifnextchar\lp@r{\p@lyline}{% - \PackageWarning{curve2e}% - {Polylines require at least two vertices!\MessageBreak - Control your polyline 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}{\strokepath\ignorespaces}} -\providecommand\polygon{} -\RenewDocumentCommand\polygon{s O{\beveljoin} }{\@killglue\begingroup -\IfBooleanTF{#1}{\@tempswatrue}{\@tempswafalse}% -\@polygon[#2]} - -\def\@polygon[#1](#2){\@killglue#1\GetCoord(#2)\d@mX\d@mY - \pIIe@moveto{\d@mX\unitlength}{\d@mY\unitlength}% - \@ifnextchar\lp@r{\@@polygon}{% - \PackageWarning{curve2e}% - {Polygons require at least two vertices!\MessageBreak - Control your polygon specification\MessageBreak}% - \ignorespaces}} - - \def\@@polygon(#1){\GetCoord(#1)\d@mX\d@mY - \pIIe@lineto{\d@mX\unitlength}{\d@mY\unitlength}% - \@ifnextchar\lp@r{\@@polygon}{\pIIe@closepath - \if@tempswa\pIIe@fillGraph\else\pIIe@strokeGraph\fi - \endgroup - \ignorespaces}} -\def\GraphGrid(#1,#2){\bgroup\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}% -\egroup\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}% -\ifdefined\dimexpr - \unless\ifdefined\DividE -\def\DividE#1by#2to#3{\bgroup -\dimendef\Num2254\relax \dimendef\Den2252\relax -\dimendef\@DimA 2250 -\Num=\p@ \Den=#2\relax -\ifdim\Den=\z@ - \edef\x{\noexpand\endgroup\noexpand\def\noexpand#3{\strip@pt\maxdimen}}% -\else - \@DimA=#1\relax - \edef\x{% - \noexpand\egroup\noexpand\def\noexpand#3{% - \strip@pt\dimexpr\@DimA*\Num/\Den\relax}}% -\fi -\x\ignorespaces}% -\fi - \unless\ifdefined\DivideFN - \def\DivideFN#1by#2to#3{\DividE#1\p@ by#2\p@ to{#3}}% - \fi - \unless\ifdefined\MultiplY - \def\MultiplY#1by#2to#3{\bgroup - \dimendef\@DimA 2254 \dimendef\@DimB2255 - \@DimA=#1\p@\relax \@DimB=#2\p@\relax - \edef\x{% - \noexpand\egroup\noexpand\def\noexpand#3{% - \strip@pt\dimexpr\@DimA*\@DimB/\p@\relax}}% - \x\ignorespaces}% - \let\MultiplyFN\MultiplY - \fi -\fi - -\unless\ifdefined\Numero - \def\Numero#1#2{\bgroup\dimen3254=#2\relax - \edef\x{\noexpand\egroup\noexpand\edef\noexpand#1{% - \strip@pt\dimen3254}}\x\ignorespaces}% -\fi -\def\g@tTanCotanFrom#1to#2and#3{% -\DividE 114.591559\p@ by#1to\X@ \@tdB=\X@\p@ -\countdef\I=2546\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{\bgroup% -\@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@ - \def\@tempA{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@ - \def\@tempA{\Segno1}% - \else - \ifdim\@tdA=180\p@ - \def\@tempA{0}% - \else - \ifdim\@tdA<\p@ - \@tdA=\Segno0.0174533\@tdA - \DividE\@tdA by\p@ to \@tempA% - \else - \g@tTanCotanFrom\@tdA to\T and\Tp - \@tdA=\T\p@ \advance\@tdA \Tp\p@ - \DividE \Segno2\p@ by\@tdA to \@tempA% - \fi - \fi - \fi -\fi -\edef\endSinOf{\noexpand\egroup - \noexpand\def\noexpand#2{\@tempA}\noexpand\ignorespaces}% -\endSinOf}% -\def\CosOf#1to#2{\bgroup% -\@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@ - \def\@tempA{\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\@tempA% - \else - \ifdim\@tdA=90\p@ - \def\@tempA{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\@tempA% - \fi - \fi -\fi -\edef\endCosOf{\noexpand\egroup - \noexpand\def\noexpand#2{\@tempA}\noexpand\ignorespaces}% -\endCosOf}% -\def\TanOf#1to#2{\bgroup% -\@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@% - \def\@tempA{0}% -\else - \ifdim\@tdA>\z@ - \def\Segno{+}% - \else - \def\Segno{-}% - \@tdA=-\@tdA - \fi - \ifdim\@tdA=90\p@ - \def\@tempA{\Segno16383.99999}% - \else - \ifdim\@tdA<\p@ - \@tdA=\Segno0.0174533\@tdA - \DividE\@tdA by\p@ to\@tempA% - \else - \g@tTanCotanFrom\@tdA to\T and\Tp - \@tdA\Tp\p@ \advance\@tdA -\T\p@ - \DividE\Segno2\p@ by\@tdA to\@tempA% - \fi - \fi -\fi -\edef\endTanOf{\noexpand\egroup - \noexpand\def\noexpand#2{\@tempA}\noexpand\ignorespaces}% -\endTanOf}% -\def\ArcTanOf#1to#2{\bgroup -\countdef\Inverti 4444\Inverti=0 -\def\Segno{} -\edef\@tF{#1}\@tdF=\@tF\p@ \@tdE=57.295778\p@ -\@tdD=\ifdim\@tdF<\z@ -\@tdF\def\Segno{-}\else\@tdF\fi -\ifdim\@tdD>\p@ -\Inverti=\@ne -\@tdD=\dimexpr\p@*\p@/\@tdD\relax -\fi -\unless\ifdim\@tdD>0.02\p@ - \def\@tX{\strip@pt\dimexpr57.295778\@tdD\relax}% -\else - \edef\@tX{45}\relax - \countdef\I 2523 \I=9\relax - \@whilenum\I>0\do{\TanOf\@tX to\@tG - \edef\@tG{\strip@pt\dimexpr\@tG\p@-\@tdD\relax}\relax - \MultiplY\@tG by57.295778to\@tG - \CosOf\@tX to\@tH - \MultiplY\@tH by\@tH to\@tH - \MultiplY\@tH by\@tG to \@tH - \edef\@tX{\strip@pt\dimexpr\@tX\p@ - \@tH\p@\relax}\relax - \advance\I\m@ne}% -\fi -\ifnum\Inverti=\@ne -\edef\@tX{\strip@pt\dimexpr90\p@-\@tX\p@\relax} -\fi -\edef\x{\egroup\noexpand\edef\noexpand#2{\Segno\@tX}}\x\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=\z@ - \ifdim\@tempdimb=\z@ - \def\@T{0}\@tempdimc=\z@ - \else - \def\@T{0}\@tempdimc=\@tempdimb - \fi -\else - \ifdim\@tempdima>\@tempdimb - \DividE\@tempdimb by\@tempdima to\@T - \@tempdimc=\@tempdima - \else - \DividE\@tempdima by\@tempdimb to\@T - \@tempdimc=\@tempdimb - \fi -\fi -\unless\ifdim\@tempdimc=\z@ - \unless\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 -\fi -\Numero#2\@tempdimc -\ignorespaces}% -\def\DirOfVect#1to#2{\GetCoord(#1)\t@X\t@Y -\ModOfVect#1to\@tempa -\unless\ifdim\@tempdimc=\z@ - \DividE\t@X\p@ by\@tempdimc to\t@X - \DividE\t@Y\p@ by\@tempdimc to\t@Y -\fi -\MakeVectorFrom\t@X\t@Y to#2\ignorespaces}% -\def\ModAndDirOfVect#1to#2and#3{% -\GetCoord(#1)\t@X\t@Y -\ModOfVect#1to#2% -\ifdim\@tempdimc=\z@\else - \DividE\t@X\p@ by\@tempdimc to\t@X - \DividE\t@Y\p@ by\@tempdimc to\t@Y -\fi -\MakeVectorFrom\t@X\t@Y to#3\ignorespaces}% -\def\DistanceAndDirOfVect#1minus#2to#3and#4{% -\SubVect#2from#1to\@tempa -\ModAndDirOfVect\@tempa to#3and#4\ignorespaces}% -\def\XpartOfVect#1to#2{% -\GetCoord(#1)#2\@tempa\ignorespaces}% -\def\YpartOfVect#1to#2{% -\GetCoord(#1)\@tempa#2\ignorespaces}% -\def\DirFromAngle#1to#2{% -\CosOf#1to\t@X -\SinOf#1to\t@Y -\MakeVectorFrom\t@X\t@Y to#2\ignorespaces}% -\def\ArgOfVect#1to#2{\bgroup\GetCoord(#1){\t@X}{\t@Y}% -\def\s@gno{}\def\addflatt@ngle{0} -\ifdim\t@X\p@=\z@ - \ifdim\t@Y\p@=\z@ - \def\ArcTan{0}% - \else - \def\ArcTan{90}% - \ifdim\t@Y\p@<\z@\def\s@gno{-}\fi - \fi -\else - \ifdim\t@Y\p@=\z@ - \ifdim\t@X\p@<\z@ - \def\ArcTan{180}% - \else - \def\ArcTan{0}% - \fi - \else - \ifdim\t@X\p@<\z@% - \def\addflatt@ngle{180}% - \edef\t@X{\strip@pt\dimexpr-\t@X\p@}% - \edef\t@Y{\strip@pt\dimexpr-\t@Y\p@}% - \ifdim\t@Y\p@<\z@ - \def\s@gno{-}% - \edef\t@Y{-\t@Y}% - \fi - \fi - \DivideFN\t@Y by\t@X to \t@A - \ArcTanOf\t@A to\ArcTan - \fi -\fi -\edef\ArcTan{\unless\ifx\s@gno\empty\s@gno\fi\ArcTan}% -\unless\ifnum\addflatt@ngle=0\relax - \edef\ArcTan{% - \strip@pt\dimexpr\ArcTan\p@\ifx\s@gno\empty-\else+\fi - \addflatt@ngle\p@\relax}% -\fi -\edef\x{\noexpand\egroup\noexpand\edef\noexpand#2{\ArcTan}}% -\x\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@ -\unless\ifdim\@tdA=\z@ - \@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 -\strokepath\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 -\DividE\@tdE by \@Raggio\unitlength 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 -\strokepath\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 -\DividE\@tdE by \@Raggio\unitlength to\DeltaGradi -\@tdD=\DeltaGradi\p@ \@tdD=57.29578\@tdD \Numero\DeltaGradi\@tdD -\@tdD=\if\Segno--\fi\@gradi\p@ \Numero\@tempa\@tdD -\DirFromAngle\@tempa to\@Dir -\MultVect\@V by\@Dir to\@sPun% corrects the end point -\edef\@tempA{\if\Segno--\fi1}% -\MultVect\@sPun by 0,\@tempA to\@vPun -\DirOfVect\@vPun to\@Dir -\AddVect\@sPun and #1 to \@sPun -\GetCoord(\@sPun)\@tdX\@tdY -\@tdD\if\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}}% end point arrowt ip -\@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{\if\Segno-\else-\fi\@ne}% -\MultVect\@V by0,\@tempa to\@vPun -\@tdE\if\Segno--\fi\DeltaGradi\p@ -\Numero\@tempB{0.5\@tdE}% -\DirFromAngle\@tempB to\@Dird -\MultVect\@vPun by\@Dird to\@vPun% corrects the starting point -\DirOfVect\@vPun to\@Dir\GetCoord(\@Dir)\@xnum\@ynum -\put(\@pPunX,\@pPunY){\vector(\@xnum,\@ynum){0}}% starting point arrow tip -\edef\@tempa{\if\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 -\strokepath\ignorespaces}% -\def\CurveBetween#1and#2WithDirs#3and#4{% -\StartCurveAt#1WithDir{#3}\relax -\CurveTo#2WithDir{#4}\CurveFinish\ignorespaces}% -\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 -\ignorespaces} -\def\ChangeDir<#1>{% -\GetCoord(#1)\@tempa\@tempb -\CopyVect\@tempa,\@tempb to\@Dzero -\DirOfVect\@Dzero to\@Dzero -\ignorespaces} -\def\CurveFinish{\strokepath\endgroup\ignorespaces}% -\def\FillCurve{\fillpath\endgroup\ignorespaces} -\def\CurveEnd{\fillstroke\endgroup\ignorespaces} -\def\CbezierTo#1WithDir#2AndDists#3And#4{% -\GetCoord(#1)\@tX\@tY \MakeVectorFrom\@tX\@tY to\@Puno -\GetCoord(#2)\@tX\@tY \MakeVectorFrom\@tX\@tY to \@Duno -\DirOfVect\@Duno to\@Duno -\ScaleVect\@Dzero by#3to\@Czero \AddVect\@Pzero and\@Czero to\@Czero -\ScaleVect\@Duno by-#4to \@Cuno \AddVect\@Puno and\@Cuno to \@Cuno -\GetCoord(\@Czero)\@XCzero\@YCzero -\GetCoord(\@Cuno)\@XCuno\@YCuno -\GetCoord(\@Puno)\@XPuno\@YPuno -\pIIe@curveto{\@XCzero\unitlength}{\@YCzero\unitlength}% - {\@XCuno\unitlength}{\@YCuno\unitlength}% - {\@XPuno\unitlength}{\@YPuno\unitlength}% -\CopyVect\@Puno to\@Pzero -\CopyVect\@Duno to\@Dzero -\ignorespaces}% -\def\CbezierBetween#1And#2WithDirs#3And#4UsingDists#5And#6{% -\StartCurveAt#1WithDir{#3}\relax -\CbezierTo#2WithDir#4AndDists#5And{#6}\CurveFinish} - -\def\@isTension#1;#2!!{\def\@tempA{#1}% -\def\@tempB{#2}\unless\ifx\@tempB\empty\strip@semicolon#2\fi} -\def\strip@semicolon#1;{\def\@tempB{#1}} -\def\CurveTo#1WithDir#2{% -\def\@Tuno{1}\def\@Tzero{1}\relax -\edef\@Puno{#1}\@isTension#2;!!% -\expandafter\DirOfVect\@tempA to\@Duno -\bgroup\unless\ifx\@tempB\empty\GetCoord(\@tempB)\@Tzero\@Tuno\fi -\DistanceAndDirOfVect\@Puno minus\@Pzero to\@Chord and\@DirChord -\MultVect\@Dzero by*\@DirChord to \@Dpzero -\MultVect\@Duno by*\@DirChord to \@Dpuno -\GetCoord(\@Dpzero)\@DXpzero\@DYpzero -\GetCoord(\@Dpuno)\@DXpuno\@DYpuno -\DivideFN\@Chord by2 to\@semichord -\ifdim\@DXpzero\p@=\z@ - \@tdA=1.333333\p@ - \Numero\@KCzero{\@semichord\@tdA}% -\fi -\ifdim\@DYpzero\p@=\z@ - \@tdA=1.333333\p@ - \Numero\@Kpzero{\@semichord\@tdA}% -\fi -\unless\ifdim\@DXpzero\p@=\z@ - \unless\ifdim\@DYpzero\p@=\z@ - \edef\@CosDzero{\ifdim\@DXpzero\p@<\z@ -\fi\@DXpzero}% - \edef\@SinDzero{\ifdim\@DYpzero\p@<\z@ -\fi\@DYpzero}% - \@tdA=\@semichord\p@ \@tdA=1.333333\@tdA - \DividE\@tdA by\@SinDzero\p@ to \@KCzero - \@tdA=\dimexpr(\p@-\@CosDzero\p@)\relax - \DividE\@KCzero\@tdA by\@SinDzero\p@ to \@KCzero - \fi -\fi -\MultiplyFN\@KCzero by \@Tzero to \@KCzero -\ScaleVect\@Dzero by\@KCzero to\@CPzero -\AddVect\@Pzero and\@CPzero to\@CPzero -\ifdim\@DXpuno\p@=\z@ - \@tdA=-1.333333\p@ - \Numero\@KCuno{\@semichord\@tdA}% -\fi -\ifdim\@DYpuno\p@=\z@ - \@tdA=-1.333333\p@ - \Numero\@KCuno{\@semichord\@tdA}% -\fi -\unless\ifdim\@DXpuno\p@=\z@ - \unless\ifdim\@DYpuno\p@=\z@ - \edef\@CosDuno{\ifdim\@DXpuno\p@<\z@ -\fi\@DXpuno}% - \edef\@SinDuno{\ifdim\@DYpuno\p@<\z@ -\fi\@DYpuno}% - \@tdA=\@semichord\p@ \@tdA=-1.333333\@tdA - \DividE\@tdA by \@SinDuno\p@ to \@KCuno - \@tdA=\dimexpr(\p@-\@CosDuno\p@)\relax - \DividE\@KCuno\@tdA by\@SinDuno\p@ to \@KCuno - \fi -\fi -\MultiplyFN\@KCuno by \@Tuno to \@KCuno -\ScaleVect\@Duno by\@KCuno to\@CPuno -\AddVect\@Puno and\@CPuno 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}\egroup -\CopyVect\@Puno to\@Pzero -\CopyVect\@Duno to\@Dzero -\ignorespaces}% -\def\Curve{\@ifstar{\let\fillstroke\fillpath\Curve@}% -{\let\fillstroke\strokepath\Curve@}} -\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\CurveEnd}} -\def\@ChangeDir[#1]{\ChangeDir<#1>\@Curve} -\def\Qurve{\@ifstar{\let\fillstroke\fillpath\Qurve@}% -{\let\fillstroke\strokepath\Qurve@}} - -\def\Qurve@(#1)<#2>{% - \StartCurveAt#1WithDir{#2}% - \@ifnextchar\lp@r\@Qurve{% - \PackageWarning{curve2e}{% - Quadratic curve specifications must contain at least - two nodes!\Messagebreak - Please, control your Qurve specifications\MessageBreak}}}% -\def\@Qurve(#1)<#2>{\QurveTo#1WithDir{#2}% - \@ifnextchar\lp@r\@Qurve{% - \@ifnextchar[\@ChangeQDir\CurveEnd}}% -\def\@ChangeQDir[#1]{\ChangeDir<#1>\@Qurve}% -\def\QurveTo#1WithDir#2{% -\edef\@Puno{#1}\DirOfVect#2to\@Duno\bgroup -\DistanceAndDirOfVect\@Puno minus\@Pzero to\@Chord and\@DirChord -\MultVect\@Dzero by*\@Duno to \@Scalar -\YpartOfVect\@Scalar to \@YScalar -\ifdim\@YScalar\p@=\z@ -\PackageWarning{curve2e}% - {Quadratic Bezier arcs cannot have their starting\MessageBreak - and ending directions parallel or antiparallel with\MessageBreak - each other. This arc is skipped and replaced with - a dotted line.\MessageBreak}% - \Dotline(\@Pzero)(\@Puno){2}\relax -\else -\MultVect\@Dzero by*\@DirChord to \@Dpzero -\MultVect\@Duno by*\@DirChord to \@Dpuno -\GetCoord(\@Dpzero)\@DXpzero\@DYpzero -\GetCoord(\@Dpuno)\@DXpuno\@DYpuno -\MultiplyFN\@DXpzero by\@DXpuno to\@XXD -\MultiplyFN\@DYpzero by\@DYpuno to\@YYD -\unless\ifdim\@YYD\p@<\z@\ifdim\@XXD\p@<\z@ -\PackageWarning{curve2e}% - {Quadratic Bezier arcs cannot have inflection points\MessageBreak - Therefore the tangents to the starting and ending arc\MessageBreak - points cannot be directed to the same half plane.\MessageBreak - This arc is skipped and replaced by a dotted line\MessageBreak}% - \Dotline(\@Pzero)(\@Puno){2}\fi -\else -\edef\@CDzero{\@DXpzero}\relax -\edef\@SDzero{\@DYpzero}\relax -\edef\@CDuno{\@DXpuno}\relax -\edef\@SDuno{\@DYpuno}\relax -\MultiplyFN\@SDzero by\@CDuno to\@tempA -\MultiplyFN\@SDuno by\@CDzero to\@tempB -\edef\@tempA{\strip@pt\dimexpr\@tempA\p@-\@tempB\p@}\relax -\@tdA=\@SDuno\p@ \@tdB=\@Chord\p@ \@tdC=\@tempA\p@ -\edef\@tempC{\strip@pt\dimexpr \@tdA*\@tdB/\@tdC}\relax -\MultiplyFN\@tempC by\@CDzero to \@XC -\MultiplyFN\@tempC by\@SDzero to \@YC -\ModOfVect\@XC,\@YC to\@KC -\ScaleVect\@Dzero by\@KC to\@CP -\AddVect\@Pzero and\@CP to\@CP -\GetCoord(\@Pzero)\@XPzero\@YPzero -\GetCoord(\@Puno)\@XPuno\@YPuno -\GetCoord(\@CP)\@XCP\@YCP -\@ovxx=\@XPzero\unitlength \@ovyy=\@YPzero\unitlength -\@ovdx=\@XCP\unitlength \@ovdy=\@YCP\unitlength -\@xdim=\@XPuno\unitlength \@ydim=\@YPuno\unitlength - \pIIe@bezier@QtoC\@ovxx\@ovdx\@ovro - \pIIe@bezier@QtoC\@ovyy\@ovdy\@ovri - \pIIe@bezier@QtoC\@xdim\@ovdx\@clnwd - \pIIe@bezier@QtoC\@ydim\@ovdy\@clnht - \pIIe@moveto\@ovxx\@ovyy - \pIIe@curveto\@ovro\@ovri\@clnwd\@clnht\@xdim\@ydim -\fi\fi\egroup -\CopyVect\@Puno to\@Pzero -\CopyVect\@Duno to\@Dzero -\ignorespaces} - - -%% -%% -%% Distributable under the LaTeX Project Public License, -%% version 1.3c or higher (your choice). The latest version of -%% this license is at: http://www.latex-project.org/lppl.txt -%% -%% This work is "author-maintained" -%% -%% This work consists of file curve2e.dtx, and the derived files -%% curve2e.sty and curve2e.pdf, plus the auxiliary derived files -%% README.txt and ltxdoc.cfg, although the latter can be freely -%% modified before running pdfltex, in order to include or exclude -%% typesetting of the bundle code. -%% -%% -%% End of file `curve2e-v161.sty'. |