From 0064febc472a7423c4e27f5e6708263587c19b89 Mon Sep 17 00:00:00 2001 From: Karl Berry 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