From 0064febc472a7423c4e27f5e6708263587c19b89 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sun, 14 Jun 2015 17:52:09 +0000
Subject: curve2e (6jun15)

git-svn-id: svn://tug.org/texlive/trunk@37532 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/curve2e/curve2e.sty | 156 +++++++++++++++++-------
 1 file changed, 109 insertions(+), 47 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/curve2e/curve2e.sty')

diff --git a/Master/texmf-dist/tex/latex/curve2e/curve2e.sty b/Master/texmf-dist/tex/latex/curve2e/curve2e.sty
index 41bd06afae4..e97c8f5f16b 100644
--- a/Master/texmf-dist/tex/latex/curve2e/curve2e.sty
+++ b/Master/texmf-dist/tex/latex/curve2e/curve2e.sty
@@ -6,22 +6,21 @@
 %%
 %% curve2e.dtx  (with options: `package')
 %%   ______________________________________________________
-%%   The curve2e package for LaTeX and XeLaTeX
-%%   Copyright (C) 2005-2012 Claudio Beccari
+%%   The curve2e package for LaTeX and XeLATeX
+%%   Copyright (C) 2010 Claudio Beccari
 %%   All rights reserved
 %% 
 %%   License information appended
 %% 
 %%
 %% File `curve2e.dtx'.
-%% Copyright (C)  2005--2011 Claudio Beccari  all rights reserved.
+%% Copyright (C)  2005--2015 Claudio Beccari  all rights reserved.
 %%
-\NeedsTeXFormat{LaTeX2e}
+\NeedsTeXFormat{LaTeX2e}[2014/05/01]
 \ProvidesPackage{curve2e}%
-        [2012/12/11 v.1.41 Extension package for pict2e]
+        [2015/06/06 v.1.42 Extension package for pict2e]
 \RequirePackage{color}
-\RequirePackageWithOptions{pict2e}[2011/04/01]
-
+\RequirePackageWithOptions{pict2e}[2014/01/01]
 \def\TRON{\tracingcommands\tw@ \tracingmacros\tw@}%
 \def\TROF{\tracingcommands\z@ \tracingmacros\z@}%
 \ifx\undefined\@tdA \newdimen\@tdA \fi
@@ -36,8 +35,8 @@
 \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){\moveto(0,0)
+      \pIIe@lineto{#1\unitlength}{#2\unitlength}\strokepath}%
 \def\segment(#1)(#2){\@killglue\polyline(#1)(#2)}%
 \def\line(#1)#2{\begingroup
   \@linelen #2\unitlength
@@ -48,9 +47,9 @@
       \DividE\ifdim\d@mX\p@<\z@-\fi\p@ by\d@mX\p@ to\sc@lelen
       \@linelen=\sc@lelen\@linelen
     \fi
-    \pIIe@moveto\z@\z@
+    \moveto(0,0)
     \pIIe@lineto{\d@mX\@linelen}{\d@mY\@linelen}%
-    \pIIe@strokeGraph
+    \strokepath
   \fi
 \endgroup\ignorespaces}%
 \ifx\Dline\undefined
@@ -62,7 +61,7 @@
    \SubVect\V@ttA from\V@ttB to\V@ttC
    \ModOfVect\V@ttC to\DlineMod
    \DividE\DlineMod\p@ by#5\p@ to\NumD
-   \NumA\expandafter\Integer\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
@@ -98,15 +97,15 @@
 \pIIe@concat\@xdim\@ydim{-\@ydim}\@xdim{\@xnum\@linelen}{\@ynum\@linelen}%
         \@linelen\z@
         \pIIe@vector
-        \pIIe@fillGraph
+        \fillpath
       \@linelen=\@tdB
       \@tdA=\pIIe@FAW\@wholewidth
       \@tdA=\pIIe@FAL\@tdA
       \advance\@linelen-\@tdA
       \ifdim\@linelen>\z@
-        \pIIe@moveto\z@\z@
+        \moveto(0,0)
         \pIIe@lineto{\@xnum\@linelen}{\@ynum\@linelen}%
-        \pIIe@strokeGraph\fi
+        \strokepath\fi
     \endgroup}
 \def\Vector(#1,#2){%
 \ifdim#1\p@=\z@\vector(#1,#2){#2}
@@ -117,19 +116,19 @@
 \expandafter\put\expandafter(#1){\expandafter\Vector\expandafter(\@tempa)}%
 \endgroup\ignorespaces}
 \let\lp@r( \let\rp@r)
-\providecommand*\polyline[1][\beveljoin]{\p@lylin@[#1]}
+\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}%
-    {Polygonal lines require at least two vertices!\MessageBreak
-     Control your polygonal line specification\MessageBreak}%
+    {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}{\pIIe@strokeGraph\ignorespaces}}
+    \@ifnextchar\lp@r{\p@lyline}{\strokepath\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
@@ -144,39 +143,48 @@
 \ifnum\count252>0\advance\count252-#2\relax
 \advance\@tempcnta-\count252\fi\edef#3{\number\@tempcnta}\ignorespaces}%
 \def\Integer#1.#2??{#1}%
-\ifx\DividE\undefined
-\ifx\dimexpr\undefined\else
-\def\DividE#1by#2to#3{%
-\begingroup
+\ifdefined\dimexpr
+    \unless\ifdefined\DividE
+\def\DividE#1by#2to#3{\bgroup
 \countdef\Num2254\relax \countdef\Den2252\relax
 \dimendef\@DimA 2254
 \Num=\p@ \@DimA=#2\relax \Den=\@DimA
 \ifnum\Den=\z@
-\edef\x{\noexpand\endgroup\noexpand\def\noexpand#3{\strip@pt\maxdimen}}%
+  \edef\x{\noexpand\endgroup\noexpand\def\noexpand#3{\strip@pt\maxdimen}}%
 \else
-\@DimA=#1\relax
-\@DimA=\dimexpr\@DimA*\Num/\Den\relax
-\edef\x{\noexpand\endgroup\noexpand\def\noexpand#3{\strip@pt\@DimA}}%
+  \@DimA=#1\relax
+  \@DimA=\dimexpr\@DimA*\Num/\Den\relax
+  \edef\x{\noexpand\egroup\noexpand\def\noexpand#3{\strip@pt\@DimA}}%
 \fi
-\x}
-\fi\fi
-\ifx\undefined\@Numero%
-  {\let\cc\catcode \cc`p=12\cc`t=12\gdef\@Numero#1pt{#1}}%
+\x\ignorespaces}%
 \fi
-\ifx\undefined\Numero
-  \def\Numero#1#2{\dimen254#2\relax
-  \edef#1{\expandafter\@Numero\the\dimen254}\ignorespaces}%
+    \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
+        \@DimA=\dimexpr\@DimA*\@DimB/\p@\relax
+        \edef\x{\noexpand\egroup\noexpand\def\noexpand#3{\strip@pt\@DimA}}%
+        \x\ignorespaces}%
+    \fi
+\fi
+
+\unless\ifdefined\Numero
+  \def\Numero#1#2{\dimen3254#2\relax
+  \edef#1{\strip@pt\dimen3254}\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
+\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{\begingroup%
+\def\SinOf#1to#2{\bgroup%
 \@tdA=#1\p@%
 \ifdim\@tdA>\z@%
   \@whiledim\@tdA>180\p@\do{\advance\@tdA -360\p@}%
@@ -211,10 +219,10 @@
     \fi
   \fi
 \fi
-\edef\endSinOf{\noexpand\endgroup
+\edef\endSinOf{\noexpand\egroup
   \noexpand\def\noexpand#2{\@tempA}\noexpand\ignorespaces}%
 \endSinOf}%
-\def\CosOf#1to#2{\begingroup%
+\def\CosOf#1to#2{\bgroup%
 \@tdA=#1\p@%
 \ifdim\@tdA>\z@%
   \@whiledim\@tdA>360\p@\do{\advance\@tdA -360\p@}%
@@ -249,10 +257,10 @@
     \fi
   \fi
 \fi
-\edef\endCosOf{\noexpand\endgroup
+\edef\endCosOf{\noexpand\egroup
     \noexpand\def\noexpand#2{\@tempA}\noexpand\ignorespaces}%
 \endCosOf}%
-\def\TanOf#1to#2{\begingroup%
+\def\TanOf#1to#2{\bgroup%
 \@tdA=#1\p@%
 \ifdim\@tdA>90\p@%
   \@whiledim\@tdA>90\p@\do{\advance\@tdA -180\p@}%
@@ -281,7 +289,7 @@
     \fi
   \fi
 \fi
-\edef\endTanOf{\noexpand\endgroup
+\edef\endTanOf{\noexpand\egroup
    \noexpand\def\noexpand#2{\@tempA}\noexpand\ignorespaces}%
 \endTanOf}%
 \def\MakeVectorFrom#1#2to#3{\edef#3{#1,#2}\ignorespaces}%
@@ -311,7 +319,7 @@
 \ignorespaces}%
 \def\DirOfVect#1to#2{\GetCoord(#1)\t@X\t@Y
 \ModOfVect#1to\@tempa
-\ifdim\@tempdimc=\z@\else
+\unless\ifdim\@tempdimc=\z@
    \DividE\t@X\p@ by\@tempdimc to\t@X
    \DividE\t@Y\p@ by\@tempdimc to\t@Y
 \fi
@@ -335,6 +343,60 @@
 \CosOf#1to\t@X
 \SinOf#1to\t@Y
 \MakeVectorFrom\t@X\t@Y to#2\ignorespaces}%
+\def\ArcTanOf#1to#2{\bgroup
+\edef\@tF{#1}\@tdF=\@tF\p@
+\@tdE=57.295779\p@
+\ifdim\@tdF=\z@\def\@tX{0}\else
+\edef\@tXX{1}%
+\MultiplY57.295779by\@tXX to \@tX
+\countdef\I 2323 \I=7\relax
+\@whilenum\I>0\do{\TanOf\@tX to\@tG
+\CosOf\@tX to \@tH
+\edef\@tG{\strip@pt\dimexpr\@tG\p@-\@tdF\relax}%
+\MultiplY\@tH by\@tH to\@tH
+\MultiplY\@tH by\@tG to \@tH
+\edef\@tXX{\strip@pt\dimexpr\@tXX\p@ - \@tH\p@\relax}%
+\MultiplY57.295779by\@tXX to\@tX
+\advance\I\m@ne}\fi
+\edef\x{\egroup\noexpand\edef\noexpand#2{\@tX}}\x}%
+\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
@@ -394,7 +456,7 @@
 \SubVect#2from#1to\@V \ModOfVect\@V to\@Raggio \CopyVect#2to\@pPun
 \CopyVect#1to\@Cent \GetCoord(\@pPun)\@pPunX\@pPunY
 \@@Arc
-\pIIe@strokeGraph\ignorespaces}%
+\strokepath\ignorespaces}%
 \def\@@Arc{%
 \pIIe@moveto{\@pPunX\unitlength}{\@pPunY\unitlength}%
 \ifdim\@tdA>180\p@
@@ -492,7 +554,7 @@
 \advance\@tdA -\@tdE \Numero\@gradi\@tdA
 \CopyVect#1to\@Cent \GetCoord(\@pPun)\@pPunX\@pPunY
 \@@Arc
-\pIIe@strokeGraph\ignorespaces}%
+\strokepath\ignorespaces}%
 \def\@VARC(#1)(#2){%
 \ifdim\@tdA>\z@
   \let\Segno+%
@@ -542,7 +604,7 @@
 \AddVect\@Cent and\@V to\@pPun
 \GetCoord(\@pPun)\@pPunX\@pPunY
 \@@Arc
-\pIIe@strokeGraph\ignorespaces}%
+\strokepath\ignorespaces}%
 \def\CurveBetween#1and#2WithDirs#3and#4{%
 \StartCurveAt#1WithDir{#3}\relax
 \CurveTo#2WithDir{#4}\CurveFinish}%
@@ -559,7 +621,7 @@
 \CopyVect\@tempa,\@tempb to\@Dzero
 \DirOfVect\@Dzero to\@Dzero
 \ignorespaces}
-\def\CurveFinish{\pIIe@strokeGraph\endgroup\ignorespaces}%
+\def\CurveFinish{\strokepath\endgroup\ignorespaces}%
 \def\CurveTo#1WithDir#2{%
 \def\@Puno{#1}\def\@Duno{#2}\DirOfVect\@Duno to\@Duno
 \DistanceAndDirOfVect\@Puno minus\@Pzero to\@Chord and\@DirChord
@@ -655,7 +717,7 @@
 \def\@ChangeDir[#1]{\ChangeDir<#1>\@Curve}
 
 %% 
-%% Copyright 2005-2012 Claudio Beccari
+%% Copyright 2005-2015 Claudio Beccari
 %% 
 %% Distributable under the LaTeX Project Public License,
 %% version 1.3c or higher (your choice). The latest version of
-- 
cgit v1.2.3

