diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/curve2e')
-rw-r--r-- | Master/texmf-dist/source/latex/curve2e/curve2e.dtx | 119 |
1 files changed, 46 insertions, 73 deletions
diff --git a/Master/texmf-dist/source/latex/curve2e/curve2e.dtx b/Master/texmf-dist/source/latex/curve2e/curve2e.dtx index 1a6ab647d6d..9792a852247 100644 --- a/Master/texmf-dist/source/latex/curve2e/curve2e.dtx +++ b/Master/texmf-dist/source/latex/curve2e/curve2e.dtx @@ -5,8 +5,8 @@ \keepsilent \preamble ______________________________________________________ - The curve2e package for LaTeX and XeLATeX - Copyright (C) 2010 Claudio Beccari + The curve2e package for LaTeX and XeLaTeX + Copyright (C) 2005-2012 Claudio Beccari All rights reserved License information appended @@ -14,7 +14,7 @@ \endpreamble \postamble -Copyright 2005-2011 Claudio Beccari +Copyright 2005-2012 Claudio Beccari Distributable under the LaTeX Project Public License, version 1.3c or higher (your choice). The latest version of @@ -57,13 +57,13 @@ and the derived files curve2e.sty and curve2e.pdf. %</driver> %<+package>\ProvidesPackage{curve2e}% %<*package> - [2011/07/28 v.1.31 Extension package for pict2e] + [2012/03/05 v.1.40 Extension package for pict2e] %</package> %<*driver> \documentclass{ltxdoc} \hfuzz 10pt \usepackage{multicol} -\usepackage[ansinew]{inputenc} +\usepackage[utf8]{inputenc} \usepackage{curve2e} \GetFileInfo{curve2e.dtx} \title{The extension package \textsf{curve2e}\thanks{Version number @@ -80,16 +80,20 @@ and the derived files curve2e.sty and curve2e.pdf. %</driver> % \fi % -% \CheckSum{2304} +% \CheckSum{2264} % \begin{abstract} % This file documents the |curve2e| extension package to the recent % implementation of the |pict2e| bundle that has been described by Lamport % himself in the second edition of his \LaTeX\ handbook. % -% Please take notice that in August 2009 a new updated version of the package +% Please take notice that in April 2011 a new updated version of the package % |pict2e| has been released that incorporates some of the commands defined in % this package; apparently there are no conflicts, but only the advanced features -% of |curve2e| remain available for extending the above package. +% of |curve2e| remain available for extending the above package. Moreover +% the |xetex.def| driver was introduced so that certian commands previously +% defined in this extension not only become unnnecessary, but also would produce +% errors when the program is used under XeLaTeX. Therefore these commands were +% either eliminated or corrected. % % This extension redefines a couple of commands and introduces some more drawing % facilities that allow to draw circular arcs and arbitrary curves with the @@ -105,7 +109,7 @@ and the derived files curve2e.sty and curve2e.pdf. % beginnings in 1994. The dummy package was just issuing an info message that % simply announced the temporary unavailability of the real package. % -% Eventually G��lein and Niepraschk implemented what Lamport himself had already +% Eventually Gäßlein and Niepraschk implemented what Lamport himself had already % documented in the second edition of his \LaTeX\ handbook, that is a \LaTeX\ % package that contained the macros capable of removing all the limitations % contained in the standard commands of the original \texttt{picture} @@ -150,9 +154,10 @@ and the derived files curve2e.sty and curve2e.pdf. % \begin{enumerate} % \item commands for setting the line terminations are introduced; the user can % chose between square or rounded caps; the default is set to rounded caps (now -% available also with |pict2e|); -% \item commands for specifying the way two lines or curves join to one nanother; -% ^^A +% available also with |pict2e|); the 2011 upgrade of |pict2e| made these commands +% superfluous and redefined the internal special commands for the drivers, so that +% I deicided to completely eliminate these definitions and relay on those produced +% by |pict2e|; % \item the |\line| macro is redefined so as to allow integer and fractional % direction coefficients, but maintaining the same syntax as in the original % \texttt{picture} environment (now available also with |pict2e|); @@ -182,15 +187,15 @@ and the derived files curve2e.sty and curve2e.pdf. % \item a new macro |\Arc| is defined in order to draw an arc with arbitrary % radius and arbitrary angle amplitude; this amplitude is specified in % sexagesimal degrees, not in radians; the same functionality is now achieved with -% the |\arc| macro of |pict2e|, which provides also the strar version |\arc*| that +% the |\arc| macro of |pict2e|, which provides also the star version |\arc*| that % fills up the interior of the generated circular arc. It must be noticed that % the syntax is slighltly different, so that it's reasonable that both commands, -% in spite of producing identical arcs, might be more comfortable with this or that +% in spite of producing identical arcs, might be more comfortable with this or that % syntax. % \item two new macros are defined in order to draw circular arcs with one % arrow at one or both ends; % \item a new macro |\Curve| is defined so as to draw arbitrary curved lines -% by means of third order B�zier splines; the |\Curve| macro requires only the +% by means of third order Bézier splines; the |\Curve| macro requires only the % curve nodes and the direction of the tangents at each node. % \end{enumerate} % @@ -208,7 +213,7 @@ and the derived files curve2e.sty and curve2e.pdf. % \texttt{pict2e} package or even become a part of it. % % For this reason I suppose that every enhancement should be submitted to -% G��lein and Niepraschk who are the prime maintainers of \texttt{pict2e}; +% Gäßlein and Niepraschk who are the prime maintainers of \texttt{pict2e}; % they only can decide whether or not to incorporate new macros in their package. % % \section{Summary of modifications and new commands} @@ -221,24 +226,12 @@ and the derived files curve2e.sty and curve2e.pdf. % either \LaTeX\ or PostScript styled, because it is assumed that if you use this % package you are not interested in using the original \LaTeX\ commands. See the % |pict2e| documentation in order to use the correct options |pict2e| can receive. -% \item New commands are offered the user in order to control the line terminators -% and the line joins; specifically: -% \begin{itemize} -% \item |\roundcap|: the line is terminated with a semicircle; -% \item |\squarecap|: the line is terminated with a half square; -% \item |\roundjoin|: two lines are joined with a rounded join; -% \item |\beveljoin|: two lines are joined with a bevel join; -% \item |\miterjoin|: two lines are terminated with a miter join. -% \end{itemize} -% All the above commands should respect the intended range; but since they act at -% the PostScript or PDF level, not at \TeX\ level, it might be necessary to issue -% the necessary command in order to restore the previous terminator or join. % \item The commands |\linethickness|, |\thicklines|, |\thinlines| together with % |\defaultlinethickness| always redefine the internal |\@wholewidth| and % |\@halfwidth| -% so that the latter always refer to a full width and to a half of it in this +% so that the former always refer to a full width and the latter to a half of it in this % way: if you issue the command |\defaultlinewidth{2pt}| all thin lines will be -% drawn with a thickenes of 1\,pt while if a drawing command directly refers to the +% drawn with a thickeness of 1\,pt while if a drawing command directly refers to the % internal value |\@wholewidth|, its line will be drawn with a thickness of 2\,pt. % If one issues the declaration |\thinlines| all lines will be drawn with a 1\,pt % width, but if a command refers to the internal value |\@halfwidth| the line will @@ -249,10 +242,10 @@ and the derived files curve2e.sty and curve2e.pdf. % |thicklines| are declarations that do not take arguments; on the opposite the % other two commands follow the standard syntax: % \begin{flushleft} -% |\linethickness|\marg{dimensioned value}\\ -% |\defaultlinewidth|\marg{dimensioned value} +% |\linethickness|\marg{dimension value}\\ +% |\defaultlinewidth|\marg{dimension value} % \end{flushleft} -% where \meta{dimensioned value} means a length specification complete of its units +% where \meta{dimension value} means a length specification complete of its units % or a dimensional expression. % \item Straight lines and vectors are redefined in such a way that fractional slope % coefficients may be specified; the zero length line does not produce errors and is @@ -451,7 +444,7 @@ and the derived files curve2e.sty and curve2e.pdf. % \end{itemize}} % % \item General curves can be drawn with the |pict2e| macro |\curve| but it requires -% the specification of the B�zier third order spline control points; sometimes it's +% the specification of the Bézier third order spline control points; sometimes it's % better to be very specific with the control points and there is no other means to % do a decent graph; sometimes the curves to be drawn are not so tricky and a % general set of macros can be defined so as to compute the control points, while @@ -516,15 +509,15 @@ and the derived files curve2e.sty and curve2e.pdf. % curves of various kinds. |PSTricks| and |tikz/pgf| are the most powerful ones. But % there are also the package |curves| that is intended to draw almost anything by % using little dots or other symbols partially superimposed to one another. It used -% only quadratic B�zier curves and the curve tracing is eased by specifying only the +% only quadratic Bézier curves and the curve tracing is eased by specifying only the % curve nodes, without specifying the control nodes; with a suitable option to the % package call it is possible to reduce the memory usage by using short straight % segments drawn with the PostScript facilities offered by the |dvips| driver. % % Another package |ebezier| performs about the same as |curve2e| but draws its -% B�zier curves by using little dots partially superimposed to one another. The +% Bézier curves by using little dots partially superimposed to one another. The % documentation is quite interesting but since it explains very clearly what exactly -% are the B�zier splines, it appears that |ebezier| should be used only for dvi +% are the Bézier splines, it appears that |ebezier| should be used only for dvi % output without recourse to PostScript machinery. % % \section{Acknowledgements} @@ -536,7 +529,7 @@ and the derived files curve2e.sty and curve2e.pdf. % possible any numeric overflow; many Josef's ideas are incorporated in the macro % that is implemented in this package, although the macro used by Josef is slightly % different from this one. Both versions aim at a better accuracy and at widening -% the operand ranges. +% the operand ranges. Some of the work we did together was incorporated in |pict2e| 2009. % % Daniele Degiorgi spotted a fault in the kernel definition of |\linethickness| % that heavily influenced also |curve2e|; see below. @@ -549,7 +542,7 @@ and the derived files curve2e.sty and curve2e.pdf. % % \StopEventually{% % \begin{thebibliography}{9} -% \bibitem{pict2e} G��lein H., Niepraschk R., and Tkadlec J. +% \bibitem{pict2e} Gäßlein H., Niepraschk R., and Tkadlec J. % \emph{The \texttt{pict2e} % package}, 2009, PDF document attached to the ``new'' \texttt{pict2e} bundle; the % bundle may be downloaded from any CTAN archive or one of their mirrors. @@ -563,35 +556,13 @@ and the derived files curve2e.sty and curve2e.pdf. % make sure that a sufficiently recent version is used. % \begin{macrocode} \RequirePackage{color} -\RequirePackageWithOptions{pict2e}[2004/06/01] -% \end{macrocode} -% Next we define the line terminators and joins; the following definitions work -% correctly if the \texttt{dvips} or the \texttt{pdftex} driver are specified; -% probably other modes should be added so as to be consistent with \texttt{pict2e}: -% |\providecommand| is used instead of the low level command |\def| in order to -% avoid redefinitions of |pict2e| macros. -% \begin{macrocode} -\ifcase\pIIe@mode\relax -\or %Postscript - \providecommand\roundcap{\special{ps:: 1 setlinecap}}% - \providecommand\squarecap{\special{ps:: 0 setlinecap}}% - \providecommand\roundjoin{\special{ps:: 1 setlinejoin}}% - \providecommand\beveljoin{\special{ps:: 2 setlinejoin}}% - \providecommand\miterjoin{\special{ps:: 0 setlinejoin}}% -\or %pdf - \@ifundefined{XeTeXrevision}{} - {\def\pdfliteral#1{\special{pdf: literal #1}}}% - \providecommand\roundcap{\pdfliteral{1 J}}% - \providecommand\squarecap{\pdfliteral{0 J}}% - \providecommand\roundjoin{\pdfliteral{1 j}}% - \providecommand\beveljoin{\pdfliteral{2 j}}% - \providecommand\miterjoin{\pdfliteral{0 j}}% -\fi +\RequirePackageWithOptions{pict2e}[2011/04/01] % \end{macrocode} % -% The next macros are just for debugging. With the \texttt{tracing} package it +% The next macros are just for debugging. With the \texttt{trace} package it % would probably be better to define other macros, but this is not for the -% users, but for the developers. +% developers, not the users. + % \begin{macrocode} \def\TRON{\tracingcommands\tw@ \tracingmacros\tw@}% \def\TROF{\tracingcommands\z@ \tracingmacros\z@}% @@ -727,8 +698,10 @@ and the derived files curve2e.sty and curve2e.pdf. % then it is multiplied by two in order to have the increment from one dash to the % next, and finally the number of patterns is obtained by integer dividing the magic % odd number by 2 and increasing it by 1. A simple |\multiput| completes the job, -% but in order to use the various vectors and numbers within a group and to throw the result outside the group while restoring all the intermediate counters and registers, a service macro is -% created with an expanded definition and then this service macro is executed. +% but in order to use the various vectors and numbers within a group and to throw +% the result outside the group while restoring all the intermediate counters and +% registers, a service macro is created with an expanded definition and then this +% service macro is executed. % \begin{macrocode} \ifx\Dline\undefined \def\Dline(#1,#2)(#3,#4)#5{% @@ -1329,7 +1302,7 @@ and the derived files curve2e.sty and curve2e.pdf. % starting point; clockwise if it's negative. % % It's necessary to determine the end point and the control points of the -% B�zier spline(s) that make up the circular arc. +% 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} command |\pIIe@rotate| is such that the @@ -1632,7 +1605,7 @@ and the derived files curve2e.sty and curve2e.pdf. % \end{macrocode} % If the remaining aperture is not zero it continues tracing the rest of the arc. % 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 +% 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 adjacent nodes is % determined with the formula @@ -1838,7 +1811,7 @@ and the derived files curve2e.sty and curve2e.pdf. % \subsection{General curves} % Now we define a macro for tracing a general, not necessarily circular arc. % This macro resorts to a general triplet of macros with which it is possible -% to draw almost anything. It traces a single B�zier spline from a first point +% to draw almost anything. It traces a single Bézier spline from a first point % where the tangent direction is specified to a second point where again it is % specified the tangent direction. Actually this is a special (possibly useless) % case where the general |\curve| macro could do the same or a better job. In @@ -1856,10 +1829,10 @@ and the derived files curve2e.sty and curve2e.pdf. % The first macro initializes the drawing and the third one strokes it; 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 specified +% 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 +% 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 @@ -2089,7 +2062,7 @@ and the derived files curve2e.sty and curve2e.pdf. {\@XCPuno\unitlength}{\@YCPuno\unitlength}% {\@XPuno\unitlength}{\@YPuno\unitlength}% % \end{macrocode} -% It does not have to stroke the curve because other B�zier splines might still +% It does not have to stroke the curve because other Bézier splines might still % be added to the path. On the opposite it memorizes the final point as the % initial point of the next spline % \begin{macrocode} |