summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/ellipse
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-12-06 23:47:59 +0000
committerKarl Berry <karl@freefriends.org>2015-12-06 23:47:59 +0000
commit780c3bdde06307c3e02c609e6a1ed4d1665aef61 (patch)
tree368cd533e2f14db6f4503575a2d43ee971b317a3 /Master/texmf-dist/tex/latex/ellipse
parent8fe2a43459967608180aff4cca4f63cd25c8ea5e (diff)
ellipse (6dec15)
git-svn-id: svn://tug.org/texlive/trunk@39025 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/ellipse')
-rw-r--r--Master/texmf-dist/tex/latex/ellipse/ellipse.sty318
1 files changed, 318 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/ellipse/ellipse.sty b/Master/texmf-dist/tex/latex/ellipse/ellipse.sty
new file mode 100644
index 00000000000..7c0ecb3e915
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/ellipse/ellipse.sty
@@ -0,0 +1,318 @@
+%%
+%% This is file `ellipse.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ellipse.dtx (with options: `package')
+%%
+%% Copyright (C) 2015
+%% Daan Leijen
+%%
+%% 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".
+%%
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{ellipse}
+ [2004/11/05 v1.0 .dtx ellipse file]
+\RequirePackage{pict2e}
+
+\providecommand*\pIIe@csedef[1]{\expandafter\edef\csname #1\endcsname}
+\newcommand*\pIIe@ellip@csqrt[3]{%
+ \@ovxx=#1\relax
+ \ifdim\@ovxx<\z@\@ovxx-\@ovxx\fi
+ \@ovyy=#2\relax
+ \ifdim\@ovyy<\z@\@ovyy-\@ovyy\fi
+ \edef\pIIe@csname{@csqrt(\number\@ovxx,\number\@ovyy)}%
+ \expandafter\ifx\csname\pIIe@csname\endcsname\relax
+ \pIIe@ellip@csqrt@%
+ \pIIe@csedef{\pIIe@csname}{\the\dimen@}%
+ #3\dimen@
+ \else
+ #3\dimexpr\csname\pIIe@csname\endcsname\relax
+ \fi
+}
+\newcommand*\pIIe@ellip@csqrt@{%
+ \@ovdx\@ovxx
+ \advance\@ovdx by \@ovyy
+ \dimen@0.7071067\@ovdx
+ \ifdim\dimen@<\@ovyy\dimen@\@ovyy\fi
+ \ifdim\dimen@<\@ovxx\dimen@\@ovxx\fi
+ \ifdim\@ovdx<128\p@
+ \edef\@tempa{\strip@pt\@ovxx}%
+ \@ovxx\@tempa\@ovxx
+ \edef\@tempa{\strip@pt\@ovyy}%
+ \@ovyy\@tempa\@ovyy
+ \advance\@ovxx by \@ovyy
+ \advance\dimen@ by \dimexpr1pt * \@ovxx/\dimen@\relax
+ \divide\dimen@ by 2%
+ \advance\dimen@ by \dimexpr1pt * \@ovxx/\dimen@\relax
+ \divide\dimen@ by 2%
+ \fi
+}
+
+\newcommand*\pIIe@atan@{%
+ \@tempdima\dimen@
+ \@tempdimb\@tempdima
+ \ifdim\@tempdimb<\z@\@tempdimb-\@tempdimb\fi
+ \dimen@0.0663\@tempdimb
+ \advance\dimen@ 0.2447pt\relax
+ \advance\@tempdimb -1pt\relax
+ \edef\@tempa{\strip@pt\@tempdimb}%
+ \dimen@\@tempa\dimen@
+ \edef\@tempa{\strip@pt\@tempdima}%
+ \dimen@\@tempa\dimen@
+ \dimen@-\dimen@
+ \advance\dimen@ 0.7853\@tempdima
+}
+
+\newcommand*\pIIe@atantwo[3]{%
+ \edef\pIIe@csname{@atan2(\number\dimexpr#1\relax,\number\dimexpr#2\relax)}%
+ \expandafter\ifx\csname\pIIe@csname\endcsname\relax
+ \pIIe@atantwo@{#1}{#2}{#3}%
+ \pIIe@csedef{\pIIe@csname}{\the\dimexpr#3\relax}%
+ \else
+ #3\dimexpr\csname\pIIe@csname\endcsname\relax
+ \fi
+}
+
+\newcommand*\pIIe@atantwo@[3]{%
+ \@tempdima\dimexpr#2\relax
+ \@tempdimb\dimexpr#1\relax
+ \ifdim\@tempdima=\z@\relax
+ \ifdim\@tempdimb>\z@\relax\dimen@90\p@
+ \else\ifdim\@tempdimb<\z@\relax\dimen@-90\p@
+ \else\dimen@0\p@
+ \fi\fi
+ \else
+ \@tempdimd\z@
+ \ifdim\@tempdima<\z@\relax
+ \ifdim\@tempdimb<\z@\relax\@tempdimd-180\p@
+ \else\@tempdimd180\p@
+ \fi
+ \fi
+ \dimen@\dimexpr1pt * \@tempdimb/\@tempdima\relax
+ \@tempdimc\dimen@
+ \ifdim\@tempdimc<\z@\relax\@tempdimc-\@tempdimc\fi
+ \ifdim\@tempdimc>\p@\relax
+ \dimen@\dimexpr1pt * \@tempdima/\@tempdimb\relax
+ \ifdim\dimen@<\z@\relax\def\@tempsign{-}\else\def\@tempsign{}\fi
+ \pIIe@atan@
+ \dimen@-\dimen@
+ \advance\dimen@ by \@tempsign1.5707pt\relax
+ \else
+ \pIIe@atan@
+ \fi
+ \dimen@57.29578\dimen@
+ \advance\dimen@ by \@tempdimd
+ \fi
+ #3\dimen@%
+}
+
+\newcommand*\pIIe@noneto[2]{}
+\newcommand*\pIIe@ellip@sincost@[2]{%
+ \CalculateSin{#1}%
+ \CalculateCos{#1}%
+ \@tempdima\UseSin{#1}\p@
+ \@tempdimb\UseCos{#1}\p@
+ \ifdim\@tempdima=\p@\relax
+ \pIIe@csedef{@ellipsin#2}{1}%
+ \pIIe@csedef{@ellipcos#2}{0}%
+ \else\ifdim\@tempdima=-\p@\relax
+ \pIIe@csedef{@ellipsin#2}{-1}%
+ \pIIe@csedef{@ellipcos#2}{0}%
+ \else
+ \@tempdimc\@ellipratio\dimexpr1pt * \@tempdima/\@tempdimb\relax
+ %\typeout{ i#2=\the\@tempdimc, sin(#1)=\the\@tempdima}%
+ \pIIe@ellip@csqrt{\p@}{\@tempdimc}\@tempdimd
+ \ifdim\@tempdimb<\z@\relax\@tempdimd-\@tempdimd\fi
+ \pIIe@csedef{@ellipsin#2}{\strip@pt\dimexpr1pt * \@tempdimc/\@tempdimd\relax}%
+ \pIIe@csedef{@ellipcos#2}{\strip@pt\dimexpr1pt * \p@/\@tempdimd\relax}%
+ \fi\fi
+}
+
+\newcommand*\pIIe@ellip@sincost[2]{%
+ %\typeout{ calc sin cos: angles (#1,#2), radii: (\the\@ovro,\the\@ovri)}%
+ \edef\@ellipratio{\strip@pt\dimexpr1pt * \@ovro/\@ovri\relax}%
+ \pIIe@ellip@sincost@{#1}{one}%
+ \pIIe@ellip@sincost@{#2}{two}%
+ %\typeout{ sincos(a=#1)=(\@ellipsinone,\@ellipcosone), sincos(a=#2)=(\@ellipsintwo,\@ellipcostwo), }%
+}
+\newcommand*\pIIe@omega[3]{%
+ \@tempdima\csname @ellipcos#3\endcsname\@ovro
+ \advance\@tempdima by #1\relax
+ \@tempdimb\csname @ellipsin#3\endcsname\@ovri
+ \advance\@tempdimb by #2\relax
+}
+
+\newcommand*\pIIe@omegai[1]{%
+ \@tempdimc\csname @ellipsin#1\endcsname\@ovro
+ \@tempdimc-\@tempdimc
+ \@tempdimd\csname @ellipcos#1\endcsname\@ovri
+}
+
+\newcommand*\pIIe@ellip@kappa{%
+ \@ovyy\@ellipsinone\p@
+ \@ovxx\@ellipcosone\p@
+ \@tempdima\@ellipcostwo\@ovyy
+ \@tempdima-\@tempdima
+ \advance\@tempdima by \@ellipsintwo\@ovxx
+ \@tempdimb\@ellipcostwo\@ovxx
+ \advance\@tempdimb by \@ellipsintwo\@ovyy
+ \ifdim\@tempdima=\z@\relax
+ \edef\@ellipkappa{0}%
+ \else
+ \dimen@\dimexpr1pt - \@tempdimb\relax
+ \dimen@\dimexpr1pt * \dimen@/\@tempdima\relax
+ \pIIe@ellip@csqrt{2\p@}{1.73205\dimen@}{\dimen@}%
+ \advance\dimen@ by -\p@
+ \divide\dimen@ by 3%
+ \edef\@tempa{\strip@pt\@tempdima}%
+ \dimen@\@tempa\dimen@
+ \edef\@ellipkappa{\strip@pt\dimen@}%
+ \fi
+ %\typeout{ calculated kappa: \@ellipkappa}%
+}
+
+\newcommand*\pIIe@elliparc@[5]{%
+ %\typeout{elliparc: #1, center: (#2, #3), radius (\the\@ovro, \the\@ovri),angle (#4, #5)}%
+ \ifcase #1\relax
+ \let\@ellip@startto\pIIe@lineto
+ \or \let\@ellip@startto\pIIe@moveto
+ \or \let\@ellip@startto\pIIe@noneto%
+ \else\PackageWarning{ellipse}{Illegal initial action in \protect\elliparc: %
+ must be one of 0 (lineto), 1 (moveto) or 2 (do nothing) but I got: #1}%
+ \fi
+ \ifdim\@ovro=\z@\relax\@ovri\z@\fi
+ \ifdim\@ovri=\z@\relax
+ \@ellip@startto{#2}{#3}%
+ \else
+ \pIIe@ellip@sincost{#4}{#5}%
+ \pIIe@elliparc@draw{#2}{#3}%
+ \fi
+}
+\newcommand*\pIIe@elliparc@t[5]{%
+ \ifcase #1\relax
+ \let\@ellip@startto\pIIe@lineto
+ \or \let\@ellip@startto\pIIe@moveto
+ \or \let\@ellip@startto\pIIe@noneto%
+ \else\PackageWarning{ellipse}{Illegal initial action in \protect\elliparc: %
+ must be one of 0 (lineto), 1 (moveto) or 2 (do nothing) but I got: #1}%
+ \fi
+ \ifdim\@ovro=\z@\relax\@ovri\z@\fi
+ \ifdim\@ovri=\z@\relax
+ \@ellip@startto{#2}{#3}%
+ \else
+ \CalculateSin{#4}\CalculateCos{#4}%
+ \edef\@ellipsinone{\UseSin{#4}}%
+ \edef\@ellipcosone{\UseCos{#4}}%
+ \CalculateSin{#5}\CalculateCos{#5}%
+ \edef\@ellipsintwo{\UseSin{#5}}%
+ \edef\@ellipcostwo{\UseCos{#5}}%
+ \pIIe@elliparc@draw{#2}{#3}%
+ \fi
+}
+\newcommand*\pIIe@elliparc@draw[2]{%
+ \pIIe@ellip@kappa%
+ \pIIe@omega{#1}{#2}{one}%
+ %\typeout{ point one: (\the\@tempdima,\the\@tempdimb)}%
+ \@ellip@startto\@tempdima\@tempdimb
+ \pIIe@omegai{one}%
+ \advance\@tempdima by \@ellipkappa\@tempdimc
+ \advance\@tempdimb by \@ellipkappa\@tempdimd
+ \pIIe@add@nums\@tempdima\@tempdimb
+ %\typeout{ control one: (\the\@tempdima,\the\@tempdimb)}%
+ \pIIe@omega{#1}{#2}{two}%
+ \pIIe@omegai{two}%
+ \@tempdimc\@ellipkappa\@tempdimc
+ \@tempdimd\@ellipkappa\@tempdimd
+ \@tempdimc-\@tempdimc
+ \@tempdimd-\@tempdimd
+ \advance\@tempdimc by \@tempdima
+ \advance\@tempdimd by \@tempdimb
+ \pIIe@add@nums\@tempdimc\@tempdimd
+ %\typeout{ control two: (\the\@tempdimc,\the\@tempdimd)}%
+ \pIIe@add@CP\@tempdima\@tempdimb
+ %\typeout{ point two: (\the\@tempdima,\the\@tempdimb)}%
+ \pIIe@addtoGraph\pIIe@curveto@op
+}
+\newcommand*\pIIe@elliparc[7][0]{%
+ \@ovro #4\relax
+ \@ovri #5\relax
+ \iffalse%dim\@ovro=\@ovri
+ \pIIe@arc[#1]{#2}{#3}{#4}{#6}{#7}
+ \else
+ \ifdim \@ovro<\z@ \pIIe@badcircarg\else
+ \ifdim \@ovri<\z@ \pIIe@badcircarg\else
+ \@arclen #7\p@ \advance\@arclen -#6\p@
+ \ifdim \@arclen<\z@ \def\@tempsign{-}\else\def\@tempsign{}\fi
+ \ifdim \@tempsign\@arclen>720\p@
+ \PackageWarning {ellipse}{The arc angle is reduced to -720..720}%
+ \@whiledim \@tempsign\@arclen>720\p@ \do {\advance\@arclen-\@tempsign360\p@}%
+ \@tempdima #6\p@ \advance\@tempdima \@arclen
+ \edef\@angleend{\strip@pt\@tempdima}%
+ \pIIe@@elliparc{#1}{#2}{#3}{#6}{\@angleend}%
+ \else
+ \pIIe@@elliparc{#1}{#2}{#3}{#6}{#7}%
+ \fi
+ \fi
+ \fi
+ \fi
+}
+\newcommand*\pIIe@@elliparc[5]{%
+ \begingroup
+ \ifdim \@tempsign\@arclen>90\p@
+ \divide\@arclen 2%
+ \@tempdima #4\p@\advance\@tempdima by \@arclen
+ \edef\@anglemid{\strip@pt\@tempdima}%
+ \def\@tempa{\pIIe@@elliparc{#1}{#2}{#3}{#4}}%
+ \expandafter\@tempa\expandafter{\@anglemid}%
+ \def\@tempa{\pIIe@@elliparc{2}{#2}{#3}}%
+ \expandafter\@tempa\expandafter{\@anglemid}{#5}%
+ \else
+ \pIIe@elliparc@{#1}{#2}{#3}{#4}{#5}%
+ \fi
+ \endgroup
+}%
+
+\newcommand*\pIIeelliparc[7][0]{%
+ \@killglue
+ \pIIe@elliparc[#1]{#2\unitlength}{#3\unitlength}{#4\unitlength}{#5\unitlength}{#6}{#7}%
+ \ignorespaces%
+}
+\ifx\undefined\elliparc\else
+ \PackageWarning{ellipse}{\protect\elliparc\space is redefined}%
+\fi
+\let\elliparc\pIIeelliparc
+
+\newcommand*\pIIeearc
+ {\@ifstar{\@tempswatrue\pIIe@earc@}{\@tempswafalse\pIIe@earc@}}
+\newcommand*\pIIe@earc@[3][0,360]{\pIIe@earc@@(#1){#2}{#3}}
+\def\pIIe@earc@@(#1,#2)#3#4{%
+ \if@tempswa
+ \pIIe@moveto\z@\z@
+ \pIIe@elliparc{\z@}{\z@}{#3\unitlength}{#4\unitlength}{#1}{#2}%
+ \pIIe@closepath\pIIe@fillGraph
+ \else
+ \pIIe@elliparc[1]{\z@}{\z@}{#3\unitlength}{#4\unitlength}{#1}{#2}%
+ \pIIe@strokeGraph
+ \fi}
+\ifx\undefined\earc\else
+ \PackageWarning{ellipse}{\protect\earc\space is redefined}%
+\fi
+\let\earc\pIIeearc
+
+\newcommand*\pIIeellipse
+ {\@ifstar{\@tempswatrue\pIIe@earc@}{\@tempswafalse\pIIe@earc@}}
+\let\ellipse\pIIeellipse
+
+\endinput
+%%
+%% End of file `ellipse.sty'.