diff options
author | Karl Berry <karl@freefriends.org> | 2017-09-09 22:35:03 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-09-09 22:35:03 +0000 |
commit | 14899457156244d2f29d3d5bdc099ff273215893 (patch) | |
tree | 7108b5c406fd77f7cce6778fc7fc7d9e8e466927 /Master/texmf-dist/source/latex/curves | |
parent | c42e54b3509277ed969d390623d69d15e4e557ce (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.dtx | 142 |
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 |