diff options
author | Karl Berry <karl@freefriends.org> | 2020-10-01 21:06:10 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-10-01 21:06:10 +0000 |
commit | ee7478f7b92a16668c1dcd3131a7ddb48391cae8 (patch) | |
tree | e7e0e9135ad4f477ab0cc8fbb2dc3920cde73483 /Master/texmf-dist/source/latex | |
parent | 28d70ffa5a628286c6163e1384abbbcdf6936be9 (diff) |
pict2e (1oct20)
git-svn-id: svn://tug.org/texlive/trunk@56504 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r-- | Master/texmf-dist/source/latex/pict2e/pict2e.dtx | 196 |
1 files changed, 103 insertions, 93 deletions
diff --git a/Master/texmf-dist/source/latex/pict2e/pict2e.dtx b/Master/texmf-dist/source/latex/pict2e/pict2e.dtx index 8bb7a289fcc..5354514bc44 100644 --- a/Master/texmf-dist/source/latex/pict2e/pict2e.dtx +++ b/Master/texmf-dist/source/latex/pict2e/pict2e.dtx @@ -1,7 +1,5 @@ % \iffalse meta-comment % -% -% % Copyright (C) 2003-2020 % Rolf Niepraschk, Rolf.Niepraschk@gmx.de % Hubert Gaesslein, hubertjg@gmx.de @@ -23,7 +21,7 @@ % %<*package> \NeedsTeXFormat{LaTeX2e}[1999/12/01] -\ProvidesPackage{pict2e}[2020/08/16 v0.4a Improved picture commands (HjG,RN,JT)] +\ProvidesPackage{pict2e}[2020/09/30 v0.4b Improved picture commands (HjG,RN,JT)] %</package> % %<*driver> @@ -63,8 +61,9 @@ % \fi % % \GetFileInfo{pict2e.sty} -% \def\docdate{2020/08/16} +% \def\docdate{2020/09/30} % +% \CheckSum{2350} % % ^^A ======== % @@ -694,7 +693,7 @@ % % \subsubsection{Driver options} % -% \begin{minipage}{.5\textwidth} +% \begin{minipage}{.55\textwidth} % \begin{tabular}{@{}lc@{\qquad\qquad}lc@{}} % driver & notes & driver & notes\\ \hline % dvips & x & oztex & (x) \\ @@ -2892,10 +2891,10 @@ % argument (RN,HjG)} % \changes{v0.2n}{2004/04/22}{Allow zero diameter (RN/HjG)} % \begin{macrocode} - \@defaultunitsset\@tempdima{#1}\unitlength - \ifdim\@tempdima<\z@ \pIIe@badcircarg \fi - \divide\@tempdima\tw@ - \pIIe@circle\@tempdima + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \ifdim\pIIe@tempdima<\z@ \pIIe@badcircarg \fi + \divide\pIIe@tempdima\tw@ + \pIIe@circle\pIIe@tempdima % \end{macrocode} % With the current state of affairs, we could use % \cmd{\pIIe@drawGraph} directly; but that would possibly be a case of @@ -3062,8 +3061,8 @@ % This is now re-implemented in terms of \cmd{@defaultunitsset}. % \begin{macrocode} \newcommand*\pIIe@defaultUL[2]{% - \@defaultunitsset\dimen@{#2}\unitlength - \edef#1{\the\dimen@}} + \@defaultunitsset\pIIe@tempdima{#2}\unitlength + \edef#1{\the\pIIe@tempdima}} % \end{macrocode} % Hence, we could\slash should omit the unnecessary argument!?) % \changes{v0.2h}{2004/01/07}{Check for negative or zero radius @@ -3120,16 +3119,16 @@ % \end{macrocode} % In analogy to circles, we need only half of the size value. % \begin{macrocode} - \@defaultunitsset\@ovxx{#1}\unitlength \divide\@ovxx\tw@ - \@defaultunitsset\@ovyy{#2}\unitlength \divide\@ovyy\tw@ - \@tempdimc \ifdim\@ovyy>\@ovxx \@ovxx \else \@ovyy \fi - \ifdim\pIIe@maxovalrad<\@tempdimc \@tempdimc\pIIe@maxovalrad\relax \fi + \@defaultunitsset\pIIe@tempdima{#1}\unitlength \divide\pIIe@tempdima\tw@ + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength \divide\pIIe@tempdimb\tw@ + \pIIe@tempdimc \ifdim\pIIe@tempdimb>\pIIe@tempdima \pIIe@tempdima \else \pIIe@tempdimb \fi + \ifdim\pIIe@maxovalrad<\pIIe@tempdimc \pIIe@tempdimc\pIIe@maxovalrad\relax \fi % \end{macrocode} % Subtract the radius of the corners to get coordinates for the % straight line segments. % \begin{macrocode} - \@xdim\@ovxx \advance\@xdim-\@tempdimc - \@ydim\@ovyy \advance\@ydim-\@tempdimc + \pIIe@tempdimd\pIIe@tempdima \advance\pIIe@tempdimd-\pIIe@tempdimc + \pIIe@tempdime\pIIe@tempdimb \advance\pIIe@tempdime-\pIIe@tempdimc % \end{macrocode} % Determine which parts of the oval we have to draw. % \begin{macrocode} @@ -3152,7 +3151,8 @@ % Bits 3 and 0 set? (SE/NE) % \begin{macrocode} \ifnum9=\@tempcnta - \pIIe@qoval\z@{-\@ovyy}{\@xdim}{-\@ovyy}\thr@@\@tempdimc\@ovxx\z@ + \pIIe@qoval\z@{-\pIIe@tempdimb}{\pIIe@tempdimd}{-\pIIe@tempdimb}% + \thr@@\pIIe@tempdimc\pIIe@tempdima\z@ % \end{macrocode} % Bit 0 set! (NE) % \begin{macrocode} @@ -3161,19 +3161,23 @@ % \end{macrocode} % Bit 0 set? (NE) % \begin{macrocode} - \pIIe@qoval\@ovxx\z@\@ovxx\@ydim\z@\@tempdimc\z@\@ovyy + \pIIe@qoval\pIIe@tempdima\z@\pIIe@tempdima\pIIe@tempdime% + \z@\pIIe@tempdimc\z@\pIIe@tempdimb % \end{macrocode} % Bit 1 set? (NW) % \begin{macrocode} - \pIIe@qoval\z@\@ovyy{-\@xdim}\@ovyy\@ne\@tempdimc{-\@ovxx}\z@ + \pIIe@qoval\z@\pIIe@tempdimb{-\pIIe@tempdimd}\pIIe@tempdimb% + \@ne\pIIe@tempdimc{-\pIIe@tempdima}\z@ % \end{macrocode} % Bit 2 set? (SW) % \begin{macrocode} - \pIIe@qoval{-\@ovxx}\z@{-\@ovxx}{-\@ydim}\tw@\@tempdimc\z@{-\@ovyy}% + \pIIe@qoval{-\pIIe@tempdima}\z@{-\pIIe@tempdima}{-\pIIe@tempdime}% + \tw@\pIIe@tempdimc\z@{-\pIIe@tempdimb}% % \end{macrocode} % Bit 3 set? (SE) % \begin{macrocode} - \pIIe@qoval\z@{-\@ovyy}{\@xdim}{-\@ovyy}\thr@@\@tempdimc\@ovxx\z@ + \pIIe@qoval\z@{-\pIIe@tempdimb}{\pIIe@tempdimd}{-\pIIe@tempdimb}% + \thr@@\pIIe@tempdimc\pIIe@tempdima\z@ % \end{macrocode} % Now we've finished, draw the oval and finally close the group opened % by \cmd{\oval} above. @@ -3255,31 +3259,31 @@ % \begin{macrocode} \@killglue \begingroup - \@defaultunitsset\@ovxx{#2}\unitlength - \@defaultunitsset\@ovyy{#3}\unitlength - \@defaultunitsset\@ovdx{#4}\unitlength - \@defaultunitsset\@ovdy{#5}\unitlength - \@defaultunitsset\@xdim{#6}\unitlength - \@defaultunitsset\@ydim{#7}\unitlength + \@defaultunitsset\pIIe@tempdima{#2}\unitlength + \@defaultunitsset\pIIe@tempdimb{#3}\unitlength + \@defaultunitsset\pIIe@tempdimc{#4}\unitlength + \@defaultunitsset\pIIe@tempdimd{#5}\unitlength + \@defaultunitsset\pIIe@tempdime{#6}\unitlength + \@defaultunitsset\pIIe@tempdimf{#7}\unitlength % \end{macrocode} % \noindent % \BigIndent $P_1 = P_m + 1/3 (P_0 - P_m)$ % \begin{macrocode} - \pIIe@bezier@QtoC\@ovxx\@ovdx\@ovro - \pIIe@bezier@QtoC\@ovyy\@ovdy\@ovri + \pIIe@bezier@QtoC\pIIe@tempdima\pIIe@tempdimc\@ovro + \pIIe@bezier@QtoC\pIIe@tempdimb\pIIe@tempdimd\@ovri % \end{macrocode} % \BigIndent $P_2 = P_m + 1/3 (P_3 - P_m)$ % \begin{macrocode} - \pIIe@bezier@QtoC\@xdim\@ovdx\@clnwd - \pIIe@bezier@QtoC\@ydim\@ovdy\@clnht + \pIIe@bezier@QtoC\pIIe@tempdime\pIIe@tempdimc\@clnwd + \pIIe@bezier@QtoC\pIIe@tempdimf\pIIe@tempdimd\@clnht % \end{macrocode} % \BigIndent $(P_{0x},P_{0y})$ % \begin{macrocode} - \pIIe@moveto\@ovxx\@ovyy + \pIIe@moveto\pIIe@tempdima\pIIe@tempdimb % \end{macrocode} % \BigIndent $(P_{1x},P_{1y})$\quad$(P_{2x},P_{2y})$\quad$(P_{3x},P_{3y})$ % \begin{macrocode} - \pIIe@curveto\@ovro\@ovri\@clnwd\@clnht\@xdim\@ydim + \pIIe@curveto\@ovro\@ovri\@clnwd\@clnht\pIIe@tempdime\pIIe@tempdimf \pIIe@strokeGraph \endgroup \ignorespaces @@ -3310,10 +3314,17 @@ % \label{sec:implementation:circle-arcs} % % We need some auxiliary dimensions. +% \changes{v0.4b}{2020/09/30}{More auxiliary dimensions} +% \changes{v0.4b}{2020/09/30}{Use of fewer system dimension registers} % \begin{macrocode} \ifx\undefined\@arclen \newdimen\@arclen \fi \ifx\undefined\@arcrad \newdimen\@arcrad \fi - \ifx\undefined\@tempdimd \newdimen\@tempdimd \fi + \ifx\undefined\pIIe@tempdima \newdimen\pIIe@tempdima \fi + \ifx\undefined\pIIe@tempdimb \newdimen\pIIe@tempdimb \fi + \ifx\undefined\pIIe@tempdimc \newdimen\pIIe@tempdimc \fi + \ifx\undefined\pIIe@tempdimd \newdimen\pIIe@tempdimd \fi + \ifx\undefined\pIIe@tempdime \newdimen\pIIe@tempdime \fi + \ifx\undefined\pIIe@tempdimf \newdimen\pIIe@tempdimf \fi % \end{macrocode} % \begin{macro}{\pIIe@arc} % \#1: 0 (implicit) if we connect arc with a current point, 1 if we start @@ -3394,11 +3405,11 @@ % Coordinates of the second control point: % \begin{macrocode} \@tempdimc \UseSin{#6}\@linelen \advance\@tempdimc \@tempdima - \@tempdimd-\UseCos{#6}\@linelen \advance\@tempdimd \@tempdimb + \pIIe@tempdimd-\UseCos{#6}\@linelen \advance\pIIe@tempdimd \@tempdimb % \end{macrocode} % Adding the second control point and the endpoint to the path % \begin{macrocode} - \pIIe@add@nums\@tempdimc\@tempdimd + \pIIe@add@nums\@tempdimc\pIIe@tempdimd \pIIe@add@CP\@tempdima\@tempdimb \pIIe@addtoGraph\pIIe@curveto@op \fi @@ -3416,14 +3427,13 @@ {\@ifstar{\@tempswatrue\pIIe@arc@}{\@tempswafalse\pIIe@arc@}} \newcommand*\pIIe@arc@[2][0,360]{\pIIe@arc@@(#1){#2}} \def\pIIe@arc@@(#1,#2)#3{% + \@defaultunitsset\pIIe@tempdima{#3}\unitlength \if@tempswa \pIIe@moveto\z@\z@ - \@defaultunitsset\@tempdimc{#3}\unitlength - \pIIe@arc{\z@}{\z@}{\@tempdimc}{#1}{#2}% + \pIIe@arc{\z@}{\z@}{\pIIe@tempdima}{#1}{#2}% \pIIe@closepath\pIIe@fillGraph \else - \@defaultunitsset\@tempdimc{#3}\unitlength - \pIIe@arc[1]{\z@}{\z@}{\@tempdimc}{#1}{#2}% + \pIIe@arc[1]{\z@}{\z@}{\pIIe@tempdima}{#1}{#2}% \pIIe@strokeGraph \fi} \ifx\undefined\arc @@ -3450,16 +3460,16 @@ \def\Line(#1,#2)(#3,#4){\polyline(#1,#2)(#3,#4)} \def\polyline(#1,#2){% \@killglue - \@defaultunitsset\@tempdimc{#1}\unitlength - \@defaultunitsset\@tempdimb{#2}\unitlength - \pIIe@moveto{\@tempdimc}{\@tempdimb}% + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \pIIe@moveto{\pIIe@tempdima}{\pIIe@tempdimb}% \@ifnextchar\lp@r{\@polyline}{\PackageWarning{pict2e}% {Polygonal lines require at least two vertices!}% \ignorespaces}} \def\@polyline(#1,#2){% - \@defaultunitsset\@tempdimc{#1}\unitlength - \@defaultunitsset\@tempdimb{#2}\unitlength - \pIIe@lineto{\@tempdimc}{\@tempdimb}% + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \pIIe@lineto{\pIIe@tempdima}{\pIIe@tempdimb}% \@ifnextchar\lp@r{\@polyline}{\pIIe@strokeGraph\ignorespaces}} \def\Vector(#1,#2)(#3,#4){\polyvector(#1,#2)(#3,#4)} \def\polyvector(#1,#2){% @@ -3471,23 +3481,23 @@ % \end{macrocode} % See the similar definition for \cmd{\vector} (\ref{sec:implementation:vector}) % \begin{macrocode} - \@defaultunitsset\@xdim{#1}\unitlength - \@defaultunitsset\@tempdima{#3}\unitlength - \@defaultunitsset\@ydim{#2}\unitlength - \@defaultunitsset\@tempdimb{#4}\unitlength - \advance\@tempdima-\@xdim \advance\@tempdimb-\@ydim - \ifdim\@tempdima=\z@ \@linelen\@tempdimb \else - \ifdim\@tempdimb=\z@ \@linelen\@tempdima \else - \pIIe@pyth\@tempdima\@tempdimb\@linelen + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \@defaultunitsset\pIIe@tempdimc{#3}\unitlength + \@defaultunitsset\pIIe@tempdimd{#4}\unitlength + \advance\pIIe@tempdimc-\pIIe@tempdima \advance\pIIe@tempdimd-\pIIe@tempdimb + \ifdim\pIIe@tempdimc=\z@ \@linelen\pIIe@tempdimd \else + \ifdim\pIIe@tempdimd=\z@ \@linelen\pIIe@tempdimc \else + \pIIe@pyth\pIIe@tempdimc\pIIe@tempdimd\@linelen \fi \fi \ifdim\@linelen<\z@ \@linelen-\@linelen\fi - \pIIe@divide{\@tempdima}\@linelen\@ovxx - \pIIe@divide{\@tempdimb}\@linelen\@ovyy + \pIIe@divide{\pIIe@tempdimc}\@linelen\pIIe@tempdime + \pIIe@divide{\pIIe@tempdimd}\@linelen\pIIe@tempdimf % \end{macrocode} % Note the shift to the previous point in addition to the rotation. % \begin{macrocode} - \pIIe@concat\@ovxx\@ovyy{-\@ovyy}\@ovxx\@xdim\@ydim + \pIIe@concat\pIIe@tempdime\pIIe@tempdimf{-\pIIe@tempdimf}\pIIe@tempdime\pIIe@tempdima\pIIe@tempdimb \pIIe@vector \pIIe@fillGraph \@ifnextchar\lp@r{\@polyvector(#3,#4)}{\endgroup\ignorespaces}} \def\polygon{% @@ -3495,16 +3505,16 @@ \@ifstar{\begingroup\@tempswatrue\@polygon}% {\begingroup\@tempswafalse\@polygon}} \def\@polygon(#1,#2){% - \@defaultunitsset\@tempdimc{#1}\unitlength - \@defaultunitsset\@tempdimb{#2}\unitlength - \pIIe@moveto{\@tempdimc}{\@tempdimb}% + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \pIIe@moveto{\pIIe@tempdima}{\pIIe@tempdimb}% \@ifnextchar\lp@r{\@@polygon}{\PackageWarning{pict2e}% {Polygons require at least two vertices!}% \ignorespaces}} \def\@@polygon(#1,#2){% - \@defaultunitsset\@tempdimc{#1}\unitlength - \@defaultunitsset\@tempdimb{#2}\unitlength - \pIIe@lineto{\@tempdimc}{\@tempdimb}% + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \pIIe@lineto{\pIIe@tempdima}{\pIIe@tempdimb}% \@ifnextchar\lp@r{\@@polygon}{\pIIe@closepath \if@tempswa\pIIe@fillGraph\else\pIIe@strokeGraph\fi \endgroup @@ -3530,33 +3540,33 @@ % \begin{macrocode} \def\moveto(#1,#2){% \@killglue - \@defaultunitsset\@tempdimc{#1}\unitlength - \@defaultunitsset\@tempdimb{#2}\unitlength - \pIIe@moveto{\@tempdimc}{\@tempdimb}% + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \pIIe@moveto{\pIIe@tempdima}{\pIIe@tempdimb}% \ignorespaces} \def\lineto(#1,#2){% \@killglue - \@defaultunitsset\@tempdimc{#1}\unitlength - \@defaultunitsset\@tempdimb{#2}\unitlength - \pIIe@lineto{\@tempdimc}{\@tempdimb}% + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \pIIe@lineto{\pIIe@tempdima}{\pIIe@tempdimb}% \ignorespaces} \def\curveto(#1,#2)(#3,#4)(#5,#6){% \@killglue - \@defaultunitsset\@tempdimc{#1}\unitlength - \@defaultunitsset\@tempdimb{#2}\unitlength - \@defaultunitsset\@tempdima{#3}\unitlength - \@defaultunitsset\dimen@{#4}\unitlength - \@defaultunitsset\@ovxx{#5}\unitlength - \@defaultunitsset\@ovyy{#6}\unitlength - \pIIe@curveto{\@tempdimc}{\@tempdimb}{\@tempdima}{\dimen@}% - {\@ovxx}{\@ovyy}% + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \@defaultunitsset\pIIe@tempdimc{#3}\unitlength + \@defaultunitsset\pIIe@tempdimd{#4}\unitlength + \@defaultunitsset\pIIe@tempdime{#5}\unitlength + \@defaultunitsset\pIIe@tempdimf{#6}\unitlength + \pIIe@curveto{\pIIe@tempdima}{\pIIe@tempdimb}{\pIIe@tempdimc}% + {\pIIe@tempdimd}{\pIIe@tempdime}{\pIIe@tempdimf}% \ignorespaces} \newcommand*\circlearc[6][0]{% \@killglue - \@defaultunitsset\@tempdimc{#2}\unitlength - \@defaultunitsset\@tempdimb{#3}\unitlength - \@defaultunitsset\@tempdima{#4}\unitlength - \pIIe@arc[#1]{\@tempdimc}{\@tempdimb}{\@tempdima}{#5}{#6}% + \@defaultunitsset\pIIe@tempdima{#2}\unitlength + \@defaultunitsset\pIIe@tempdimb{#3}\unitlength + \@defaultunitsset\pIIe@tempdimc{#4}\unitlength + \pIIe@arc[#1]{\pIIe@tempdima}{\pIIe@tempdimb}{\pIIe@tempdimc}{#5}{#6}% \ignorespaces} \def\closepath{\pIIe@closepath} \def\strokepath{\pIIe@strokeGraph} @@ -3642,17 +3652,17 @@ \def\pIIe@@cbezier#1)#2(#3)#4(#5)#6({\@cbezier#1)(#3)(#5)(}% \def\@cbezier[#1](#2,#3)(#4,#5)(#6,#7)(#8,#9){% \@killglue - \@defaultunitsset\@tempdimc{#2}\unitlength - \@defaultunitsset\@tempdimb{#3}\unitlength - \pIIe@moveto{\@tempdimc}{\@tempdimb}% - \@defaultunitsset\@tempdimc{#4}\unitlength - \@defaultunitsset\@tempdimb{#5}\unitlength - \@defaultunitsset\@tempdima{#6}\unitlength - \@defaultunitsset\dimen@{#7}\unitlength - \@defaultunitsset\@ovxx{#8}\unitlength - \@defaultunitsset\@ovyy{#9}\unitlength - \pIIe@curveto{\@tempdimc}{\@tempdimb}% - {\@tempdima}{\dimen@}{\@ovxx}{\@ovyy}% + \@defaultunitsset\pIIe@tempdima{#2}\unitlength + \@defaultunitsset\pIIe@tempdimb{#3}\unitlength + \pIIe@moveto{\pIIe@tempdima}{\pIIe@tempdimb}% + \@defaultunitsset\pIIe@tempdima{#4}\unitlength + \@defaultunitsset\pIIe@tempdimb{#5}\unitlength + \@defaultunitsset\pIIe@tempdimc{#6}\unitlength + \@defaultunitsset\pIIe@tempdimd{#7}\unitlength + \@defaultunitsset\pIIe@tempdime{#8}\unitlength + \@defaultunitsset\pIIe@tempdimf{#9}\unitlength + \pIIe@curveto{\pIIe@tempdima}{\pIIe@tempdimb}{\pIIe@tempdimc}% + {\pIIe@tempdimd}{\pIIe@tempdime}{\pIIe@tempdimf}% \pIIe@strokeGraph \ignorespaces}% } |