summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/curves
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-09-09 22:35:03 +0000
committerKarl Berry <karl@freefriends.org>2017-09-09 22:35:03 +0000
commit14899457156244d2f29d3d5bdc099ff273215893 (patch)
tree7108b5c406fd77f7cce6778fc7fc7d9e8e466927 /Master/texmf-dist/source/latex/curves
parentc42e54b3509277ed969d390623d69d15e4e557ce (diff)
curves (9sep17)
git-svn-id: svn://tug.org/texlive/trunk@45255 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/curves')
-rw-r--r--Master/texmf-dist/source/latex/curves/curves.dtx142
1 files changed, 125 insertions, 17 deletions
diff --git a/Master/texmf-dist/source/latex/curves/curves.dtx b/Master/texmf-dist/source/latex/curves/curves.dtx
index 62674c03988..6cf66f2e204 100644
--- a/Master/texmf-dist/source/latex/curves/curves.dtx
+++ b/Master/texmf-dist/source/latex/curves/curves.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Program curves
-% Copyright (C) 1991 1992 1993 1994 1995 1996 2000 2008 Ian Maclaine-cross
+% Copyright (C) 1991 - 2017 Ian Maclaine-Cross
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -14,7 +14,7 @@
%
% This work has the LPPL maintenance status `maintained'.
%
-% The Current Maintainer of this work is Ian Maclaine-cross
+% The Current Maintainer of this work is Ian Maclaine-Cross
% <imaclain@gmail.com>.
%
% This work consists of the files README and curves.dtx, curves.ins
@@ -57,17 +57,18 @@
%<*package,driver>
% \fi
% \ProvidesFile{curves.dtx}
- [2009/08/31 1.53 Curves for LaTeX picture environment]
+ [2017/08/25 1.55 Curves for LaTeX picture environment]
%
% \iffalse
%</package,driver>
%<*driver>
\documentclass{ltxdoc}
\usepackage{curves}
-% \usepackage[dvips]{curves}
+%% \usepackage[dvips]{curves}
+\usepackage{hyperref}
%% Insert % at the start of the \OnlyDescription line below to
%% add commented listings of curves.sty and curvesls.sty to print out.
-\OnlyDescription
+ \OnlyDescription
\begin{document}
\DocInput{curves.dtx}
\end{document}
@@ -80,17 +81,18 @@
% \changes{1.50}{2000/08/22}{Files merged, docstrip, LPPL and PostScript added}
% \changes{1.51}{2008/04/24}{New email address and corrections in doc}
% \changes{1.52}{2008/08/29}{Upstream website in doc, straight segment switch}
-% \changes{1.53}{2009/08/31}{New email address}
-%
+% \changes{1.53}{2008/09/29}{Hyperref in doc}
+% \changes{1.55}{2017/08/25}{Error figures p.4 Thomas Bucaioni}
+%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% \title{\bf The \textsf{curves} Package\thanks{This file
% has version number \fileversion, last
% revised \filedate.}}
%
-% \author{Ian Maclaine-cross\\
+% \author{Ian Maclaine-Cross\\
% \small Internet: \texttt{\InternetAddress}}
-% \date{29 August 2008}
+% \date{25 August 2017}
% \maketitle
%
% \begin{abstract}
@@ -262,15 +264,19 @@
% & \makebox[6em][l]{\tt\char92 straighttrue}\\
% \hline
% \raisebox{60\unitlength}{\tt\char92 curve(0,0, 50,100, 100,0)} &
+% \straighttrue
% \begin{picture}(100,120)(0,-10)
+% \straightfalse
% \curve(0,0, 50,100, 100,0)
% \end{picture} &
+% \straighttrue
% \begin{picture}(100,120)(0,-10)
% \straighttrue
% \curve(0,0, 50,100, 100,0)
% \end{picture}\\
% \raisebox{80\unitlength}{\tt\char92 closecurve(0,0, 50,100, 100,0)} &
% \begin{picture}(100,170)(0,-60)
+% \straightfalse
% \closecurve(0,0, 50,100, 100,0)
% \end{picture} &
% \begin{picture}(100,170)(0,-60)
@@ -280,6 +286,7 @@
% \raisebox{60\unitlength}{%
% \tt\char92 tagcurve(100,0, 0,0, 50,100, 100,0, 0,0)} &
% \begin{picture}(120,120)(-10,-10)
+% \straightfalse
% \tagcurve(100,0, 0,0, 50,100, 100,0, 0,0)
% \end{picture} &
% \begin{picture}(120,120)(-10,-10)
@@ -1014,7 +1021,7 @@
% Guide. Try the system command {\tt latex local} to get a \LaTeX ed Guide.}
% from {\tt bezier.sty} or \LaTeXe.
% \item Work with |slides| class
-% for overhead transparencies with \LaTeXe\footnotemark[\ref{fn:MG}].
+% for overhead transparencies with \LaTeXe\footnotemark[5].
% \item Curves have the minimum number of disks or chords for visual
% smoothness.
% \item Curve thickness adjustable from 0.5 to 15pt (0.17 to 5mm).
@@ -1577,6 +1584,8 @@
\;ddy\;dy \;bezier}
% \end{macrocode}
+% \newcommand\bs{\symbol{'134}}
+% \subsubsection{\texttt{\bs ;bezier}}
% |\;bezier| is called by all curve and polygon drawing commands.
% If straight line between points |\;bezier| recalculates differences.
% Scales segment differences, then calculates segment pattern and disk count,
@@ -1584,6 +1593,80 @@
% were originally measured out in multiples of the disk pitch and are currently
% in points but can be adjusted with |\patternresolution|. This should
% be reprogrammed in scaled points.
+%
+% \paragraph{ \texttt{\bs ;bezier} Inputs:}
+% \begin{center}
+% \setlength\unitlength{1pt}
+% \begin{picture}(200,100)\sf
+% \thicklines
+% \put(0,0){\vector(0,1){100}}
+% \put(0,0){\vector(1,0){200}}
+% \put(3,98){$y$}
+% \put(198,3){$x$}
+% \bezier{0}(20,60)(100,100)(180,30)
+% \thinlines
+% \curve(20,60, 100,100)
+% \curve(100,100, 180,30)
+% \put(20,60){\circle*{4}}
+% \put(100,100){\circle*{4}}
+% \put(180,30){\circle*{4}}
+% \put(12,51){$(x_a,y_a)$}
+% \put(103,100){$(x_b,y_b)$}
+% \put(183,28){$(x_c,y_c)$}
+% \end{picture}\\
+% Coordinate points for drawing parabolic arc.\\
+% \end{center}
+%
+% \noindent counts
+%
+% |\;psc| = maximum dot spacing on line
+%
+% |\;sc| = symbol count on parabolic arc
+%
+% \noindent dimens
+%
+% |\;dx| $=x_b-x_a$
+%
+% |\;ddx| $=x_c-x_b$
+%
+% |\;dy| $=y_b-y_a$
+%
+% |\;ddy| $=y_c-y_b$
+%
+% |\;pl| = dash pattern length
+%
+% |\curvelength| = curvelength up to start of parabolic arc
+%
+% \noindent boolean
+%
+% |\if;scnt| = true if a symbol count defined
+%
+% |\if;csym| = true if a curvesymbol defined
+%
+% |\ifstraight| = true if straight line replacing parabolic arc
+%
+% \paragraph{ \texttt{\bs ;bezier} Outputs:} \mbox{ }
+%
+% \noindent counts
+%
+% |\;mcnd| = number of pattern increments in straight segment (default 1)
+%
+% |\;np| = number of complete patterns or symbols in parabolic arc
+%
+% |\;t| = number of pattern increments in parabolic arc
+%
+% |\;rc| = length of parabolic arc in scaled points
+%
+% \noindent dimens
+%
+% |\;dx| = increment of |\;x| before line, blank, point or symbol plotted
+%
+% |\;ddx| = increment of |\;dx| after line, blank, point or symbol plotted
+%
+% |\;dy| = increment of |\;y| before line, blank, point or symbol plotted
+%
+% |\;ddy| = increment of |\;dy| after line, blank, point or symbol plotted
+%
% \begin{macrocode}
\newcommand\;bezier{\ifstraight \av;d\;dx\;ddx \av;d\;dy\;ddy \fi
\;scale\;dx\;dy \;scp\;rc \;scale\;ddx\;ddy
@@ -1594,14 +1677,28 @@
\;t\;rc \;rxy\;dx\;dy \advance\;rc\;scp \divide\;rc\thr@@
\global\advance\curvelength\;rc sp\;mcnd\@ne
% \end{macrocode}
-% Here |\;t| is the number of straight line segments making current
-% parabolic arc and |\;rc| is the length of the parabolic arc in
-% scaled points.
+% Here
+%
+% |\;rc| = parabolic arc length in scaled points accurately
+% approximated using Simpson's Rule \textit{i.e.}
+% \[ |\;rc| = \frac13(\mid\mathbf r_b - \mathbf r_a \mid +\,
+% 2\mid\mathbf r_c - \mathbf r_a\mid + \mid\mathbf r_c -\mathbf
+% r_b\mid ) \] \indent which is exact for consecutive points a, b and
+% c on a straight line;
+%
+% \noindent and
+%
+% |\;t| = number of straight line segments (polygon sides) in
+% parabolic arc
+% \[ |\;t| = \sqrt{3 + \frac{\mid \mathbf r_a -2 \mathbf r_b + \mathbf
+% r_c\mid}{32768}}\] \indent which is rounded up for dash pattern
+% and gives a maximum deviation of polygon from arc about 0.25\,pt.
+%
% \begin{macrocode}
\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
\fi
\if;scnt
\ifdim\;pl=\z@ \;t\;sc
@@ -1621,10 +1718,20 @@
%
% The calculation following ensures that the end point of the parabolic
% arc is as accurate as possible.
+%
% \begin{macrocode}
\;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
+% \end{macrocode}
+% Here
+% \[ |\;ddx| = \frac{2(x_a-2x_b+x_c)}{ ({\tt\bs;t)^2 / \bs;mcnd }} \]
+% \[ |\;dx| = \frac{2(x_c-x_a)-{\tt\bs;t(\bs;t/\bs;mcnd}-1){\tt\bs;ddx}}{
+% {2\tt\bs;t }} \]
+% \[ |\;ddy| = \frac{2(y_a-2y_b+y_c)}{ ({\tt\bs;t)^2 / \bs;mcnd }} \]
+% \[ |\;dy| = \frac{2(y_c-y_a)-{\tt\bs;t(\bs;t/\bs;mcnd}-1){\tt\bs;ddy}}{
+% {2\tt\bs;t }} \]
+% \begin{macrocode}
\ifdim\;pl>\z@ \;dashes \else \let\n;xt\;spoints \;spoints \fi}
% \end{macrocode}
% |\av;d| replaces each of |#1| and |#2| by \((|#1|+|#2|)/2\).
@@ -1910,7 +2017,7 @@ curvesls.sty 1.0 21 Mar 1993 draw lines using emTeX dvidriver \special's.
down to 1913 with WML option.
1.51 24 April 2008 7th Internet release
Email address now <ilm@patch.bpa.nu>
-1.52 22 August 2008 8th Internet release
+1.52 29 August 2008 8th Internet release
Copyright licence now LPPL version 1.3.
Correction:
new upstream website
@@ -1919,5 +2026,6 @@ curvesls.sty 1.0 21 Mar 1993 draw lines using emTeX dvidriver \special's.
straight lines for parabolic arcs switch;
more macro documentation;
reworded instructions and README.
-1.53 31 August 2009 9th Internet release
- Email address now <imaclain@gmail.com>
+1.53 29 September 2008
+ Improvements:
+ hyperref in curves.pdf. \ No newline at end of file