summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-05-05 18:33:12 +0000
committerKarl Berry <karl@freefriends.org>2008-05-05 18:33:12 +0000
commitb5ee18e1b44b94933386f3606504aa53d44fbed6 (patch)
tree588b1096863c18f4c7da64a9200fcb2dbf8f1ad0 /Master/texmf-dist/source
parent00832b82ca103db8b3e1f34270a422c5921e7a27 (diff)
curve2e 1.01 (4may08)
git-svn-id: svn://tug.org/texlive/trunk@7868 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/curve2e/curve2e.dtx168
1 files changed, 89 insertions, 79 deletions
diff --git a/Master/texmf-dist/source/latex/curve2e/curve2e.dtx b/Master/texmf-dist/source/latex/curve2e/curve2e.dtx
index 9e456d10b33..d1dd0a41b16 100644
--- a/Master/texmf-dist/source/latex/curve2e/curve2e.dtx
+++ b/Master/texmf-dist/source/latex/curve2e/curve2e.dtx
@@ -19,7 +19,7 @@
\ProvidesFile{curve2e.dtx}%
%</driver>
%<+package>\ProvidesPackage{curve2e}%
- [2006/11/27 v.1.00 Extension package for pict2e]
+ [2008/05/04 v.1.01 Extension package for pict2e]
%<*package>
% \end{macrocode}
%</package>
@@ -43,7 +43,7 @@
%</driver>
% \fi
%
-% \CheckSum{2214}
+% \CheckSum{2222}
% \begin{abstract}
% This file documents the |curve2e| extension package to the recent
% implementation of the |pict2e| bundle that has been described by Lamport
@@ -57,9 +57,9 @@
% \end{abstract}
%
% \section{Package \texttt{pict2e} and this extension \texttt{curve2e}}
-% Package \texttt{pict2e} was announced in inssue 15 of \texttt{latexnews}
+% Package \texttt{pict2e} was announced in issue 15 of \texttt{latexnews}
% around December 2003; it was declared that the new package would replace the
-% dummy one that has been accompanying every realease of \LaTeXe\ since its
+% dummy one that has been accompanying every release of \LaTeXe\ since its
% beginnings in 1994. The dummy package was just issuing an info message that
% simply announced the temporary unavailability of the real package.
%
@@ -88,13 +88,13 @@
%
% The package \texttt{pict2e} removes most if not all the above limitations:
% \begin{enumerate}
-% \item line and vector slopes are virtually unlimited; the only remainig
+% \item line and vector slopes are virtually unlimited; the only remaining
% limitation is that the direction coefficients must be three-digit integer
% numbers; they need not be relatively prime;
% \item filled and unfilled circles can be of any size;
% \item ovals can be designed with any specified corner curvature and there is
% virtually no limitation to such curvatures; of course corner radii should not
-% exceed half the lower value between the base and the hight of the oval;
+% exceed half the lower value between the base and the height of the oval;
% \item there are two shapes for the arrow tips; the triangular one traditional
% with \LaTeX\ vectors, or the arrow tip with PostScript style.
% \item the |\linethickness| command changes the thickness of all lines, straight,
@@ -136,7 +136,7 @@
% rotations and the like. The trigonometric functions have also been defined in
% a way that the author believes to be more efficient that that implied by the
% \texttt{trig} package; in any case the macro names are sufficiently
-% different to accomodate both definitions in the same \LaTeX\ run.
+% different to accommodate both definitions in the same \LaTeX\ run.
%
% Many aspects of this extension could be fine tuned for better performance;
% many new commands could be defined in order to further extend this extension.
@@ -144,12 +144,12 @@
% this beta version could become the start for a real extension of the
% \texttt{pict2e} package or even become a part of it.
%
-% For this reason I suppose that every enhanceent should be submitted to
+% For this reason I suppose that every enhancement should be submitted to
% Gäßlein and Niepraschk who are the prime maintainers of \texttt{pict2e};
-% they only can decide wether or not to incorporate new macros in their package.
+% they only can decide whether or not to incorporate new macros in their package.
%
% \section{Acknowledgements}
-% I whish to express my deepest thanks to Michel Goosens who spotted some errors
+% I wish to express my deepest thanks to Michel Goosens who spotted some errors
% and very kindly submitted them to me so that I was able to correct them.
%
% \StopEventually{%
@@ -190,7 +190,7 @@
%
% The next macros are just for debugging. With the \texttt{tracing} package it
% would probably be better to define other macros, but this is not for the
-% users, but for the devellopers.
+% users, but for the developers.
% \begin{macrocode}
\def\TRON{\tracingcommands\tw@ \tracingmacros\tw@}%
\def\TROF{\tracingcommands\z@ \tracingmacros\z@}%
@@ -216,8 +216,13 @@
% are half as thick; so when the default line thickness is specified to, say,
% 1pt, thick lines will be 1pt thick and thin lines will be 0.5pt thick. The
% default whole width of thick lines is 0,8pt, but this is specified in the
-% kernel of \LaTeX\ and\slash or in \texttt{pict2e}.
+% kernel of \LaTeX\ and\slash or in \texttt{pict2e}. On the opposite it is
+% necessary to redefine |\linethickness| because the \LaTeX\ kernel global definition
+% does not hide the space after the closed brace when you enter something such as
+% |\linethickness{1mm}| followed by a space or a new line.\footnote{Thanks to
+% Daniele Degiorgi (\texttt{degiorgi@inf.ethz.ch}).}
% \begin{macrocode}
+\gdef\linethickness#1{\@wholewidth#1\@halfwidth.5\@wholewidth\ignorespaces}%
\newcommand\defaultlinethickness[1]{\defaultlinewidth=#1\relax
\def\thicklines{\linethickness{\defaultlinewidth}}%
\def\thinlines{\linethickness{.5\defaultlinewidth}}%
@@ -242,8 +247,10 @@
% A similar macro |\LINE| operates between two explicit points with absolute
% coordinates, instead of relative to the position specified by a |\put|
% command; it resorts to the |\polyline| macro that is to be defined in a while.
+% The |\@killglue|command might be unnecessary, but it does not harm; it eliminates any
+% explicit or implicit spacing that might precede this command.
% \begin{macrocode}
-\def\LINE(#1)(#2){\polyline(#1)(#2)}%
+\def\LINE(#1)(#2){\@killglue\polyline(#1)(#2)}%
% \end{macrocode}
%
% The |\line| macro is redefined by making use of a new division routine that
@@ -258,7 +265,7 @@
% change remarkably; in facts the machinery for complex numbers is invoked:
% |\DirOfVect| takes the only macro argument (that actually contains a comma
% separated pair of fractional numbers) and copies it to |\Dir@line| (an
-% arbitrarily named control sequence) after renormalizing to unit magnitude;
+% arbitrarily named control sequence) after re-normalizing to unit magnitude;
% this is passed to |GetCoord| that separates the two components into the
% control sequences |\d@mX| and|\d@mY|; these in turn are the values that are
% actually operated upon by the subsequent commands.
@@ -270,7 +277,7 @@
% of the line direction; since the line length is actually the horizontal
% component for non vertical lines, it is necessary to compute the actual line
% length for non vertical lines by dividing the given length by the
-% magnitude of horizontal cosine |\d@mX|, and the line legth is accordingly
+% magnitude of horizontal cosine |\d@mX|, and the line length is accordingly
% scaled:
% \begin{macrocode}
\ifdim\d@mX\p@=\z@\else
@@ -304,7 +311,7 @@
\def\SplitNod@(#1,#2)#3#4{\edef#3{#1}\edef#4{#2}}%
% \end{macrocode}
%
-% The redifinitions and the new definitions for vectors are a little more
+% The redefinitions and the new definitions for vectors are a little more
% complicated than with segments, because each vector is drawn as a filled
% contour; the original \texttt{pict2e} macro checks if the slopes are
% corresponding to the limitations specified by Lamport (integer three digit
@@ -358,8 +365,8 @@
% \end{macrocode}
% If the vector is really sloping we need to scale the $l_x$ component in order
% to get the vector total length; we have to divide by the cosine of the vector
-% inclination wich is the real part of the vector direction. I use my division
-% macro; since it yields a ``factor'' I directly use it to scale the lenght of
+% inclination which is the real part of the vector direction. I use my division
+% macro; since it yields a ``factor'' I directly use it to scale the length of
% the vector. I finally memorize the true vector length in the internal
% dimension |@tdB|
% \begin{macrocode}
@@ -372,7 +379,7 @@
\fi
\@tdB=\@linelen
% \end{macrocode}
-% The remaining code is defintely similar to that of \texttt{pict2e}; the
+% The remaining code is definitely similar to that of \texttt{pict2e}; the
% real difference consists in the fact that the arrow is designed by itself
% without the stem; but it is placed at the vector end; therefore the first
% statement is just the transformation matrix used by the output driver to
@@ -384,8 +391,8 @@
\pIIe@vector
\pIIe@fillGraph
% \end{macrocode}
-% Now we can restore the stem lenght that must be shortened by the dimension of
-% the arrow; examinimng the documentation of \texttt{pict2e} we discover that
+% Now we can restore the stem length that must be shortened by the dimension of
+% the arrow; examining the documentation of \texttt{pict2e} we discover that
% we have to shorten it by an approximate amount of $AL$ (with the notations of
% \texttt{pict2e}, figs~10 and~11); the arrow tip parameters are stored in
% certain variables with which we can determine the amount of the stem
@@ -404,10 +411,10 @@
% \end{macrocode}
%
% Now we define the macro that does not require the specification of the length
-% or the $l_x$ lenght component; the way the new |\vector| macro works does not
+% or the $l_x$ length component; the way the new |\vector| macro works does not
% actually require this specification, because \TeX\ can compute the vector
-% length, provided the two direction components are exacly the horizontal and
-% vertical vector components. If the horizontal component is zero, the actual lenght
+% length, provided the two direction components are exactly the horizontal and
+% vertical vector components. If the horizontal component is zero, the actual length
% must be specified as the vertical component.
% \begin{macrocode}
\def\Vector(#1,#2){%
@@ -439,7 +446,7 @@
% \end{flushleft}
% In order to write a recursive macro we need aliases for the parentheses;
% actually we need only the left parenthesis, but some editors complain about
-% unmathched delimiters, so we define an alias also for the right parenthesis.
+% unmatched delimiters, so we define an alias also for the right parenthesis.
% \begin{macrocode}
\let\lp@r( \let\rp@r)
% \end{macrocode}
@@ -447,12 +454,15 @@
% the drawing position to this point; afterwards it looks for the second point
% coordinates; they start with a left parenthesis; if this is found the
% coordinates should be there, but if the left parenthesis is missing (possibly
-% preceeded by spaces that are ignored by the |\@ifnextchar| macro) then a
+% preceded by spaces that are ignored by the |\@ifnextchar| macro) then a
% warning message is output together with the line number where the missing
% parenthesis causes the warning: beware, this line number might point to
-% several lines further on along the source file!
+% several lines further on along the source file! In any case it's necessary to insert
+% a |\@killglue| command, because |\polyline| refers to absolute coordinates
+% not necessarily is put in position through a |\put| command that provides to
+% eliminate any spurious spaces preceding this command.
% \begin{macrocode}
-\def\polyline(#1){\beveljoin\GetCoord(#1)\d@mX\d@mY
+\def\polyline(#1){\@killglue\beveljoin\GetCoord(#1)\d@mX\d@mY
\pIIe@moveto{\d@mX\unitlength}{\d@mY\unitlength}%
\@ifnextchar\lp@r{\p@lyline}{%
\PackageWarning{curve2e}%
@@ -488,8 +498,8 @@
\multiput(0,0)(0,10){\@tempcnta}{\line(1,0){\@GridWd}}\thinlines}%
\endgroup\ignorespaces}
% \end{macrocode}
-% Rounding uo is useful because also the grid margins fall on coordinates
-% multiples of 10. It resosrts to the |\Integer| macro that will be described in
+% Rounding up is useful because also the grid margins fall on coordinates
+% multiples of 10. It resorts to the |\Integer| macro that will be described in
% a while.
% \begin{macrocode}
\def\RoundUp#1modulo#2to#3{\expandafter\@tempcnta\Integer#1.??%
@@ -501,7 +511,7 @@
% \end{macrocode}
% The |\Integer| macro takes a possibly fractional number whose decimal
% separator, if present, \textit{must} be the decimal point and uses the point
-% as an argunent delimiter If one has the doubt that the number being passed
+% as an argument delimiter If one has the doubt that the number being passed
% to |\Integer| might be an integer, he/she should call the macro with a
% further point;
% if the argument is truly integer this point works as the delimiter of the
@@ -513,17 +523,17 @@
%
% \subsection{The new division macro}
% Now comes one of the most important macros in the whole package: the division
-% macro; it takes two lengths as imput values ant computes their fractional
+% macro; it takes two lengths as input values ant computes their fractional
% ratio.
% It must take care of the signs, so that it examines the operand signs and
% determines the result sign separately conserving this computed sign in the
% macro |\segno|; this done, we are sure that both operands are or are
% made positive; should the
% numerator be zero it directly issues the zero quotient; should the
-% denominator be zero it ouputs a signed ``infinity'', that is the maximun
+% denominator be zero it outputs a signed ``infinity'', that is the maximum
% allowable length measured in points that \TeX\ can deal with.
% Since the result is assigned a value, the calling statement must pass as the
-% third argument eiter a control sequence or an active character. Of course the
+% third argument either a control sequence or an active character. Of course the
% first operand is the dividend, the second the divisor and the third the
% quotient.
% \begin{macrocode}
@@ -562,7 +572,7 @@
\fi
% \end{macrocode}
% In the above code the |\begingroup|\dots|\endgroup| maintain all registers
-% local so that ony the result must be globally defined. The |\ifx|\dots|\fi|
+% local so that only the result must be globally defined. The |\ifx|\dots|\fi|
% construct assures the division machinery is not redefined; I use it in so
% many packages that its better not to mix up things even with slightly
% different definitions.
@@ -570,7 +580,7 @@
% The next two macros are one of the myriad variants of the dirty trick used by
% Knuth for separating a measure from its units that \textit{must} be points,
% ``\texttt{pt}''; One has to call |\Numero| with a control sequence and a
-% dimension; the dimension value in points is assinged to the control sequence.
+% dimension; the dimension value in points is assigned to the control sequence.
% \begin{macrocode}
\ifx\undefined\@Numero% s
{\let\cc\catcode \cc`p=12\cc`t=12\gdef\@Numero#1pt{#1}}%
@@ -587,9 +597,9 @@
% We now start with trigonometric functions. We define the macros |\SinOf|,
% |\CosOf| and |\TanOf| (we might define also |\CotOf|, but the cotangent does
% not appear so essential) by means of the parametric formulas that require the
-% knowledge of the tangento of the half angle. We want to specify the angeles
+% knowledge of the tangent of the half angle. We want to specify the angles
% in sexagesimal degrees, not in radians, so we can make accurate reductions to
-% the main quadrants. we use the fromulas
+% the main quadrants. we use the formulas
% \begin{eqnarray*}
% \sin\theta &=& \frac{2}{\cot x + \tan x}\\
% \cos\theta &=& \frac{\cot x - \tan x}{\cot x + \tan x}\\
@@ -607,7 +617,7 @@
% tangent or cotangent values) and in that case we prefer to approximate the
% small angle function value with its first or second order truncation of the
% McLaurin series; in facts for angles whose magnitude is smaller than $1^\circ$
-% the magnitude of the independent variable $y=2x$ (the angle in degress
+% the magnitude of the independent variable $y=2x$ (the angle in degrees
% converted to radians) is so small (less than 0.017) that the sine and tangent
% can be freely approximated with $y$ itself (the error being smaller than
% approximately $10^{-6}$), while the cosine can be freely approximated with
@@ -648,12 +658,12 @@
% \end{macrocode}
%
% Now that we have the macro for computing the tangent and cotangent of the
-% half angle, we can compute the real trigonometric functions we are interesed
+% half angle, we can compute the real trigonometric functions we are interested
% in. The sine value is computed after reducing the sine argument to the
% interval $0^\circ< \theta<180^\circ$; actually special values such as
-% $0^\circ$,$90^\circ$, $180^\circ$, et cetera, are taken care separtely, so
+% $0^\circ$,$90^\circ$, $180^\circ$, et cetera, are taken care separately, so
% that CPU time is saved for these special cases. The sine sign is taken care
-% separately accordinng to the quadrant of the sine argument.
+% separately according to the quadrant of the sine argument.
% \begin{macrocode}
\def\SinOf#1to#2{\begingroup%
\@tdA=#1\p@%
@@ -736,7 +746,7 @@
% \end{macrocode}
%
% For the tangent computation we behave in a similar way, except that we
-% consider the fundamantal interval as $0^\circ<\theta<90^\circ$; for the odd
+% consider the fundamental interval as $0^\circ<\theta<90^\circ$; for the odd
% multiples of $90^\circ$ we assign the result a \TeX\ infinity value, that is
% the maximum number in points a dimension can be.
% \begin{macrocode}
@@ -781,14 +791,14 @@
% \cs{Arc}(\meta{{\rmfamily center}})(\meta{{\rmfamily starting
% point}}){\meta{{\rmfamily angle}}}
% \end{flushleft}
-% If the \meta{angle} is positive the arc runs counterclokwise from the
+% If the \meta{angle} is positive the arc runs counterclockwise from the
% starting point; clockwise if it's negative.
%
-% It's necessary to detrmine the end point and the control points of the
+% It's necessary to determine the end point and the control points of the
% Bézier spline(s) that make up the circular arc.
%
% The end point is obtained from the rotation of the starting point around the
-% center; but the \texttt{pict2e} comand |\pIIe@rotate| is such that the
+% center; but the \texttt{pict2e} command |\pIIe@rotate| is such that the
% pivoting point appears to be non relocatable.
% It is therefore necessary to resort to low level \TeX\ commands and the
% defined trigonometric functions and a set of macros that operate on complex
@@ -798,7 +808,7 @@
% We need therefore macros for summing, subtracting, multiplying, dividing
% complex numbers, for determining they directions (unit vectors); a unit vector
% is the complex number divided by its magnitude so that the result is the
-% cartesian form of the Euler's equation
+% Cartesian form of the Euler's equation
% \[
% \mathrm{e}^{\mathrm{j}\phi} = \cos\phi+\mathrm{j}\sin\phi
% \]
@@ -826,7 +836,7 @@
% control sequences, not used directly.
%
% The magnitude $M$ is determined by taking the moduli of the real and
-% immaginary parts, changing their signs if necessary; the larger component is
+% imaginary parts, changing their signs if necessary; the larger component is
% then taken as the reference one so that, if $a$ is larger than $b$, the
% square root of the sum of their squares is computed as such:
% \[
@@ -865,7 +875,7 @@
% the vector or complex number magnitude multiplied by the length of one point.
%
% Since the macro for determining the magnitude of a vector is available, we
-% can now normalize the vector to its magnitude, therefore getting the cartesian
+% can now normalize the vector to its magnitude, therefore getting the Cartesian
% form of the direction vector. If by any chance the direction of the null
% vector is requested, the output is again the null vector, without
% normalization.
@@ -894,7 +904,7 @@
% \end{macrocode}
% The next macro computes the magnitude and the direction of the difference of
% two complex numbers; the first input argument is the minuend, the second is
-% the subtraend; the output quantities are the third argument containing the
+% the subtrahend; the output quantities are the third argument containing the
% magnitude of the difference and the fourth is the direction of the difference.
% The service macro |\SubVect| executes the difference of two complex numbers
% and is described further on.
@@ -921,7 +931,7 @@
\SinOf#1to\t@Y\MakeVectorFrom\t@X\t@Y to#2\ignorespaces}%
% \end{macrocode}
%
-% Sometimes it is necessary to scale a vector by an arbatrary real factor; this
+% Sometimes it is necessary to scale a vector by an arbitrary real factor; this
% implies scaling both the real and imaginary part of the input given vector.
% \begin{macrocode}
\def\ScaleVect#1by#2to#3{\GetCoord(#1)\t@X\t@Y
@@ -958,7 +968,7 @@
% \end{macrocode}
%
% For the multiplication we need to split the operation according to the fact
-% that we want to multiply by the second operand or by the complex comjugate of
+% that we want to multiply by the second operand or by the complex conjugate of
% the second operand; it would be nice if we could use the usual
% postfixed asterisk notation for the complex conjugate, but I could not find
% a simple means for doing so; therefore I use the prefixed notation, that is
@@ -1028,7 +1038,7 @@
% absolute value of the arc aperture.
% If the rotation angle is larger than $360^\circ$ a message is issued that
% informs the user that the angle will be reduced modulo $360^\circ$; this
-% operation is performed by succesive subtractions rather than with modular
+% operation is performed by successive subtractions rather than with modular
% arithmetics on the assumption that in general one subtraction suffices.
% \begin{macrocode}
\Numero\@gradi\@tdA
@@ -1046,7 +1056,7 @@
\CopyVect#1to\@Cent \GetCoord(\@pPun)\@pPunX\@pPunY
% \end{macrocode}
% From now on it's better to define a new macro that will be used also in the
-% subsequent macros that trace arcs; here we already have the starting poin
+% subsequent macros that trace arcs; here we already have the starting point
% coordinates and the angle to draw the arc, therefore we just call the new
% macro, stroke the line and exit.
% \begin{macrocode}
@@ -1085,7 +1095,7 @@
% Here we need the extrema of the arc and the coordinates of the control points
% of the Bézier cubic spline that traces the arc. The control points lay on the
% perpendicular to the vectors that join the arc center to the starting
-% and end points respectively. Their distance $K$ from the adiacent nodes is
+% and end points respectively. Their distance $K$ from the adjacent nodes is
% determined with the formula
% \[
% K= \frac{4}{3}\,\frac{1-\cos\theta}{\sin\theta}R
@@ -1146,7 +1156,7 @@
% length as an angular quantity, i.e. the arc amplitude that must be subtracted
% from the total arc to be drawn; (c) the direction of the arrow should be
% corresponding to the tangent to the arc at the point where the arrow tip is
-% attached;(d) tiltilng the arrow tip by half its angular amplitude; (e)
+% attached;(d) tilting the arrow tip by half its angular amplitude; (e)
% determining the resulting position and direction of the arrow tip so as to
% draw a zero length vector; (f) possibly repeating the same procedure for the
% other end of the arc; (g) shortening the total arc angular amplitude by the
@@ -1277,7 +1287,7 @@
\pIIe@strokeGraph\ignorespaces}%
% \end{macrocode}
%
-% It must be understood that the curved vectors, tha above circular arcs
+% It must be understood that the curved vectors, the above circular arcs
% terminated with an arrow tip at one or both ends, have a nice appearance only
% if the arc radius is not too small, or, said in a different way, if the arrow
% tip angular width does not exceed a maximum of a dozen degrees (and this is
@@ -1304,16 +1314,16 @@
% which can be repeated an arbitrary number of times.
%
% The first macro initializes the drawing and the third one strokes it; the
-% real work is done by the second macro. The first macro inizializes the
+% real work is done by the second macro. The first macro initializes the
% drawing but also memorizes the starting direction; the second macro traces
-% the current Bézier arc reaching the destination point with the sepcified
+% the current Bézier arc reaching the destination point with the specified
% direction, but memorizes this direction as the one with which to start the
% next arc. The overall curve is then always smooth because the various
% Bézier arcs join with continuous tangents. If a cusp is desired it is
% necessary to change the memorized direction at the end of the arc before the
% cusp and before the start of the next arc; this is better than stroking the
% curve before the cusp and then starting another curve, because the curve
-% jointure at the cusp is not stroked with the same command, therefore we get
+% joining point at the cusp is not stroked with the same command, therefore we get
% two superimposed curve terminations. We therefore need another small macro
% |\ChangeDir| to perform this task.
%
@@ -1323,15 +1333,15 @@
% direction; the macros themselves provide to the normalization and
% memorization.
%
-% The next desirable poit would be to design a macro that accepts optional node
+% The next desirable point would be to design a macro that accepts optional node
% directions and computes the missing ones according to a suitable strategy. I
% can think of many such strategies, but none seems to be generally applicable,
% in the sense that one strategy might give good results, say, with sinusoids
-% and another one,say, with cardioids, but neither one is suitable for both
+% and another one, say, with cardioids, but neither one is suitable for both
% cases.
%
% For the moment we refrain from automatic direction computation, but we design
-% the general macro as if directions were iptional.
+% the general macro as if directions were optional.
%
% Here we begin with the first initializing macro that receives in the first
% argument the starting point and in the second argument the direction of the
@@ -1346,7 +1356,7 @@
\CopyVect\@tempa,\@tempb to\@Dzero
\DirOfVect\@Dzero to\@Dzero}
% \end{macrocode}
-% And this reinitializes the direction after a cusp
+% And this re-initializes the direction after a cusp
% \begin{macrocode}
\def\ChangeDir<#1>{%
\GetCoord(#1)\@tempa\@tempb
@@ -1364,8 +1374,8 @@
% The ``real'' curve macro comes next; it is supposed to determine the control
% points for joining the previous point (initial node) with the specified
% direction to the next point with another specified direction (final node).
-% Since the control points are along the sepcified directions, it is necessary
-% to determine the distances from the adiacent curve nodes. This must work
+% Since the control points are along the specified directions, it is necessary
+% to determine the distances from the adjacent curve nodes. This must work
% correctly even if nodes and directions imply an inflection point somewhere
% along the arc.
%
@@ -1378,11 +1388,11 @@
% interpreted as half the chord of the osculating circle; this curve chord
% division is made proportionally to the projection of the tangent directions
% on the chord itself. Excluding degenerate cases that may be dealt with
-% directly, immagine the triangle built with the chord and the two tangents;
-% this triangle is staightforward if there is no inflection point; otherwise it
+% directly, imagine the triangle built with the chord and the two tangents;
+% this triangle is straightforward if there is no inflection point; otherwise it
% is necessary to change one of the two directions by reflecting it about the
% chord. This is much simpler to view if a general rotation of the whole
-% contruction is made so as to bring the curve chord on the $x$ axis, because
+% construction is made so as to bring the curve chord on the $x$ axis, because
% the reflection about the chord amounts to taking the complex conjugate of one
% of the directions. In facts with a concave curve the ``left'' direction
% vector arrow and the ``right'' direction vector tail lay in the same half
@@ -1393,9 +1403,9 @@
% This done the perpendicular from the triangle vertex to the cord divides the
% chord in two parts (the foot of this perpendicular may lay outside the chord,
% but this is no problem since we are looking for positive solutions, so that
-% if we get negative numbers we just negate tem); these two parts are taken as
+% if we get negative numbers we just negate them); these two parts are taken as
% the half chords of the osculating circles, therefore there is no problem
-% determining the distances $K_{\mathrm{left}}$ and $K_{\mathrm{rigth}}$ from
+% determining the distances $K_{\mathrm{left}}$ and $K_{\mathrm{right}}$ from
% the left and right
% nodes by using the same formula we used with circular arcs. Well\dots\ the
% same formula means that we have to determine the radius from the half chord
@@ -1424,7 +1434,7 @@
% along the real axis; the chord length is memorized in |\@Chord|.
%
% We now examine the various degenerate cases, when either tangent is
-% perpendicular to che chord, or when it is parallel pointing invard or outward,
+% perpendicular to the chord, or when it is parallel pointing inward or outward,
% with or without inflection.
%
% We start with the $90^\circ$ case for the ``left'' direction
@@ -1469,7 +1479,7 @@
% \end{macrocode}
% \dots\ and, finally, from when both directions are oblique with respect to
% the chord; we must see if there is an inflection point; if both direction
-% point to the same half plane we have to take the complex conjugate of une
+% point to the same half plane we have to take the complex conjugate of one
% direction so as to define the triangle we were speaking about above.
% \begin{macrocode}
\else
@@ -1483,7 +1493,7 @@
% The control sequence |\@Dwpuno| contains the right direction for forming the
% triangle; we cam make the weighed subdivision of the chord according to the
% horizontal components of the directions; we eventually turn negative values
-% to positive ones since we are intersted in the magnitudes of the control
+% to positive ones since we are interested in the magnitudes of the control
% vectors.
% \begin{macrocode}
\GetCoord(\@Dwpuno)\@Xwpuno\@Ywpuno
@@ -1523,8 +1533,8 @@
% chord, but we operate on the original points and directions; all we had to
% compute, after all, were the distances of the control point along the
% specified directions; remember that the ``left'' control point is along the
-% positive ``left'' direction, while the ``right'' conptrol point precedes the
-% curve node along the ``rigth'' direction, so that a vector subtraction must
+% positive ``left'' direction, while the ``right'' control point precedes the
+% curve node along the ``right'' direction, so that a vector subtraction must
% be done.
% \begin{macrocode}
\ScaleVect\@Dzero by\@Mcpzero to\@CPzero
@@ -1573,8 +1583,8 @@
% checks for the next node and direction; if a second node is missing, it issues
% a warning message and does not draw anything. The second macro defines the
% path to the next point and checks for another node; if the next list item is
-% a square bracket delimited argument, it iterprets it as a change of
-% direction, while if it is another parentesis delinite argument it inpterprets
+% a square bracket delimited argument, it interprets it as a change of
+% direction, while if it is another parenthesis delimited argument it interprets
% it as a new node-direction specification;
% if the node and direction list is terminated, it issues the stroking command
% and exits the recursive process. The |@ChangeDir| macro is just an interface
@@ -1595,7 +1605,7 @@
% \end{macrocode}
%
% As a concluding remark, please notice the the |\Curve| macro is certainly the
-% most confortable to use, but it is sort of frozen in its possibilities. The
+% most comfortable to use, but it is sort of frozen in its possibilities. The
% user may certainly use the |\StartCurve|, |\CurveTo|, |\ChangeDir|, and
% |\CurveFinish| for a more versatile set of drawing macros; evidently nobody
% forbids to exploit the full power of the |\cbezier| original macro for cubic