summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:53:53 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:53:53 +0000
commit1c928cb5f3de722845096d870f64c87354a7e1a8 (patch)
treefd9286743e9114b237ccbc6d545c3bfed929d85c /Master/texmf-dist
parenta8f43eaca41d3c80e54992bb358c20b1e528472d (diff)
curves
git-svn-id: svn://tug.org/texlive/trunk@808 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/tex/latex/curves/curves.sty459
-rw-r--r--Master/texmf-dist/tex/latex/curves/curvesls.sty19
2 files changed, 478 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/curves/curves.sty b/Master/texmf-dist/tex/latex/curves/curves.sty
new file mode 100644
index 00000000000..8aa513f3e4b
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/curves/curves.sty
@@ -0,0 +1,459 @@
+%%
+%% This is file `curves.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% curves.dtx (with options: `package')
+%% Copyright (C) 1991-2000 Ian Maclaine-cross
+%% This file may be distributed under the terms of the
+%% LaTeX Project Public License.
+%% See file curves.dtx for details.
+%% Internet: i.maclaine-cross@unsw.edu.au
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{curves}
+ [2000/08/22 1.50 Curves for LaTeX picture environment]
+
+\catcode`\;=11
+
+\newcount\;sc
+\newcount\;scp
+\newcount\;t
+\newcount\;cc
+\newcount\;cnd
+\newcount\;mcnd
+\newcount\;np
+\newcount\;overhang
+\newcount\;pbs
+\newcount\;pns
+\newcount\;psc
+\newcount\;rc
+\newcount\;rtc
+\newcount\;tc
+\let\;tca=\@tempcnta
+\let\;tcb=\@tempcntb
+
+\newlength\csdiameter
+\newlength\curvelength
+\newlength\overhang
+\newlength\;x
+\newlength\;dx
+\newlength\;ddx
+\newlength\;y
+\newlength\;dy
+\newlength\;ddy
+\newlength\;pl
+\newlength\;ucd
+\let\;td=\@tempdima
+\let\;ytd=\@tempdimb
+
+\newsavebox{\;csbox}
+\newsavebox{\;pt}
+
+\newif\if;noopt \;noopttrue
+\newif\ifcurvewarn \curvewarntrue
+\newif\if;ccn
+\newif\if;pt
+\newif\if;csym
+\newif\if;scnt
+
+\newhelp\;strline{curve straight from}
+\newhelp\m;ssingcoord{curve needs more points, add them.}
+\newhelp\;negdash{curvedashes needs the same sign for all arguments.}
+\newhelp\;oddcoord{curve requires two co-ordinates for each point,
+ count them.}
+
+\newcommand\;linewidth[1]{}
+\newcommand\;startline{}
+\newcommand\;stopl;ne{}
+
+\newcommand\;optioncheck[2]{%
+ \DeclareOption{#1}{%
+ \if;noopt
+ #2\;nooptfalse
+ \else
+ \PackageError{curves}{Option
+ \CurrentOption\space ignored}{curves uses only one dvi option}%
+ \fi
+ }%
+}
+
+\newcommand\;setdisk{\@killglue \;linewidth\@wholewidth
+ \set;pt{}\let\;stopline\;stopl;ne}
+\newcommand\s;tpitch{\;td\patternresolution\p@ \;psc\;td}
+
+\;optioncheck{dvips}{
+ \renewcommand\;linewidth[1]{\special{em:linewidth \the#1}}%
+ \renewcommand\;startline{\special{em:moveto}}%
+ \renewcommand\;stopl;ne{\special{em:lineto}}%
+}
+
+\;optioncheck{emtex}{
+ \renewcommand\;linewidth[1]{\special{em:linewidth \the#1}}%
+ \renewcommand\;startline{\special{em:moveto}}%
+ \renewcommand\;stopl;ne{\special{em:lineto}}%
+ \renewcommand\;setdisk{\@killglue
+ \ifdim\@halfwidth>\p@
+ \set;pt{\@circ\@wholewidth{112}}\;linewidth{\wd\;pt}%
+ \s;tcirc{\unhbox\;pt}%
+ \else \;linewidth\@wholewidth \set;pt{}\fi \let\;stopline\;stopl;ne}
+}
+
+\;optioncheck{xdvi}{
+ \special{!/;L{1 256.96 div dup scale 1 setlinecap
+ setlinewidth newpath 0 0 moveto lineto stroke}def}%
+ \newcount\;wc
+ \newlength\;X
+ \newlength\;Y
+ \renewcommand\;linewidth[1]{\;wc#1}%
+ \renewcommand\;startline{\global\;X\;x \global\;Y\;y}%
+ \renewcommand\;stopl;ne{%
+ \;tca\;X \advance\;tca-\;x \;tcb\;Y \advance\;tcb-\;y
+ \divide\;tca\@cclvi \divide\;tcb\@cclvi \divide\;wc\@cclvi
+ \special{"\the\;tca\space \the\;tcb\space \the\;wc\space ;L}%
+ \;startline
+ }%
+}
+
+\;optioncheck{WML}{
+ \renewcommand\;linewidth[1]{\special{W \the#1}}%
+ \renewcommand\;startline{\special{M}}%
+ \renewcommand\;stopl;ne{\special{L}}%
+ \;nooptfalse
+}
+
+\let\;optioncheck\relax
+\ProcessOptions\relax
+
+\if;noopt
+
+\newcount\;wc
+\newlength\;X
+\newlength\;Y
+
+\newcommand\;setperiod{\;tcb
+ \ifdim\@halfwidth>.6\p@ 17\;td.7
+ \else \ifdim\@wholewidth>.85\p@ 12\;td.48
+ \else \ifdim\@wholewidth>.6\p@ 8\else 5\fi \;td.34
+ \fi
+ \fi \p@
+ \s;tcirc{\rm \fontseries m\fontshape n\fontsize{\the\;tcb}\p@
+ \selectfont \hss.}}%
+
+\renewcommand\;setdisk{\@killglue \ifdim\@halfwidth>.85\p@
+ \s;tcirc{\@circ{\@wholewidth}{112}}\;td\@wholewidth
+ \divide\;td 8\advance\;td.6\p@ \ifdim\;td>\thr@@\p@\;td\thr@@\p@\fi
+ \else \;setperiod \fi \let\;stopline\;stopl;ne}%
+
+\renewcommand\s;tpitch{\;ytd\diskpitchstretch\;td \;wc\;ytd
+ \;td\patternresolution\p@ \;psc\;td }
+
+\renewcommand\;startline{\global\;X\;x \global\;Y\;y}
+
+\renewcommand\;stopl;ne{%
+ \;td\;X \advance\;td-\;x \;ytd\;Y \advance\;ytd-\;y
+ \;startline \;rxya\;td\;ytd \divide\;rc\;wc
+ \ifnum\;rc>\z@ \advance\;rc\@ne
+ \divide\;td\;rc \divide\;ytd\;rc \;y\z@
+ \advance\;rc\m@ne \;tca\;rc
+ \let\n;xt\;ls \;ls \kern-\;rc\;td
+ \fi}
+
+\newcommand\;ls{\advance\;y\;ytd \kern\;td \raise\;y\copy\;pt
+ \advance\;tca\m@ne \ifnum\;tca=\z@ \let\n;xt\relax \fi \n;xt}
+
+\fi
+
+\newcommand\arc[1][0]{\;arc[#1]}
+\newcommand\;arc{}
+\def\;arc[#1](#2,#3)#4{\;setpoint{#1}\scaleput(#2,#3){\;ddx
+ -#3\unitlength \;ddy#2\unitlength \;firstpoint \;td#4\p@ \;drwarc}}
+
+\def\bezier#1)#2(#3)#4({\@bezier#1)(#3)(}
+\def\@bezier#1(#2,#3)(#4,#5)(#6,#7){\;dx#4\unitlength \;ddx-\;dx
+ \advance\;dx-#2\unitlength \advance\;ddx#6\unitlength
+ \;dy#5\unitlength \;ddy-\;dy \advance\;dy-#3\unitlength
+ \advance\;ddy#7\unitlength
+ \;setpoint{#1}\scaleput(#2,#3){\;firstpoint \;bezier}}
+
+\newcommand\bigcircle[2][0]{\;setpoint{#1}\;dx\unitlength
+ \global\divide\unitlength\tw@
+ \scaleput(#2,0){\;startline \;ddx\z@ \;ddy#2\unitlength
+ \global\unitlength\;dx \;td360\p@ \;drwarc}}
+
+\newcommand\closecurve[1][0]{\;closecurve[#1]}
+\newcommand\;closecurve{}
+\def\;closecurve[#1](#2){\;coordn\closecurve\thr@@{#2}{#1}%
+ \if;ccn\scaleput(\;xb,\;yb){\;startline
+ \edef\;ci{\;xa,\;ya,#2,\;xb,\;yb,\;xc,\;yc}%
+ \advance\;cc\thr@@ \;tagcurve\;ci}\fi}
+
+\newcommand\curve[1][0]{\;curve[#1]}
+\newcommand\;curve{}
+\def\;curve[#1](#2){\;coordn\curve\tw@{#2}{#1}%
+ \if;ccn \scaleput(\;xa,\;ya){\;firstpoint
+ \ifnum\;cc=\tw@ \;slbezd \;slbez
+ \else \;scbezd\;dx\;ddx\;xa\;xb\;xc \;scbezd\;dy\;ddy\;ya\;yb\;yc
+ \;bezier \;tagcurve{#2}\ifnum\;cc>6\;endcurve\fi \fi}\fi}
+\newcommand\;scbezd[5]{\;slcd#2#3#5\divide#24\;slcd#1#3#4\advance#1-#2}
+\newcommand\;xa{} \newcommand\;xb{} \newcommand\;xc{}
+\newcommand\;ya{} \newcommand\;yb{} \newcommand\;yc{}
+\newcommand\;ci{}
+
+\newcommand\curvesymbol[1]{\def\;curvesymbol{#1}\ch;ckcs
+ \global\sbox\;csbox{#1}\csdiameter\wd\;csbox}
+\newcommand\;curvesymbol{} \def\;curvesymbol{}
+
+\newcommand\curvedashes[2][\unitlength]{\;ucd#1\def\;icurvedashes{#2}%
+ \;ccnfalse \;pl\z@
+ \@for \;ci:=#2\do{\ifdim\;ci\;ucd<\z@ \;ccntrue
+ \PackageError{curves}{\string
+ \curvedashes\space sign bad at \;ci\MessageBreak}{\the\;negdash}%
+ \else \advance\;pl\;ci\;ucd \fi}\if;ccn\;pl\z@\fi}
+\newcommand\;icurvedashes{}
+
+\newcommand\tagcurve[1][0]{\;tgcrv[#1]}
+\newcommand\;tgcrv{}
+\def\;tgcrv[#1](#2){\;coordn\tagcurve\thr@@{#2}{#1}\if;ccn
+ \scaleput(\;xb,\;yb){\;firstpoint \;tagcurve{#2}}\fi}
+
+\newcommand\scaleput{}
+\long\def\scaleput(#1,#2)#3{\@killglue \;td#2\unitlength
+ \raise\yscale\;td \hbox to \z@{\kern\xscaley\;td \;td#1\unitlength
+ \kern\xscale\;td \raise\yscalex\;td \hbox{#3}\hss}\ignorespaces}
+\newcommand\xscale{\@ne}
+\newcommand\xscaley{0}
+\newcommand\yscale{\@ne}
+\newcommand\yscalex{0}
+
+\newcommand\diskpitchstretch{\@ne}
+\newcommand\patternresolution{\@ne}
+
+\newcommand\;firstpoint{\;startline \ifdim\;pl=\z@\;point\relax\fi}
+
+\newcommand\;drwarc{\;cc\;td \;np\;td \;td23\p@ \divide\;cc\;td
+ \;abs\;cc \advance\;cc\@ne \;pns\p@ \divide\;pns\tw@
+ \divide\;np\;cc \;rc\;np \divide\;rc\;pns \;abs\;rc
+ \advance\;rc\@ne \divide\;np\;rc \multiply\;np\;pns \divide\;np14668 %
+ \multiply\;np\;rc \divide\;np\@cclvi \;scp\p@ \multiply\;scp\@cclvi
+ \;t\;pns \;csi\;csi\;csi\;csi \;rxya\;ddx\;ddy \divide\;rc\p@
+ \advance\;rc\@ne \;rtc\;rc \advance\;rc\;rc \;ndd\;ddx \;ndd\;ddy
+ \;csi \;rxya\;ddx\;ddy \divide\;rc\;pns \advance\;rc\@ne
+ \@whilenum\;cc>\z@ \do{\advance\;cc\m@ne \;dx\;ddx \;dy\;ddy
+ \divide\;ddx\;rc \divide\;ddy\;rc \;td\;ddx \;ddx\;t\;td
+ \advance\;ddx-\;np\;ddy \;ddy\;t\;ddy \advance\;ddy\;np\;td
+ \divide\;ddx\;pns \divide\;ddy\;pns \;ddx\;rc\;ddx \;ddy\;rc\;ddy
+ {\;bezier \global\;td\;x \global\;ytd\;y
+ \global\;tca\;overhang}\;y\;ytd \;x\;td \;overhang\;tca}}
+\newcommand\;ndd[1]{\divide#1\;rc \multiply#1\;np
+ \divide#1\;t #1\;rtc#1}
+\newcommand\;csi{\;tcb\;np \multiply\;np\;t \divide\;np\;pns \;t\;tcb
+ \multiply\;t\;t \divide\;t-\;scp \advance\;t\;pns \divide\;scp4 }
+
+\newcommand\;coordn[4]{\;setpoint{#4}\ifx#1\closecurve\;cc\tw@
+ \else\;cc\z@\fi
+ \@for\;ci:=#3\do{\advance\;cc\@ne
+ \ifcase\;cc \or \;d;f\;xa \or \;d;f\;ya \or \;d;f\;xb
+ \or \;d;f\;yb \or \;d;f\;xc \or \;d;f\;yc \fi
+ \ifx#1\closecurve\ifodd\;cc \;d;f\;xa \else \;d;f\;ya \fi\fi}%
+ \;ccnfalse \ifx#1\closecurve \advance\;cc-\tw@ \fi
+ \ifodd\;cc
+ \PackageError{curves}{\string #1\space points odd}{\the\;oddcoord}%
+ \else \divide\;cc\tw@
+ \ifnum#2>\;cc \PackageError{curves}{\string #1\space needs \the#2
+ points\MessageBreak}{\the\m;ssingcoord}%
+ \else \;ccntrue \fi\fi}
+
+\newcommand\;setpoint[1]{\curvelength\z@ \let\;stopline\relax
+ \def\;point##1{\raise\;y\hbox{{\copy\;pt##1}}}\ch;ckcs
+ \ifnum#1=\z@\;scntfalse\else\;scnttrue\fi
+ \;sc#1\relax \;abs\;sc \;psc\;sc
+ \ifdim\;pl>\z@ \;overhang\overhang
+ \ifnum\;overhang=\z@\else \;np\;overhang
+ \divide\;np\;pl \multiply\;np\;pl
+ \ifnum\;overhang<\z@ \advance\;overhang\;pl
+ \else \ifnum\;overhang=\;np\advance\;overhang\;pl\fi
+ \fi \advance\;overhang-\;np \fi
+ \if;csym \if;scnt\;setdisk\else\;setsymbol\fi
+ \else \;setdisk \fi\s;tpitch
+ \else\ifnum#1>\z@
+ \s;tcirc{\hss\vrule\@height\@wholewidth\@width\@wholewidth}%
+ \else\ifnum#1<\z@ \if;csym\;setsymbol\else\set;pt{}\fi
+ \else\;setdisk\s;tpitch
+ \fi\fi\fi \;x\z@ \;y\dp\;pt \advance\;y-\ht\;pt \divide\;y\tw@}
+\newcommand\;setsymbol{\s;tcirc{\hss\unhcopy\;csbox}%
+ \edef\;point{\;point\relax
+ \s;tcirc{\hss\noexpand\;curvesymbol}\global\setbox\;csbox\copy\;pt}}
+\newcommand\;stopline{} \newcommand\;point{}
+
+\newcommand\ch;ckcs{\ifx\;curvesymbol\@empty\;csymfalse
+ \else\;csymtrue\fi}
+
+\newcommand\s;tcirc[1]{\set;pt to\z@{#1\hss}}
+
+\newcommand\set;pt{\global\setbox\;pt\hbox}
+
+\newcommand\;endcurve{\;ecbezd\;dx\;ddx\;xa\;xb\;xc
+ \;ecbezd\;dy\;ddy\;ya\;yb\;yc \;bezier}
+\newcommand\;ecbezd[5]{\;slcd#1#3#5\divide#14
+ #2-#1\advance#2#5\unitlength
+ \advance#2-#4\unitlength}
+
+\newcommand\;tagcurve[1]{\ifnum\;cc=\thr@@ \;endcurve \else \;cc\z@
+ \@for\;ci:=#1\do{\advance\;cc\@ne \ifnum\;cc>6 %
+ \ifodd\;cc \;slcd\;dx\;xa\;xc \let\;xa\;xb \let\;xb\;xc \;d;f\;xc
+ \else \t;gcrv \fi \fi}\fi}
+
+\newcommand\t;gcrv{\;slcd\;dy\;ya\;yc
+ \let\;ya\;yb \let\;yb\;yc \;d;f\;yc
+ \;rxy\;dx\;dy \divide\;dx\;rtc \divide\;dy\;rtc
+ \;ddx-\;ya\;dx \advance\;ddx\;xa\;dy \;ddy\;ddx
+ \advance\;ddx\;yb\;dx \advance\;ddx-\;xb\;dy
+ \advance\;ddy\;yc\;dx \advance\;ddy-\;xc\;dy
+ \;slbezd \;td\;ddy \divide\;td\@m
+ \ifdim\;td=\z@ \ifcurvewarn
+ \PackageWarning{curves}{\the\;strline\MessageBreak
+ \;xa,\;ya\space to \;xb,\;yb\MessageBreak}\fi
+ \;slbez
+ \else \;td\unitlength \;rtc\;td \advance\;rtc\;rtc
+ \divide\;rtc\p@ \advance\;rtc\@ne \divide\;td\;rtc
+ \;t\;ddx \;scp\;t \;abs\;t
+ \advance\;t\;t \divide\;t\p@ \advance\;t\@ne \divide\;scp\;t
+ \multiply\;td\;scp \divide\;td\;ddy
+ \multiply\;td\;rtc \multiply\;td\;t
+ \;ddx\;xc\;td \advance\;ddx-\;xa\;td \advance\;dx-\;ddx
+ \;ddy\;yc\;td \advance\;ddy-\;ya\;td \advance\;dy-\;ddy
+ \;bezier \fi}
+
+\newcommand\;d;f[1]{\edef#1{\;ci}}
+
+\newcommand\;slbezd{\;slcd\;dx\;xa\;xb \;slcd\;dy\;ya\;yb}
+
+\newcommand\;slcd[3]{#1#3\unitlength \advance#1-#2\unitlength}
+
+\newcommand\;slbez{\divide\;dx\tw@ \;ddx\;dx \divide\;dy\tw@
+ \;ddy\;dy \;bezier}
+
+\newcommand\;bezier{\;scale\;dx\;dy \;scp\;rc \;scale\;ddx\;ddy
+ \advance\;scp\;rc \;bezc\;dx\;ddx \;bezc\;dy\;ddy \;rxy\;ddx\;ddy
+ \divide\;rc\p@ \advance\;rc\thr@@
+ \;tc\;rc \ifnum\;rc>\sixt@@n\;rc\sixt@@n\fi
+ \;rroot\;rroot\;rroot\;rroot
+ \;t\;rc \;rxy\;dx\;dy \advance\;rc\;scp \divide\;rc\thr@@
+ \global\advance\curvelength\;rc sp\;mcnd\@ne
+ \ifdim\;pl>\z@ \;np\;rc \divide\;np\;psc
+ \ifnum\;t<\;np \;mcnd\;np \divide\;mcnd\;t
+ \divide\;np\;mcnd \multiply\;np\;mcnd \;t\;np
+ \fi
+ \fi
+ \if;scnt
+ \ifdim\;pl=\z@ \;t\;sc
+ \else \;np
+ \if;csym \;rc \divide\;np\;sc \advance\;np-\csdiameter
+ \;td\;pl \divide\;td\tw@ \advance\;np\;td \divide\;np\;pl
+ \ifnum\;np<\@ne\;np\@ne\fi \multiply\;np\;sc
+ \else \;sc
+ \fi
+ \advance\;t\;np \divide\;t\;np \multiply\;t\;np
+ \fi
+ \fi
+ \;rtc\;t \divide\;rtc\;mcnd \;tcb\;rtc \multiply\;tcb\;t
+ \advance\;rtc\m@ne \multiply\;rtc\;t \;tc\;t \advance\;tc\;tc
+ \;bezd\;dx\;ddx \;bezd\;dy\;ddy
+ \ifdim\;pl>\z@ \;dashes \else \let\n;xt\;spoints \;spoints \fi}
+\newcommand\;scale[2]{\;td\xscale#1\advance\;td\xscaley#2%
+ #2\yscale#2\advance#2\yscalex#1#1\;td \;rxy#1#2}
+\newcommand\;bezc[2]{\advance#1#1\advance#2#2%
+ \;td#2\advance#2-#1\advance#1\;td}
+\newcommand\;bezd[2]{\divide#2\;tcb \;td#2\multiply\;td\;rtc
+ \advance#1-\;td \divide#1\;tc}
+
+\newcommand\;spoints{\advance\;y\;dy \advance\;x\;dx \kern\;dx
+ \;point\;stopline \advance\;t\m@ne
+ \ifnum\;t>\z@ \advance\;dx\;ddx \advance\;dy\;ddy
+ \else \let\n;xt\relax \fi \n;xt}
+
+\newcommand\;rxy[2]{\;rxya#1#2%
+ \ifnum\;rc>\z@ \;rtc\;rc \advance\;rtc\;rtc \divide\;rtc\p@
+ \ifnum\;rtc>\z@ \advance\;rtc\@ne \divide\;tc\;rtc
+ \divide\;tcb\;rtc \divide\;rc\;rtc
+ \else \;rtc\@ne
+ \fi
+ \multiply\;tc\;tc \multiply\;tcb\;tcb
+ \advance\;tc\;tcb \;rroot\;rroot \multiply\;rc\;rtc
+ \fi}
+
+\newcommand\;rxya[2]{\;tc#1\;abs\;tc \;tcb#2\;abs\;tcb
+ \ifnum\;tc>\;tcb \;rc\;tcb \;tcb\;tc \;tc\;rc \fi
+ \;rc\;tc \divide\;rc\thr@@ \advance\;rc\;tcb
+}
+
+\newcommand\;abs[1]{\ifnum#1<\z@ #1-#1\fi}
+
+\newcommand\;rroot{\;tcb\;tc \divide\;tcb\;rc
+ \advance\;rc\;tcb \divide\;rc\tw@}
+
+\newcommand\;dashes{\let\;ticd\;icurvedashes
+ \let\;tucd\;ucd \divide\;rc\;t
+ \;rtc\;t \;tc\;rc \advance\;tc\csdiameter \divide\;tc\;rc
+ \divide\;tc\tw@ \;t\;tc \multiply\;tc\tw@ \;ptfalse \;cnd\;mcnd
+ \;pbs\;rc \divide\;pbs\tw@
+ \advance\;overhang\;pbs \divide\;overhang-\;rc
+ \if;scnt \;scdashes \else \;nscdashes \fi \multiply\;overhang\;rc}
+
+\newcommand\;scdashes{\;pbs\;rtc \divide\;pbs\;sc \;ccss \;scp
+ \if;csym \;pl \multiply\;scp\;np \divide\;scp\;sc \advance\;pbs-\;tc
+ \else \;pbs \multiply\;scp\;rc \fi \;np\;overhang \;overhang\z@
+ \divide\;scp\;pbs \;tcb\z@ \;pns\;t \;dash \;overhang\;np
+ \if;csym\else \advance\;overhang-\;tcb \advance\;rtc-\;tcb
+ \advance\;pbs-\;tc \fi
+ \;pns\;pbs \advance\;pns-\;np \if;csym\else\advance\;pns\;tcb\fi
+ \@whilenum\;rtc>\z@\do{\;pdashes \;ptfalse \;t\;tc \;pns\;t \;dash
+ \;pns\;pbs \;overhang\if;csym\;np\else-\;overhang\fi
+ \advance\;pns-\;overhang}\;overhang-\if;csym\;np\else\;overhang
+ \;ptfalse \;t\;tc \;tcb\;overhang
+ \divide\;t\tw@ \;rtc\;t \;pns\;t \;dash \fi}
+
+\newcommand\;nscdashes{\advance\;pbs\;pl \divide\;pbs\;rc
+ \if;csym \;bpdashes \fi \;ccss \;pns\;t
+ \;dash \advance\;pbs-\;tc \;scp\;pl \divide\;scp\;pbs \;pns\;pbs
+ \@whilenum\;rtc>\z@\do{\;pdashes \;ptfalse \;t\;tc \;pns\;t \;dash
+ \;pns\;pbs}%
+ \if;csym \else \divide\;tc\tw@ \advance\;overhang\;tc \fi}
+
+\newcommand\;ccss{\ifnum\;pbs>\;tc\else \;bpdashes \fi}
+
+\newcommand\;bpdashes{\let\;tucd\;pl \let\;ticd\;ricd \;tc\z@ \;t\z@}
+\newcommand\;ricd{1,0}
+
+\newcommand\;pdashes{\ifnum\;pns>\z@ \;td\z@ \;tcb\z@ \;ptfalse
+ \@for\;ci:=\;ticd \do{\advance\;td\;ci\;tucd \;t\;scp \divide\;t\tw@
+ \advance\;t\;td \divide\;t\;scp \advance\;t-\;tcb \;dash
+ \if;pt\;ptfalse\else\;pttrue\fi}%
+ \let\n;xt\;pdashes \else \let\n;xt\relax \fi \n;xt}
+
+\newcommand\;dash{\ifnum\;t=\z@
+ \if;csym \ifnum\;rtc>\z@ \if;pt\;point\;startline\fi \fi \fi
+ \else \advance\;tcb\;t \advance\;pns-\;t
+ \ifnum\;overhang<\z@ \advance\;overhang\;t
+ \;t \ifnum\;overhang<\z@ \z@ \else \;overhang \;overhang\;tcb \fi
+ \else \;overhang\;tcb \fi
+ \ifnum\;pns<\z@ \advance\;overhang\;pns \advance\;tcb\;pns
+ \advance\;t\;pns \;pns\z@ \fi \advance\;rtc-\;t
+ \ifnum\;rtc<\z@ \advance\;overhang\;rtc \advance\;t\;rtc\fi
+ \ifnum\;t>\z@ \if;pt\;point\;startline\fi
+ \let\n;xt\;points \;points \fi\fi}
+
+\newcommand\;points{\ifnum\;t<\;cnd \;tca\;t \else \;tca\;cnd \fi
+ \advance\;y\;tca\;dy \;ytd\;tca\;dx \advance\;x\;ytd \kern\;ytd
+ \if;pt\;point\;stopline\fi
+ \ifnum\;t<\;cnd \let\n;xt\relax \advance\;cnd-\;t
+ \else
+ \advance\;t-\;cnd \advance\;dx\;ddx \advance\;dy\;ddy \;cnd\;mcnd
+ \fi \n;xt}
+
+ \catcode`\;=12
+
+\endinput
+%%
+%% End of file `curves.sty'.
diff --git a/Master/texmf-dist/tex/latex/curves/curvesls.sty b/Master/texmf-dist/tex/latex/curves/curvesls.sty
new file mode 100644
index 00000000000..8d2b5bde590
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/curves/curvesls.sty
@@ -0,0 +1,19 @@
+%%
+%% This is file `curvesls.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% curves.dtx (with options: `ls')
+%% Copyright (C) 1991-2000 Ian Maclaine-cross
+%% This file may be distributed under the terms of the
+%% LaTeX Project Public License.
+%% See file curves.dtx for details.
+%% Internet: i.maclaine-cross@unsw.edu.au
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{curvesls}
+ [2000/08/22 Obsolete! Using option emtex in package curves.]
+\RequirePackage[emtex]{curves}
+\endinput
+%%
+%% End of file `curvesls.sty'.