diff options
author | Karl Berry <karl@freefriends.org> | 2008-05-05 18:33:12 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-05-05 18:33:12 +0000 |
commit | b5ee18e1b44b94933386f3606504aa53d44fbed6 (patch) | |
tree | 588b1096863c18f4c7da64a9200fcb2dbf8f1ad0 /Master/texmf-dist/source | |
parent | 00832b82ca103db8b3e1f34270a422c5921e7a27 (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.dtx | 168 |
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 |