summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/curve2e
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-01-06 03:06:05 +0000
committerNorbert Preining <norbert@preining.info>2023-01-06 03:06:05 +0000
commit90bcf28fa05846213901e6a0fff80656a13bc701 (patch)
treef2871bd21df7a65090c45517d3b9769a34f3cf6c /macros/latex/contrib/curve2e
parent7b266590db3f49ad361a129142e0531d2acc1b36 (diff)
CTAN sync 202301060306
Diffstat (limited to 'macros/latex/contrib/curve2e')
-rw-r--r--macros/latex/contrib/curve2e/README.txt56
-rw-r--r--macros/latex/contrib/curve2e/curve2e-manual.pdfbin571431 -> 561047 bytes
-rw-r--r--macros/latex/contrib/curve2e/curve2e-manual.tex158
-rw-r--r--macros/latex/contrib/curve2e/curve2e.dtx230
-rw-r--r--macros/latex/contrib/curve2e/curve2e.pdfbin654288 -> 693186 bytes
5 files changed, 268 insertions, 176 deletions
diff --git a/macros/latex/contrib/curve2e/README.txt b/macros/latex/contrib/curve2e/README.txt
index 4fc8d958be..0cf4cac557 100644
--- a/macros/latex/contrib/curve2e/README.txt
+++ b/macros/latex/contrib/curve2e/README.txt
@@ -1,11 +1,11 @@
%%
%% This is file `README.txt',
%%
-%% Copyright (C) 2005--2021 Claudio Beccari all rights reserved.
+%% Copyright (C) 2005--2023 Claudio Beccari all rights reserved.
%% License information appended
%%
File README.txt for package curve2e
- [2021-01-12 v.2.2.15 Extension package for pict2e]
+ [2023-01-01 v.2.2.22 Extension package for pict2e]
The package bundle curve2e is composed of the following files
curve2e.dtx
@@ -35,11 +35,11 @@ pdflatex on curve2e.dtx.
The curve2e-manual file contains the user manual; in this way the long
preliminary descriptive part has been transferred to a shorter dedicated
-file, and the “normal” user should have enough information to use the
+file, where the “normal” user should find enough information to use the
package. The curve2e.pdf file, extracted from the .dtx one, contains the
-code documentation and is intended for the developers, or for the curious
+code documentation and is intended for developers, or for curious
advanced users. For what concerns curve2e-v161.sty, it is a previous
-roll back version of this package; see below why the older version might
+fall back version of this package; see below why the older version might
become necessary to the end user.
README.txt, this file, contains general information.
@@ -58,21 +58,21 @@ the slopes at such nodes; closed paths of any shape can be filled with
color; all coordinates are treated as ordered pairs, i.e. 'complex
numbers'; coordinates may be expressed also in polar form. Coordinates
may be specified with macros, so that editing any drawing is rendered
-much simpler: any point specified with a macro is modified only once in
-its macro definition.
+much simpler: any point specified with a macro may be modified only
+once in its macro definition.
Some of these features have been incorporated in the 2009 version of
pict2e; therefore this package avoids any modification to the original
-pict2e commands. In any case the version of curve2e is compatible with
+pict2e commands. In any case this version of curve2e is compatible with
later versions of pict2e; see below.
-Curve2e now accepts polar coordinates in addition to the usual cartesian
-ones; several macros have been upgraded; a new macro for tracing cubic
-Bezier splines with their control nodes specified in polar form is
-available. The same applies to quadratic Bezier splines. The \multiput
-command has been completely modified in a backwards compatible way; the
-new version allows to manipulate the increment components in a
-configurable way. A new xmultiput command has been defined that is more
-configurable than the original one; both commands multiput and xmultiput
+As said above, curve2e now accepts polar coordinates in addition to the
+usual cartesian ones; several macros have been upgraded; a new macro for
+tracing cubic Bezier splines with their control nodes specified in polar
+form is available. The same applies to quadratic Bezier splines. The
+\multiput command has been completely modified in a backwards compatible
+way; the new version allows to manipulate the increment components in a
+configurable way. A new \xmultiput command has been defined that is more
+configurable than the original one; both commands \multiput and \xmultiput
are backwards compatible with the original picture environment definition.
Curve2e solves a conflict with package eso-pic.
@@ -80,7 +80,14 @@ Curve2e solves a conflict with package eso-pic.
This version of curve2e is almost fully compatible with pict2e dated
2014/01/12 version 0.2z and later; as of today the last pct2e revision
is version 0.4b dated 2020, and curve2e has been tested also with this
-revision confirming that it performs as expected.
+revision confirming that it performs as expected.
+Pay attention, though, that in 2020 also the \LaTeX kernel part dealing
+with the picture environment has been upgraded; since then, the picture
+environment opening and internal commands can handle explicit dimensions
+and accepts dimensional expressions as those that can be processed by the
+eTeX command \dimexpr. Such functionalities should be avoided when using
+curve2e; at least when dealing with coordinates that curve2e assumes to
+be real possibly floating point numbers, not dimensions.
If you specify:
@@ -94,7 +101,7 @@ made available to the LaTeX developers by mid October 2018. Should the
user have an older or a basic/incomplete installation of the TeX system,
such L3 functions might not be available. This is why this
package checks the presence of the developer interface; in case
-such interface is not available it rolls back to the previous version
+such interface is not available it falls back to the previous version
renamed curve2e-v161.sty, which is part of this bundle; this roll-back
file name must not be modified in any way. The compatibility mentioned
above implies that the user macros remain the same, but their
@@ -102,7 +109,7 @@ implementation requires the L3 interface. Some macros and environments
rely totally on the xfp package functionalities, but legacy documents
source files should compile correctly.
-The package has the LPPL status of maintained.
+This package has the LPPL status of maintained.
According to the LPPL licence, you are entitled to modify this package,
as long as you fulfil the few conditions set forth by the Licence.
@@ -121,16 +128,5 @@ Claudio Beccari
claudio dot beccari at gmail dot com
-%%
-%% Distributable under the LaTeX Project Public License,
-%% version 1.3c or higher (your choice). The latest version of
-%% this license is at: http://www.latex-project.org/lppl.txt
-%%
-%% This work is "maintained"
-%%
-%% This work consists of files curve2e.dtx and curve2e-manual.tex,
-%% and the derived files curve2e.sty and curve2e.pdf, curve2e-manual.pdf,
-%% plus the auxiliary files README.txt and curve2e-v161.sty.
-%%
%%
%% End of file `README.txt'.
diff --git a/macros/latex/contrib/curve2e/curve2e-manual.pdf b/macros/latex/contrib/curve2e/curve2e-manual.pdf
index 9b7de7d266..8ad904a665 100644
--- a/macros/latex/contrib/curve2e/curve2e-manual.pdf
+++ b/macros/latex/contrib/curve2e/curve2e-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/curve2e/curve2e-manual.tex b/macros/latex/contrib/curve2e/curve2e-manual.tex
index e53535f1b9..5b3c08c697 100644
--- a/macros/latex/contrib/curve2e/curve2e-manual.tex
+++ b/macros/latex/contrib/curve2e/curve2e-manual.tex
@@ -1,6 +1,6 @@
% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode
-\documentclass[a4paper]{article}
+\documentclass[a4paper]{article}\errorcontextlines=100
\hfuzz 10pt
\usepackage[utf8]{inputenc}
\usepackage{lmodern,textcomp}
@@ -68,11 +68,13 @@
% All definitions and assignments are local
% #1 := Latex font size command or \setfontsize{<size>}
% %2 := \textwidth percentage for the code box; the complement, less the
-% column gap for the result dedicata al codice
+% column gap for the compiled result
+%
% Syntax: \begin{Esempio}[<size command>](<code box percentage width>)
+%
% Warning: No extra space is put before and/or after the display; this
% environment is assumed to be used within a figure environment
-% that already provides its on vertical spaces. Should this
+% that already provides its own vertical spaces. Should this
% environment be used between paragraphs, the user should manually
% provide a convenient amount of space above and below it.
% Remember: This environment sets itself in vertical mode
@@ -121,21 +123,22 @@
\tableofcontents
\end{multicols}
-\begin{abstract}
+\begin{abstract}\setfontsize{9.5}
This file contains the user manual of the \pack{curve2e} extension package to the \pack{pict2e} bundle; the latter was described by Lamport himself in the 1994 second edition of his \LaTeX\ handbook.
Please take notice that on April 2011 a package \pack{pict2e} upgraded version has been released that incorporates some of the commands defined in early versions of this package \pack{curve2e}; apparently there are no conflicts, because this package contains only the advanced features that extend the above package.
-Since this extension redefines some commands and introduces some more drawing facilities (that allow to draw circular arcs and arbitrary curves with the minimum of user intervention) the user needs a user manual that contains several actual examples. The software available to show the code and its result after compilation is incompatible with the usual \LaTeX\ |ltxdoc| class for code documentation, therefore a separate user manual has been made available. If the user wants to explore the \pack{curve2e} code and its documentation s/he has available the |curve2e.pdf| file.
+Since this extension redefines some commands and introduces some more drawing facilities (that allow to draw circular arcs and arbitrary curves with the minimum of user intervention) the user needs a user manual that contains several actual examples; this auxiliary manual is contained in file |curve2e-manual.pdf|. The software available to show the drawing code and its result after compilation is incompatible with the usual
+\LaTeX\ |ltxdoc| class for code documentation, therefore a separate user manual has been made available. If the user wants to explore the \pack{curve2e} code and its documentation s/he has available the |curve2e.pdf| file. Either file is readable by entering in a terminal window the command |texdoc curve2e-manual| or |texdoc curve2e.pdf|; please do not forget the extension when you want to read the code documentation.
\end{abstract}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Installation}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-If \TeX\ system was installed with a \TeX~Live or a MiK\TeX\ complete and updated distribution this packageis already installed; in order to verify open a terminal or command prompt window and use it to enter the \texttt{texdoc curve2e-manual}; as soon as the command is executed a screen window should open displaying this manual. If this does not happen, either you misspelt the command (it happens more often than not), or your installation is not complete and updated.
+If \TeX\ system was installed with a \TeX~Live or a MiK\TeX\ complete and updated distribution this package is already installed; in order to verify open a terminal or command prompt window and use it to enter the \texttt{texdoc curve2e-manual}; as soon as the command is executed a screen window should open displaying this manual. If this does not happen, either you misspelt the command (it happens more often than not), or your installation is not complete and updated.
I suggest you to use your computer installation facilities to install this bundle. Otherwise, download this curve2e.zip package from one of the CTAN (Comprehensive TeX Archive Network) archives, to your downloads folder.
-Before doing anything else verify if you have a personal \texttt{texmf} tree; if not, create one reading you distribution instruction; let us assume that your personal |texmf| archive is in |HOME/texmf| (on Windows change the slash with a backslash) and |HOME| is a path starting from the root of you hard disk and going though several other folders. On Windows~10 it might be |C:\Users\YourName|; on Linux it might simply be |~|; on Mac it would be |~/\Library|, but sometimes the |HOME| might be different, especially o Windows platforms. Create the following subfolders:
+Before doing anything else verify if you have a \emph{personal} \texttt{texmf} tree; if not, create one reading you distribution instruction; let us assume that your personal |texmf| archive is in |HOME/texmf| (on Windows change the slash with a backslash) and |HOME| is a path starting from the root of you hard disk and going though several other folders. On Windows~10 it might be |C:\Users\YourName|; on Linux it might simply be |~|; on Mac it would be |~/\Library|, but sometimes the |HOME| might be different, especially on Windows platforms. Create the following subfolders:
\begin{enumerate}[noitemsep]
\item |HOME/texmf/source/latex/curve2e/|
\item |HOME/texmf/doc/latex/curve2e/|
@@ -150,7 +153,7 @@ Clear the |.../source/latex/curve2e/| folder from the auxiliary files, all those
If your \TeX\ system is correctly set up, your files in your personal tree should be immediately usable; probably you have to create the file-name database with MiK\TeX; in this case read the documentation of your MiK\TeX\ installation to discover how to~do~it.
-Remember to delete all these subfolders if you decide to install a complete updated version of your favourite distribution, and you'd better keep it updated approximately once every 7 or 10 days. This is much simpler than to struggle with these manual operations.
+Remember to delete all these subfolders if you decide to install a complete updated version of your favourite distribution, and you'd better keep it updated approximately once every 7 or 10 days. This is much simpler than to struggle with these manual operations.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Package \pack{pict2e} and this extension \pack{curve2e}}
@@ -271,14 +274,15 @@ Remember to delete all these subfolders if you decide to install a complete upda
user can chose between square or rounded caps; the default is set to
rounded caps; now this feature is directly available with \pack{pict2e}.
%
- \item Commands for specifying the way two lines or curves join to one
- another.
+ \item Commands for specifying the way two straight or curves lines
+ join to one another.
%
\item Originally the |\line| macro was redefined so as to allow large
(up to three digits) integer direction coefficients, but maintaining
the same syntax as in the original \texttt{picture} environment; now
\pack{pict2e} removes the integer number limitations and allows
- fractional values, initially implemented by \pack{curve2e}.
+ fractional values, initially implemented by \pack{curve2e}; direction
+ coefficients may be specified in polar form.
%
\item A new macro |\Line| was originally defined by \pack{curve2e} so
as to avoid the need to specify the horizontal projection of inclined
@@ -318,8 +322,9 @@ Remember to delete all these subfolders if you decide to install a complete upda
analogy with |\LIne|; |\VECTOR| joins two specified points (without
using the |\put| command) with the arrow pointing to the second point.
|\VVECTOR| may be available if used with a sufficiently recent \LaTeX\
- kernel version; is draws a vector, with arrow tips at both ends,
- between two given points
+ kernel version; is draws a vector between two given points, with arrow
+ tips at both ends.
+
%
\item A new macro |\polyline| for drawing polygonal lines is defined
that accepts from two vertices up to an arbitrary (reasonably limited)
@@ -341,13 +346,14 @@ Remember to delete all these subfolders if you decide to install a complete upda
amplitude is specified in sexagesimal degrees, not in radians; a
similar functionality is now achieved with the |\arc| macro of
\pack{pict2e}, which provides also the starred version |\arc*| that
- fills up with the current color the sector generated by circular arc.
+ fills up with the current color the sector generated by a circular arc.
It must be noticed that the syntax is slightly different, so that it's
reasonable that these commands, in spite of producing identical arcs,
might be more comfortable with this or that syntax.
%
- \item Two new macros |\VectorArc| and |\VectorARC| are defined in order
- to draw circular arcs with an arrow at one or both ends.
+ \item Two new macros |\VectorArc| and |\VectorARC| (alias |\VVectorArc|)
+ are defined in order to draw circular arcs with an arrow at one or both
+ ends.
%
\item A new macro |\Curve| is defined so as to draw arbitrary curved
lines by means of cubic Bézier splines; the |\Curve| macro requires
@@ -355,7 +361,7 @@ Remember to delete all these subfolders if you decide to install a complete upda
node. The starred version fills up the interior of the curve with the
current color.
%
- \item the above |\Curve| macro is a recursive macro that can draw an
+ \item The above |\Curve| macro is a recursive macro that can draw an
unlimited (reasonably limited) number of connected Bézier spline arcs
with% continuous tangents except for cusps; these arcs require only the
specification of the tangent direction at the interpolation nodes.
@@ -395,7 +401,7 @@ Remember to delete all these subfolders if you decide to install a complete upda
believed to be more efficient than those defined by the \texttt{trig}
package; in any case the macro names were sufficiently different to
accommodate both definition sets in the same \LaTeX\ run. With the
- progress of the \LaTeX\,3 language, package \pack{xfp} has become
+ progress of the \LaTeX3 language, package \pack{xfp} has become
available, by which any sort of calculations can be done with floating
point decimal numbers; therefore the most common algebraic, irrational
and transcendental functions can be computed in the background with the
@@ -431,13 +437,13 @@ Remember to delete all these subfolders if you decide to install a complete upda
|color| and \pack{pict2e}; it passes to the latter one any possible
option that it can receive; actually the only options that make sense
for \pack{pict2e} are those concerning the arrow tip shapes, either
- \LaTeX\ or PostScript styled, because it is assumed that if this
- package is used, the original \LaTeX\ commands are of no interest: see
- the \pack{pict2e} documentation in order to find the correct options
+ \LaTeX\ (default) or PostScript styled, because it is assumed that if
+ this package is used, the original \LaTeX\ commands are of no interest:
+ see the \pack{pict2e} documentation in order to find the correct options
\pack{pict2e} can receive. If the user wants to use the \pack{xcolor}
package, it has to load it \emph{before} \pack{curve2e}.
%%
-\item Since they are used very much in the following examples, we recall some commands to label certain drawing elements, such as points, lines, arcs, and similar lines, ad to insert legends in some figures. They are \cs{legenda}, \cs{Zbox} and \cs{Pbox}; their syntax is the following:
+\item Since they are used very much in the following examples, we recall some commands to label certain drawing elements, such as points, lines, arcs, and similar lines, and to insert legends in some figures. They are \cs{legenda}, \cs{Zbox} and \cs{Pbox}; their syntax is the following:
\begin{flushleft}\ttfamily\obeylines
|\legenda|\parg{coordinates}\marg{formula}
|\Zbox|\parg{coordinates}\oarg{position}\marg{formula}\oarg{dot diameter}
@@ -496,7 +502,7 @@ They are described in any up to date documentation of package \pack{curve2e}.
$(3+25,4+15)$; the command |\segment(3,4)(28,19)| achieves the same
result without the need of using the |\put| command. Therefore |\LIne|
is just for internal usage, rather than a user command. Now
- \pack{curve2e} has available also the “arc vectors” with the arrow tip
+ \pack{curve2e} has available also the “arc vectors” with the arrow tips
at one or at both ends.
The same applies to the vector commands |\Vector| and |\VECTOR| and
@@ -716,16 +722,17 @@ They are described in any up to date documentation of package \pack{curve2e}.
\item Arcs can be drawn as simple circular arcs, or with one or two
arrows at their ends (curved vectors); the syntax is:
\begin{flushleft}
- \cs{Arc}\parg{center}\parg{starting point}\marg{angle}\\
+ \cs{Arc}\parg{center}\parg{starting point}\marg{angle}\\
\cs{VectorArc}\parg{center}\parg{starting point}\marg{angle}\\
\cs{VectorARC}\parg{center}\parg{starting point}\marg{angle}\\
+\cs{VVectorArc}\parg{center}\parg{starting point}\marg{angle}\\
\end{flushleft}
If the angle is specified numerically it must be enclosed in braces,
while if it is specified with a control sequence the braces (curly
brackets) are not necessary. The above macro |\Arc| draws a simple
circular arc without arrows; |\VectorArc| draws an arc with an arrow
- tip at the ending point; |\VectorARC| draws an arc with arrow tips at
- both ends; see figure~\ref{fig:arcs}.
+ tip at the ending point; |\VectorARC| (alias |\VVectorArc|) draws an
+ arc with arrow tips at both ends; see figure~\ref{fig:arcs}.
\begin{figure}
\begin{Esempio}[\small]%
\unitlength=0.5mm
@@ -736,15 +743,64 @@ They are described in any up to date documentation of package \pack{curve2e}.
\VectorArc(0,20)(15,10){60}
\put(20,20){\makebox(0,0)[l]{$60^\circ$}}
\VectorARC(60,20)(60,0){-180}
+ \VVectorArc(50,20)(60,20){90}
\end{picture}
\end{Esempio}
\caption{Arcs and curved vectors}\label{fig:arcs}
\end{figure}
%%
+ \item The available commands allow to create the drawings necessary to prove some geometrical theorems; for example let us prove the Pitagora's theorem. Figure~\ref{fig:pitagora} displays a right triangle with its hypothenuse laying horizontal; its vertices are labelled \textsf{A}, \textsf{B}, and \textsf{C}, being \textsf{A} the right angle vertex. The height relative to the hypothenuse intersects this side in point \textsf{H}, and divides the whole triangle \textsf{ABC}, in two similar smaller ones \textsf{AHC}, and\textsf{ABH}. Segments \textsf{CH}, and\textsf{HB}, add to the whole hypothenuse length. Figure~\ref{fig:pitagora} displays also the square \textsf{CBDE}, built on the hypothenuse and divided in two rectangles \textsf{CHFE}, and \textsf{HBDF}, where \textsf{HF} is the continuation of the height line.
+
+The lengths of the original right triangle sides are $a, b, c$ as marked on the figure; Point \textsf{H} divides the hypothenuse of length $c$ in two shorter segments of lengths $d, e$, respectively, as marked in the figure
+
+Since the three triangles are similar, we can set up the relationships between their sides:
+\begin{align*}
+d : a = a : c &\Longrightarrow d = a^2/c\\
+e : b = b : c &\Longrightarrow e = b^2/c
+\end{align*}
+
+Therefore rectangle \textsf{CHFE} area equals $ c\cdot d = c\cdot a^2/c = a^2$. Similarly rectangle \textsf{HBDF} area equals $ c\cdot e = c\cdot b^2/c = b^2$. The square built on the hypothenuse has an area equal to $c^2$; therefore it is
+\begin{equation*}
+c^2 = a^2 + b^2
+\end{equation*}
+which proves the Pitagora's theorem.
+
+\begin{figure}
+\centering
+\begin{Esempio}
+\unitlength=1mm
+\begin{picture}(70,80)(-10,-50)
+\AutoGrid
+\thicklines
+\polygon(0,0)(50,0)(18,24)
+\thinlines
+\polyline(0,0)(0,-50)(50,-50)(50,0)
+\Pbox(0,0)[r]{C}[0.75ex]
+\Pbox(18,0)[tr]{H}[0.75ex]
+\Pbox(50,0)[l]{B}[0.75ex]
+\Pbox(18,24)[b]{A}[0.75ex]
+\Pbox(0,-50)[br]{E}[0.75ex]
+\Pbox(50,-50)[bl]{D}[0.75ex]
+\Pbox(18,-50)[br]{F}[0.75ex]
+\Zbox(10,12)[br]{a}[0]
+\Zbox(33,12)[bl]{b}[0]
+\Zbox(25,0)[t]{c}[0]
+\Zbox(9,0)[b]{d}[0]
+\Zbox(30,0)[b]{e}[0]
+\Zbox(50,-25)[r]{c}[0]
+\Zbox(25,-50)[b]{c}[0]
+\Zbox(0,-25)[l]{c}[0]
+\Dashline(18,24)(18,-50){1.5}
+\end{picture}
+\end{Esempio}
+\caption{Geometrical construction to prove Pitagora's theorem}
+\label{fig:pitagora}
+\end{figure}
+
\item A multitude of commands have been defined in order to manage
complex numbers; actually complex numbers are represented as a comma
separated pair of fractional numbers; internally these macros use
- cartesian we use only the cartesian form, and output, unless
+ only the cartesian form, and output, unless
differently specified is also in cartesian form; but input can be in
polar form. They are used to address specific points in the drawing
plane, but also as operators so as to scale and rotate other objects.
@@ -808,7 +864,7 @@ They are described in any up to date documentation of package \pack{curve2e}.
with the current color.
\item \cs{CurveBetween} draws a single cubic Bézier spline between two
- given nodes and with two given directions vectors.
+ given nodes and with two given direction vectors.
\item \cs{CBezierBetween} draws a single cubic Bézier spline between
two given nodes, with two given direction versors along which the
@@ -823,7 +879,7 @@ with the current color.
%\def\y(#1){(13*cos(#1)-5*cos(2*#1)-2*cos(3*#1)-cos(4*#1))/16}
% Varrebbe a penda di provarle con curve2e
%
- \begin{figure}[!htp]
+ \begin{figure}[!htbp]
\begin{Esempio}[\small]%
\unitlength=8mm\relax
\begin{picture}(5,5)
@@ -874,7 +930,7 @@ with the current color.
algorithms are not used, the parameter value appears to mean the
opposite of tension.
A couple of comma separated tension values may be optionally used, they
- are separated with a semicolon form the direction vector,
+ are separated with a semicolon from the direction vector,
and they apply to the arc terminating with the last node; their
specification must precede any possible change of tangent according to
this syntax\footnote{The tension may be specified only for cubic
@@ -979,7 +1035,7 @@ with the current color.
shown in figure~\ref{fig:curva-due-punti}. Notice the effect of
changing the directions at both or a the end nodes of a single cubic
spline. The directions are conveniently expressed with unit vectors
- described by polar coordinates.
+ described by polar coordinates. The |\CurveBetween| macro is built on |\CbezierTp| ; this ltter file is very complicated to describe and its use is reserved to experienced users; its syntax is described in the code documentation file |cureve2e.pdf|; the reader is encouraged to examine it in case s/he is willing to use it.
\begin{figure}\centering\unitlength=0.004\textwidth
\begin{picture}(220,120)(-50,-20)
@@ -1056,8 +1112,8 @@ with the current color.
\CbezierBetween0,0And10,0 WithDirs45:1And-45:1UsingDists12And{1}
\end{picture}
\end{minipage}
-\caption{Comparison between similar arcs drawn with \cs{CurveBetween} (black)
- and \cs{CbezierTo} (red)}
+\caption{Comparison between similar arcs drawn with \cs{CurveBetween} with the default tension values (black)
+ and with several tension values specified (red)}
\label{fig:Cbezier}
\end{figure}
@@ -1069,7 +1125,7 @@ with the current color.
horizontal base line of the frame. Increasing the parameter value
to~4.5, the curved becomes taller and taller, until it wraps itself
displaying an evident loop. We would say that the value of ~2 is a
- reasonable maximum and increasing that value is just to
+ reasonable maximum one and that increasing that value is just to
obtain special effects.
\begin{figure}[!htb]\centering
@@ -1142,7 +1198,7 @@ with the current color.
\label{fig:sinewave}
\end{figure}
- In figure~\ref{fig:quadratic-arcs} some lines drawn are shown; they are
+ In figure~\ref{fig:quadratic-arcs} some lines are shown; they are
drawn with quadratic splines by means of the |\Qurve| macro. In the
left there are some open and closed curves inscribed within a square.
On the right a “real" circle is compared to a quadratic spline circle;
@@ -1225,14 +1281,14 @@ with the current color.
On page~\pageref{pag:multiput} we show the code for the figure shown
there. The red grid is nothing new, except that it displays the
traditional |\multiput| used in this code, shown in a previous example,
- produces exactly the same result. But the for “graphs” on the grid, it
- display an alignment of black dots along the diagonal of the grid
- (again traditional |\multiput| rendered with the new version);
- a number of blue dots along a parabola; another number of magenta
- dots alined along a half sine wave; a number of little green squares
- aligned along a $-15~\circ$ line starting from the center of the grid;
- notice the polar values that are used as polar relative coordinate
- increments.
+ produces exactly the same result. But for what concerns the four
+ “graphs” on the grid, it displays an alignment of black dots along the
+ diagonal of the grid (again traditional |\multiput| rendered with the
+ new version); a number of blue dots along a parabola; another number of
+ magenta coloured dots alined along a half sine wave; a number of little
+ green squares aligned along a $-15~\circ$ sloping line starting from
+ the center of the grid; notice the polar values that are used as polar
+ relative coordinate increments.
\noindent\begin{figure}[!htb]
\begin{minipage}{0.45\linewidth}
@@ -1287,8 +1343,8 @@ with the current color.
A new command |\xmultiput| (not available with the previous versions
of \pack{curve2e}) extended with respect to the original |\multiput| is
defined by using some L3 functions; in particular the cycling
- counter is accessible to the \LaTeX\ commands and it is stepped
- forward from~1 to the value specified in the proper command argument
+ counter is accessible to the \LaTeX\ commands and it is stepped
+ up from~1 to the value specified in the proper command argument
(in the original command it starts from that value and is stepped down
to zero). See the figure on page~\ref{pag:orologio} to inspect its
usage. It is important to notice that if the command|\rotatebox|
@@ -1338,12 +1394,12 @@ with the current color.
documented in the latter package. The syntax of such new commands
is the following
\begin{flushleft}\obeylines
- \cs{fptext}\marg{test}\marg{true}\marg{false}
- \cs{fpdowhile}\meta{test}\meta{operations to be repeated}
- \cs{fpwhiledo}\meta{test}\meta{operations to be repeated}
+ \cs{fptest}\marg{test}\marg{true}\marg{false}
+ \cs{fpdowhile}\marg{test}\marg{operations to be repeated}
+ \cs{fpwhiledo}\marg{test}\marg{operations to be repeated}
\end{flushleft}
The macro |\fptest| requires two further arguments that contain
- what to do if the \meta{test} is true, and what to do of the
+ what to do if the \meta{test} is true, and what to do if the
\meta{test} is false.
The \meta{test} is a logical expressions that connects math relation
expressions, even floating point ones, by means of \emph{logical
@@ -1436,7 +1492,7 @@ y = f_2(t)
\end{flushleft}
where \meta{$P_{\mathrm{out}}$} is a macro that gets
defined with the cartesian coordinates of the computed output
- point. Arguments \meta{in} (the $t$ parameter) and \meta{out} (the computed coordinates) need not be enclosed within braces if they are given as macros; actually the code shown in figure~\ref{fig:lissajous} shows such procedure that renders the input code simpler to read.
+ point. Arguments \meta{in} (the $t$ parameter) and \meta{$P_\mathrm{out}$} (the computed coordinates) need not be enclosed within braces if they are given as macros; actually the code shown in figure~\ref{fig:lissajous} shows such procedure that renders the input code simpler to read.
After this definition the diagram is plotted in
figure~\ref{fig:lissajous}.
@@ -1564,6 +1620,8 @@ y = f_2(t)
Daniele Degiorgi spotted a fault in the kernel definition of
|\linethickness| that heavily influenced also \pack{curve2e}; see in
the code documentation \file{curve2e.pdf} file.
+
+ Many thanks to Domenicus van der Wijst who spotted a sneaky bug in the updated |\Arc| macro; for arcs non wider that $180^\circ$ it worked properly, while for larger angle apertures it produced syntax errors. It was just a typo, but very sneaky.
Thanks also to Jin-Hwan Cho and Juho Lee who suggested a small but
crucial modification in order to have \pack{curve2e} work smoothly
diff --git a/macros/latex/contrib/curve2e/curve2e.dtx b/macros/latex/contrib/curve2e/curve2e.dtx
index 396d8e6000..342761876f 100644
--- a/macros/latex/contrib/curve2e/curve2e.dtx
+++ b/macros/latex/contrib/curve2e/curve2e.dtx
@@ -6,7 +6,7 @@
\keepsilent
\preamble
- Copyright (C) 2005--2021 Claudio Beccari all rights reserved.
+ Copyright (C) 2005--2023 Claudio Beccari all rights reserved.
License information appended
\endpreamble
@@ -46,7 +46,7 @@ README.txt and curve2e-v161.sty.
%<+package>\ProvidesPackage{curve2e}%
%<+readme>File README.txt for package curve2e
%<*package|readme>
- [2021-01-12 v.2.2.15 Extension package for pict2e]
+ [2023-01-01 v.2.2.22 Extension package for pict2e]
%</package|readme>
%<*driver>
\documentclass{ltxdoc}\errorcontextlines=9
@@ -107,16 +107,16 @@ README.txt and curve2e-v161.sty.
\providecommand\setfontsize{}
-\DeclareRobustCommand\setfontsize[2][1.2]{%
-\linespread{#1}\fontsize{#2}{#2}\selectfont}
+\RenewDocumentCommand\setfontsize{O{1.2} m}{%
+\fontsize{#2}{\fpeval{#1*#2}}\selectfont}
\newwrite\example@out
\ProvideDocumentEnvironment{Esempio}{ O{\footnotesize} D(){0.50}}
% All definitions and assignments are local
% #1 := Lates font size command or \setfontsize{<size>}
% %2 := \textwidth percentage for the code box; the complement, less the
-% column gap for the result dedicata al codice
-% Syntax: \begin{Esempio}[<>size command](<code box percentage width>)
+% column gap for the resulting compiled code
+% Syntax: \begin{Esempio}[<size command>](<code box percentage width>)
%
{\par\addvspace{3.0ex plus 0.8ex minus 0.5ex}\vskip -\parskip
%\def\Corpo{#1}
@@ -161,7 +161,7 @@ README.txt and curve2e-v161.sty.
%</driver>
% \fi
%
-% \CheckSum{5584}
+% \CheckSum{5602}
% \begin{abstract}
% This file documents the |curve2e| extension package to the |pict2e|
% bundle implementation; the latter was described by Lamport
@@ -171,7 +171,7 @@ README.txt and curve2e-v161.sty.
% package |pict2e| has been released that incorporates some of the
% commands defined in early versions of this package; apparently there
% are no conflicts, but only the advanced features of |curve2e| remain
-% available for extending the above package.
+% available for extending the above improved package.
%
% This extension redefines some commands and introduces some more
% drawing facilities that allow to draw circular arcs and arbitrary
@@ -188,7 +188,7 @@ README.txt and curve2e-v161.sty.
%
% Package \texttt{pict2e} was announced in issue 15 of \texttt{latexnews}
% around December 2003; it was specified that the new package would
-% replace the dummy one that has been accompanying every release of
+% replace the dummy one that was 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.
@@ -251,22 +251,24 @@ README.txt and curve2e-v161.sty.
% This specific extension package |curve2e| adds the following features.
% \begin{enumerate}
% \item Point coordinates my be specified in both cartesian and polar
-% form: internally they are handled as cartesian coordinates, but the
-% user can specify his/her points also in polar form. In order to avoid
+% form: internally they are handled as cartesian coordinates, but
+% users can specify their points also in polar form. In order to avoid
% confusion with other graphic packages, |curve2e| uses the usual comma
% separated couple \meta{$x,y$} of integer or fractional numbers for
-% cartesian coordinates, and the couple \meta{$\theta$}:\meta{$\rho$} for
-% polar coordinates (the angle preceding the radius).
+% cartesian coordinates, and the colon separated pair
+% \meta{$\theta$}:\meta{$\rho$} for polar coordinates (the angle preceding
+% the radius).
% All graphic object commands accept polar or cartesian coordinates at
-% the choice of the user who may use for each object the formalism s/he
+% the choice of users who may use for each object the formalism they
% prefers. Also the |put| and |\multiput| commands have been redefined so
-% as to accept cartesian or polar coordinates.
+% as to accept cartesian or polar coordinates. The same holds true for the
+% low level |pict2e| commands \cs{moveto}, \cs{lineto}, and \cs{curveto}.
%
% Of course the user must pay attention to the meaning of cartesian
-% vs. polar coordinates. Both imply a displacement with respect the
+% vs. polar coordinates. Both imply a displacement with respect to the
% actual origin of the axes. So when a circle is placed at coordinates
-% $a,b$ with a normal |\put| command, the circle is placed exactly in
-% that point; with a normal |\put| command the same happens if
+% $a,b$ with a normal |\put| command, the circle center is placed exactly
+% is that point; with a normal |\put| command the same happens if
% coordinates $\alpha{:}\rho$ are specified.
% But if the |\put| command is nested into another |\put| command, the
% current origin of the axes is displaced — this is obvious and the
@@ -274,7 +276,7 @@ README.txt and curve2e-v161.sty.
% is specified so that its ending point is at a specific distance and in
% specific direction from its starting point, polar coordinates appear to
% be the most convenient to use; in this case, though, the origin of the
-% axes become the stating point of the segment, therefore the segment
+% axes becomes the starting point of the segment, therefore the segment
% might be drawn in a strange way. Attention has been
% paid to avoid such misinterpretation, but maybe some unusual
% situation may not have come to my mind; feedback is very welcome.
@@ -282,7 +284,7 @@ README.txt and curve2e-v161.sty.
%^^A
%\item Most if not all cartesian coordinate pairs and slope pairs are
% treated as \emph{ordered pairs}, that is \emph{complex numbers}; in
-% practice the user does not notice any difference from what s/he was
+% practice users do not notice any difference from what they were
% used to, but all the mathematical treatment to be applied to these
% entities is coded as complex number operations, since complex numbers
% may be viewed non only as ordered pairs, but also as vectors or as
@@ -363,8 +365,9 @@ README.txt and curve2e-v161.sty.
% reasonable that these commands, in spite of producing identical arcs,
% might be more comfortable with this or that syntax.
%^^A
-% \item Two new macros |\VectorArc| and |\VectorARC| are defined in order
-% to draw circular arcs with an arrow at one or both ends.
+% \item Two new macros |\VectorArc| and |\VectorARC| (alias
+% |\VVectorArc|) are defined in order to draw circular arcs with an
+% arrow at one or both ends.
%^^A
% \item A new macro |\Curve| is defined so as to draw arbitrary curved
% lines by means of cubic Bézier splines; the |\Curve| macro requires
@@ -432,10 +435,25 @@ README.txt and curve2e-v161.sty.
% that John Hobby implemented for the \MF\ and \MP\ programs.
%
% For these reasons I suppose that every enhancement should be submitted
-% to Gäßlein, Niepraschk, and Tkadlec who are the prime maintainers of
-% \texttt{pict2e}; they are the only ones who can decide whether or not
-% to incorporate new macros in their package.
-%
+% to Niepraschk, who is the maintainer of \texttt{pict2e}; he is the only
+% one who can decide whether or not to incorporate new macros in the
+% |pict2e| package.
+%
+% \textbf{Warning}\quad In 2020 the \LaTeX\ Project Team upgraded the
+% \LaTeX\ native |picture| environment so that all information concerning
+% lengths (line and vector lengths, coordinates, et cetera) may be
+% expressed with dimension expressions such as |0.71\textwidth|,
+% |\parindent + 5mm|, |\circle{1ex}|, and so on. With such dimensional
+% specifications, the information does not depend anymore on
+% |\unitlength|; therefore such dimensional forms do not scale by
+% changing the value of |\unitlength|.
+% |pict2e| in 2020-09-30 was correspondingly upgraded to version~0.4b.
+% Apparently such upgrades do not have any influence on |curve2e|
+% workings, or, at least, when no explicit dimensions are used; this
+% applies in particular when the |\AutoGrid| or the |GraphGrid| macros
+% are used; also he coordinates processing should be done with real
+% numbers, not with dimensions. Nevertheless feedback is welcome if
+% some corrections are needed.
%
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \section{Acknowledgements}
@@ -446,13 +464,13 @@ README.txt and curve2e-v161.sty.
% correct them.
%
% Josef Tkadlec and the author collaborated extensively in order to make
-% a better real long division so as to get correctly the quotient
+% a better real long-division so as to get correctly the quotient
% fractional part and to avoid as much as possible any numeric overflow;
% many Josef's ideas are incorporated in the macro that was implemented
% in the previous versions of this package, although the macro used by
% Josef was slightly different. Both versions aim/aimed at a better
% accuracy and at widening the operand ranges. In this version we
-% abandoned our long division macro, and substituted it with the
+% abandoned our long-division macro, and substituted it with the
% floating point division provided by the |xfp| package.
%
% Daniele Degiorgi spotted a fault in the kernel definition of
@@ -468,8 +486,8 @@ README.txt and curve2e-v161.sty.
%
% Some others users spotted other “features” that did not produce the
% desired results; they have been acknowledged by footnotes in
-% correspondence with the corrections that were made tanks their
-% contribution.
+% correspondence with the corrections that were made thanks their
+% feedback.
%
% \StopEventually{%
% \begin{thebibliography}{9}
@@ -499,7 +517,7 @@ README.txt and curve2e-v161.sty.
% Here we load also the |xparse| and |xfp| packages because we use their
% functionalities; but we do load them only if they are not already
% loaded with or without options; nevertheless we warn the user who wants
-% to load them explicitly, to do this action before loading
+% to load them explicitly: do this action before loading
% \texttt{curve2e}.
% The |xfp| package is absolutely required; if this package is not found
% in the \TeX\ system installation, the loading of this new |curve2e| is
@@ -526,12 +544,12 @@ README.txt and curve2e-v161.sty.
\MessageBreak%
***************************************\MessageBreak%
Version 1.61 of curve2e has been loaded\MessageBreak%
- instead of the current version\MessageBreak%
+ instead of the current version \MessageBreak%
***************************************\MessageBreak}%
\endinput
}
% \end{macrocode}
-% Since we already loaded package|xfp| or at least we explicitly load it
+% Since we already loaded package |xfp| or at least we explicitly load it
% in our preamble, we add, if not already defined by the package, three
% new commands that allow to make floating point tests, and two
% “while” cycles\footnote{Thanks to Brian Dunn who spotted a bug in
@@ -541,11 +559,11 @@ README.txt and curve2e-v161.sty.
\ExplSyntaxOn
\AtBeginDocument{%
\ProvideExpandableDocumentCommand\fptest{m m m}{%
- \fp_compare:nTF{#1}{#2}{#3}}
+ \fp_compare:nTF{#1}{#2}{#3}\ignorespaces}
\ProvideExpandableDocumentCommand\fpdowhile{m m}{%
- \fp_do_while:nn{#1}{#2}}
+ \fp_do_while:nn{#1}{#2}\ignorespaces}
\ProvideExpandableDocumentCommand\fpwhiledo{m m}{%
- \fp_while_do:nn{#1}{#2}}
+ \fp_while_do:nn{#1}{#2}\ignorespaces}
}
\ExplSyntaxOff
@@ -593,8 +611,9 @@ README.txt and curve2e-v161.sty.
% line.\footnote{Thanks to Daniele
% Degiorgi \texttt{degiorgi@inf.ethz.ch}).
% This feature should have been eliminated
-% from the \LaTeXe\ <2020.0202> patch level 4
-% update.}
+% from the \LaTeXe\ <2020.02.02> patch level 4
+% update. This glitch has bee eliminated
+% according to the LaTeX Newsletter Nr.~32.}
% \begin{macrocode}
\gdef\linethickness#1{%
\@wholewidth#1\@halfwidth.5\@wholewidth\ignorespaces}%
@@ -846,7 +865,7 @@ README.txt and curve2e-v161.sty.
% but through an optional argument to the macro, it may be set to any
% desired size; remember that 1\,pt is about one third of a millimeter;
% sometimes it might be too small; 1\,mm is a very black dot, therefore
-% the user must pay attention when s/he specifies the dot diameter,
+% users must pay attention when they specify the dot diameter,
% so as not to exaggerate in either direction.
% The syntax is as follows:
%\begin{flushleft}
@@ -1254,7 +1273,7 @@ README.txt and curve2e-v161.sty.
% The next command is handy for debugging while editing one's
% drawing; it draws a red grid with square meshes that are ten drawing
% units apart; there is no graduation along the grid, since it is
-% supposed to be a debugging aid and the user should know what s/he is
+% supposed to be a debugging aid and users should know what they are
% doing; nevertheless it is advisable to displace the grid by means of a
% |\put| command so that its grid lines coincide with graph
% coordinates that are multiples of~10. Missing to do so the readings
@@ -1302,7 +1321,7 @@ README.txt and curve2e-v161.sty.
% in this way it is easier to replace |\GraphGrid| with |\AutoGrid| if
% it is desired to do so. The opposite action, of course is not so simple
% if the |\AutoGrid| command is not followed by one or two arguments
-% as |\GraphGrid| requires. Approximately |\AutoGrid| may be viewed as
+% as |\GraphGrid| requires. Approximately |\AutoGrid| may be viewed as
% a |\GraphGrid| version were both arguments are optional.
% \begin{macrocode}
\def\@picture(#1,#2)(#3,#4){%
@@ -1363,19 +1382,19 @@ README.txt and curve2e-v161.sty.
%
% Some commands such as \cs{legenda} (legend), \cs{Zbox}, and \cs{Pbox}
% have been always used in the documentation of this package and its
-% siblings; but we used them in many other documents; therefore we thought
-% it was useful to have them available with the general user of
+% siblings; but we used them in many other documents; therefore we
+% thought it was useful to have them available with the general user of
% \pack{curve2e}.
%
%Their commands follow the following syntax.
%\begin{flushleft}\ttfamily\obeylines
-%|\Pbox|\parg{coordinates}\oarg{position}\marg{text}\oarg{dot diameter}\meta{\texttt{*}}\aarg{angle}
+%|\Pbox|\parg{coordinates}\oarg{position}\marg{formula}\oarg{dot diameter}\meta{\texttt{*}}\aarg{angle}
%|\Zbox|\parg{coordinates}\oarg{position}\marg{formula}\oarg{dot diameter}
%|\legenda|\parg{coordinates}\marg{formula}
%\end{flushleft}
%
% These commands have similar but different functionalities; the most
-% general one si |\Pbox|, while the others are simplified versions that
+% general one is |\Pbox|, while the others are simplified versions that
% have a simpler syntax, and a subset of the |\Pbox| functionalities.
% While we describe the arguments of |\Pbox| we emphasise the small
% differences with the other two commands.
@@ -1384,20 +1403,23 @@ README.txt and curve2e-v161.sty.
% form) of the reference point of the “label”; for |\legenda| it is the
% lower left corner of the framed legend contents. They are delimited
% with the usual matched parentheses, and their default value is
-% \texttt{(0,0)}, therefore either the user specifies other coordinates,
-% or uses the |\put| command to place the legend where he prefers.
-%%
-%\item[\meta{position}] is the optional position of the “label” contents
-% relative the the reference point; the default is \texttt{cc} so that
+% \texttt{(0,0)}, therefore either users specify other coordinates,
+% or use the |\put| command to place the legend where they prefer.
+%
+%\item[\meta{position}] is the optional position of the reference point
+% relative to the “label” contents: this means that if the “label”
+% should be NE relative to the visible (or invisible) dot it labels,
+% the \meta{position} codes should be \texttt{tr} (top and right); the
+% default \meta{position} is \texttt{cc} so that
% the “label” is vertically and horizontally centred at the reference
-% point; actually these position parameters should always specified if
+% point; actually these position parameters should always be specified if
% the dot diameter is positive (therefore visible), otherwise the
-% “label” and the dot overwrite eachother.
+% “label” and the dot overwrite each other.
%%
-%\item[\meta{text} \textnormal{or} \meta{formula}] may be almost
-% anything; where the argument is called \meta{formula} math mode
-% is the default; otherwise it is plain \meta{text}; in any case
-% it can be replaced by a box or a parbox, so that actually this
+%\item[\meta{formula}] may be almost anything; \meta{formula} means
+% that the argument is typeset in math mode; if some text is desired
+% the argument must be surrounded by a matched couple of dollar signs;
+% in any case it is possible to enter text mode by using a box (for example through a |\hbox| or a |\parbox|) so that actually this
% mandatory argument may contain almost anything.
%%
%\item[\meta{dot diameter}] the dot diameter default value is positive;
@@ -1450,13 +1472,16 @@ README.txt and curve2e-v161.sty.
\providecommand\Zbox{}
\RenewDocumentCommand\Zbox{R(){0,0} O{cc} m O{1}}{%
-\put(#1){\makebox(0,0)[#2]{\fboxrule=0pt\fboxsep=3pt\fbox{$#3$}}\makebox(0,0)[cc]{\circle*{#4}}}\ignorespaces}
+\put(#1){\makebox(0,0)[#2]{\fboxrule=0pt\fboxsep=3pt\fbox{$#3$}}%
+\makebox(0,0)[cc]{\circle*{#4}}}\ignorespaces}
\providecommand\legenda{}
-\RenewDocumentCommand\legenda{ D(){0,0} m}{\put(#1){\setbox3333\hbox{$#2$}%
- \dimen3333\dimexpr\wd3333*\p@/\unitlength +3\p@\relax
- \edef\@tempA{\strip@pt\dimen3333}%
- \framebox(\@tempA,7){\box3333}}\ignorespaces}
+\newbox\legendbox
+\RenewDocumentCommand\legenda{ D(){0,0} m}{\put(#1){%
+ \setbox\legendbox\hbox{$\relax#2\relax$}%
+ \edef\@tempA{\fpeval{(\wd\legendbox + 3\p@)/\unitlength}}%
+ \edef\@tempB{\fpeval{(\ht\legendbox+\dp\legendbox+3\p@)/\unitlength}}%
+ \framebox(\@tempA,\@tempB){\box\legendbox}}\ignorespaces}
% \end{macrocode}
@@ -1768,8 +1793,8 @@ Computations go on, but the results may be meaningless}}{%
%\[
%(x, y) = x + \mathrm{j}y =M \mathrm{e}^{\mathrm{j}\theta}
%\]
-% Even the imaginary unit is indicated with $\mathrm{i}$ by the
-% mathematicians and with $\mathrm{j}$ by the engineers. In spite of
+% Even the imaginary unit is indicated with $\mathrm{i}$ by
+% mathematicians and with $\mathrm{j}$ by engineers. In spite of
% these differences, such objects, the \emph{complex numbers}, are used
% without any problem by both mathematicians and engineers.
%
@@ -1790,7 +1815,7 @@ Computations go on, but the results may be meaningless}}{%
% \]
%
% The magnitude of a vector is determined by taking the positive square
-% root of the sum of the squared real and the imaginary parts (often called \emph{Pitagorean sum}); see further on.
+% root of the sum of the squared real and imaginary parts (often called \emph{Pitagorean sum}); see further on.
%
% It's better to represent each complex number with one control sequence;
% this implies frequent assembling and disassembling the pair of real
@@ -1868,9 +1893,19 @@ Computations go on, but the results may be meaningless}}{%
% difference of two complex numbers; the first input argument is the
% minuend, the second is the subtrahend; the output quantities are the
% third argument containing the magnitude of the difference and the
-% fourth is the direction of the difference.
+% fourth is the direction of the difference. Please notice the difference
+% between |\ModAndDirOfVect| and |\DistanceAndDirOfVect|; the former
+% computes the modulus and the direction of a complex number, that is a
+% vector with its tail in the origin of the axes; the latter measures
+% the length of the difference of two complex numbers; in a way
+% |\ModAndDirOfVect| \meta{vector}| to |\meta{macro}| and |\meta{versor}
+% produces the same result as
+% |\DistanceAndDirOfVect| \meta{vector}| minus {0,0} to |\meta{macro}| and |\meta{versor}.
+% Actually |\DistanceAndDirOfVect| yields the distance of two complex
+% numbers and the direction of their difference.
% The service macro |\SubVect| executes the difference of two complex
-% numbers and is described further on.
+% numbers and is described further on; its code implements just this
+% statement.
% \begin{macrocode}
\def\DistanceAndDirOfVect#1minus#2to#3and#4{%
\SubVect#2from#1to\@tempa
@@ -1943,7 +1978,7 @@ Computations go on, but the results may be meaningless}}{%
% allowed the following two forms:
%\begin{flushleft}\ttfamily
%\cs{MultVect}\meta{first factor} by \meta{second factor} to \meta{output macro}\\
-%\cs{MultVect}\meta{first factor} by $\star*$ \meta{second factor} to \meta{output macro}\\
+%\cs{MultVect}\meta{first factor} by $\star$ \meta{second factor} to \meta{output macro}\\
%\end{flushleft}
%
% With the availability of the |xparse| package and its special argument
@@ -1952,11 +1987,11 @@ Computations go on, but the results may be meaningless}}{%
% \emph{after} and \emph{before}; its syntax allows the following four
% forms:
%\begin{flushleft}
-%\cs{Multvect}\marg{first factor}\marg{second factor}\meta{output macro}
-%\cs{Multvect}\marg{first factor}$\star*$\marg{second factor}\meta{output macro}
-%\cs{Multvect}\marg{first factor}\marg{second factor}$\star*$\meta{output macro}
-%\cs{Multvect}\marg{first factor}$\star*$\marg{second factor}\meta{output macro}
-%\cs{Multvect}\marg{first factor}$\star*$\marg{second factor}$\star*$\meta{output macro}
+%\cs{Multvect}\marg{first factor}\marg{second factor}\meta{output macro}\\
+%\cs{Multvect}\marg{first factor}$\star$\marg{second factor}\meta{output macro}\\
+%\cs{Multvect}\marg{first factor}\marg{second factor}$\star$\meta{output macro}\\
+%\cs{Multvect}\marg{first factor}$\star$\marg{second factor}\meta{output macro}\\
+%\cs{Multvect}\marg{first factor}$\star$\marg{second factor}$\star$\meta{output macro}
%\end{flushleft}
%
% Nevertheless we maintain a sort of interface between the old syntax
@@ -2134,7 +2169,7 @@ Computations go on, but the results may be meaningless}}{%
\Numero\@gradi\@tdA
\SubVect\@pPun from\@Cent to\@V
\AddVect\@V and\@Cent to\@sPun
- \Multvect{\@V}{0,-1.3333333to}\@V
+ \Multvect{\@V}{0,-1.3333333}\@V
\if\Segno-\ScaleVect\@V by-1to\@V\fi
\AddVect\@pPun and\@V to\@pcPun
\AddVect\@sPun and\@V to\@scPun
@@ -2223,11 +2258,12 @@ Computations go on, but the results may be meaningless}}{%
% We exploit much of the above definitions for the |\Arc| macro for
% drawing circular arcs with an arrow at one or both ends; the first
% macro |\VerctorArc| draws an arrow at the ending point of the arc; the
-% second macro |\VectorARC| draws arrows at both ends; the arrows have
-% the same shape as those for vectors; actually they are drawn by putting
-% a vector of zero length at the proper arc end(s), therefore they are
-% styled as traditional \LaTeX\ or PostScript arrows according to the
-% specific option to the \texttt{pict2e} package.
+% second macro |\VectorARC| (alias |\VVectorArc|) draws arrows at both
+% ends; the arrows tips have the same shape as those for vectors;
+% actually they are drawn by putting a vector of zero length at the
+% proper arc end(s), therefore they are styled as traditional \LaTeX\ or
+% PostScript arrows according to the specific option to the
+% \texttt{pict2e} package.
%
% But the arc drawing done here shortens it so as not to overlap on the
% arrow tip(s); the only arrow tip (or both tips) are also lightly tilted in
@@ -2263,6 +2299,7 @@ Computations go on, but the results may be meaningless}}{%
\@VARC(#1)(#2)%
\fi
\endgroup\ignorespaces}%
+\let\VVectorArc\VectorARC
% \end{macrocode}
%
% The single arrow tiped arc is defined with the following long macro where
@@ -2577,10 +2614,10 @@ Computations go on, but the results may be meaningless}}{%
% separated pair of values, that not necessarily indicate a unit vector,
% since the macro provides to normalise it to unity; \meta{$K_0$} and
% \meta{$K_1$} are the distances of the control points from their
-% respective node points; they must be positive integers or fractional
-% numbers. If \meta{$K_1$} is a number, it must be enclosed in curly braces,
-% while if it is a macro name (containing the desired fractional or
-% integer value) there is no need for braces.
+% respective node points; they must be integers or fractional positive
+% numbers. If \meta{$K_1$} is a number, it must be enclosed in curly
+% braces, while if it is a macro name (containing the desired fractional
+% or integer value) there is no need for braces.
%
% This macro uses the input information in order to activate the internal
% |pict2e| macro |\pIIe@curveto| with the proper arguments, and to save
@@ -2668,7 +2705,7 @@ Computations go on, but the results may be meaningless}}{%
%\begin{flushleft}
% \meta{direction\texttt{\upshape;}tension factors}
%\end{flushleft}
-% where \emph{direction} contains a pair of fractional number that not
+% where \emph{direction} contains a pair of fractional numbers that not
% necessarily refer to the components of a unit vector direction, but
% simply to a vector with the desired orientation (polar form is OK); the
% information contained from the semicolon (included) to the rest of the
@@ -2727,10 +2764,10 @@ Computations go on, but the results may be meaningless}}{%
% the end point. Notice that if the directions of two successive nodes are
% identical, it is necessary to draw a line, not a third order
% spline\footnote{Many thanks to John Hillas who spotted this bug, that
-% passed unnoticed fora long time, because it is a very unusual situation.};
+% passed unnoticed for long time, because it is a very unusual situation.};
% therefore it is necessary to make a suitable test that is more
% comfortable to do after the chord has been rotated to be horizontal;
-% in facts, if the two directions are equal, the vertical componente
+% in facts, if the two directions are equal, the vertical components
% of the directions are both vanishing values; probably, instead of
% testing with respect to zero, it might be advisable to test the
% absolute value with respect to a small number such as, for example,
@@ -2847,7 +2884,7 @@ Computations go on, but the results may be meaningless}}{%
\StartCurveAt#1WithDir{#2}%
\@ifnextchar\lp@r\@Curve{%
\PackageWarning{curve2e}{%
- Curve specifications must contain at least two nodes!\Messagebreak
+ Curve specifications must contain at least two nodes!\MessageBreak
Please, control your \string\Curve\space specifications\MessageBreak}}}
\def\@Curve(#1)<#2>{%
\CurveTo#1WithDir{#2}%
@@ -2912,7 +2949,7 @@ Computations go on, but the results may be meaningless}}{%
\@ifnextchar\lp@r\@Qurve{%
\PackageWarning{curve2e}{%
Quadratic curve specifications must contain at least
- two nodes!\Messagebreak
+ two nodes!\MessageBreak
Please, control your Qurve specifications\MessageBreak}}}%
\def\@Qurve(#1)<#2>{\QurveTo#1WithDir{#2}%
@@ -3093,8 +3130,8 @@ Computations go on, but the results may be meaningless}}{%
\ignorespaces}
% \end{macrocode}
%
-% An example of usage is shown at the left in
-% figure~16\footnote{The commands \cs{legenda},
+% An example of usage is shown at the left in figure~16 of the user manual
+% |curve2e-manual.pdf| file\footnote{The commands \cs{legenda},
% \cs{Pall} and \cs{Zbox} are specifically defined in the preamble of
% this document; they must be used within a \texttt{picture} environment.
% \cs{legenda} draws a framed legend made up of a single (short) math
@@ -3133,7 +3170,7 @@ Computations go on, but the results may be meaningless}}{%
% \section{Conclusion}
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% I believe that the set of new macros provided by this package can
-% really help the user to draw his/her diagrams with more agility; it
+% really help users to draw their diagrams with more agility; it
% will be the accumulated experience to decide if this is true.
%
% As a personal experience I found very comfortable to draw ellipses and
@@ -3141,10 +3178,10 @@ Computations go on, but the results may be meaningless}}{%
% areas, but also to create “legends” with coloured backgrounds and
% borders. But this is just an application of the functionality
% implemented in this package. In 2020 I added to CTAN another
-% specialized package, |euclideangeometry.sty| with its manual
+% specialised package, |euclideangeometry.sty| with its manual
% |euclideangeometry-man.pdf| that uses the facilities of |curve2e|
-% to draw complex diagrams that plot curves and others that solve some
-% geometrical problems dealing with ellipses.
+% to draw complex diagrams that plot curves, and other facilities that
+% solve some geometrical problems dealing with ellipses.
%
%\iffalse
%</package>
@@ -3176,7 +3213,8 @@ README.txt
If you install curve2e without using your TeX system package handler,
Compile curve2e.dtx and curve2e-manual.tex two or three times until
-all labels and citation keys are completely resolved. Then move the primary and derived files as follows:
+all labels and citation keys are completely resolved. Then move the
+primary and derived files as follows:
Move curve2e.dtx and curve2e-manual.tex to ROOT/source/latex/curve2e/
Move curve2e.pdf and curve2e-manual.pdf to ROOT/doc/latex/curve2e/
@@ -4084,7 +4122,7 @@ claudio dot beccari at gmail dot com
\StartCurveAt#1WithDir{#2}%
\@ifnextchar\lp@r\@Curve{%
\PackageWarning{curve2e}{%
- Curve specifications must contain at least two nodes!\Messagebreak
+ Curve specifications must contain at least two nodes!\MessageBreak
Please, control your Curve specifications\MessageBreak}}}
\def\@Curve(#1)<#2>{%
\CurveTo#1WithDir{#2}%
@@ -4099,7 +4137,7 @@ claudio dot beccari at gmail dot com
\@ifnextchar\lp@r\@Qurve{%
\PackageWarning{curve2e}{%
Quadratic curve specifications must contain at least
- two nodes!\Messagebreak
+ two nodes!\MessageBreak
Please, control your Qurve specifications\MessageBreak}}}%
\def\@Qurve(#1)<#2>{\QurveTo#1WithDir{#2}%
\@ifnextchar\lp@r\@Qurve{%
diff --git a/macros/latex/contrib/curve2e/curve2e.pdf b/macros/latex/contrib/curve2e/curve2e.pdf
index 3b408efc47..bbf3b4eb68 100644
--- a/macros/latex/contrib/curve2e/curve2e.pdf
+++ b/macros/latex/contrib/curve2e/curve2e.pdf
Binary files differ