diff options
author | Karl Berry <karl@freefriends.org> | 2020-10-02 21:49:18 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-10-02 21:49:18 +0000 |
commit | 5255c37137345163348d22ab46af2304cf9f55a6 (patch) | |
tree | 88246497477ddcc26834e5708566ad4c1c862a19 /Master/texmf-dist/source/latex/base/ltpictur.dtx | |
parent | 1922ba4684a59cde742dcef9ed152381d2d7b110 (diff) |
latex2e (2oct20)
git-svn-id: svn://tug.org/texlive/trunk@56514 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/base/ltpictur.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/base/ltpictur.dtx | 624 |
1 files changed, 540 insertions, 84 deletions
diff --git a/Master/texmf-dist/source/latex/base/ltpictur.dtx b/Master/texmf-dist/source/latex/base/ltpictur.dtx index 9440fc783ad..5bef40375cd 100644 --- a/Master/texmf-dist/source/latex/base/ltpictur.dtx +++ b/Master/texmf-dist/source/latex/base/ltpictur.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltpictur.dtx} - [2019/08/27 v1.1m LaTeX Kernel (Picture Mode)] + [2020/08/14 v1.2a LaTeX Kernel (Picture Mode)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltpictur.dtx} @@ -191,6 +191,46 @@ % \end{macro} % \end{macro} % +% \begin{macro}{\@defaultunitsset} +% \changes{v1.2a}{2020/08/15}{Macro added} +% Set a length register, |#1|, +% accepting number or an etex length expression, |#2|, +% with default unit, |#3|. +% +% The register name in |#1| can be prefixed by |\advance| so that +% the register is incremented by the supplied value. +% +% |\@defaultunitsset{\advance\@vxx}{\textwidth-15pt}\unitlength| +% +% |#3| can be a literal unit such as |cm| or a length register such +% as |\unitlength|. +% +% This is used in all |picture| commands that take picture coordinates. +% So |\put(2,2)| as previously but now |\put(\textwidth-5cm,0.4\texteight)| +% Note that you can only use expressions with lengths, |\put(1+2,0)| is not +% supported. +% +% \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@defaultunitsset}{default units}% +\def\@defaultunitsset#1#2#3{% + \@defaultunits#1\dimexpr#2#3\relax\relax\@nnil} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@defaultunitsset}{default units}% +%<latexrelease>\let\@defaultunitsset\@undefined +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{picture} % \begin{macro}{\picture} % \changes{v0.1c}{1994/04/28}{(DPC) Ignore spaces before (} % |#1| should be white space. @@ -207,12 +247,34 @@ % % \begin{macro}{\@picture} % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@picture}{default units}% \def\@picture(#1,#2)(#3,#4){% - \@picht#2\unitlength - \setbox\@picbox\hb@xt@#1\unitlength\bgroup - \hskip -#3\unitlength - \lower #4\unitlength\hbox\bgroup + \@defaultunitsset\@picht{#2}\unitlength + \@defaultunitsset\@tempdimc{#1}\unitlength + \setbox\@picbox\hb@xt@\@tempdimc\bgroup + \@defaultunitsset\@tempdimc{#3}\unitlength + \hskip -\@tempdimc + \@defaultunitsset\@tempdimc{#4}\unitlength + \lower\@tempdimc\hbox\bgroup \ignorespaces} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@picture}{default units}% +%<latexrelease>\def\@picture(#1,#2)(#3,#4){% +%<latexrelease> \@picht#2\unitlength +%<latexrelease> \setbox\@picbox\hb@xt@#1\unitlength\bgroup +%<latexrelease> \hskip -#3\unitlength +%<latexrelease> \lower #4\unitlength\hbox\bgroup +%<latexrelease> \ignorespaces} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -229,16 +291,41 @@ \mbox{\box\@picbox}} % \end{macrocode} % \end{macro} +% \end{environment} % % In the definitions of |\put| and |\multiput|, |\hskip| was replaced by % |\kern| just in case arg |#3| = ``plus''. (Bug detected by Don Knuth. % changed 20 Jul 87). % % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\put}{default units}% +%<latexrelease>\expandafter\let\csname put \endcsname\@undefind \long\def\put(#1,#2)#3{% - \@killglue\raise#2\unitlength - \hb@xt@\z@{\kern#1\unitlength #3\hss}% + \@killglue + \@defaultunitsset\@tempdimc{#2}\unitlength + \raise\@tempdimc + \hb@xt@\z@{% + \@defaultunitsset\@tempdimc{#1}\unitlength + \kern\@tempdimc + #3\hss}% \ignorespaces} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\put}{default units}% +%<latexrelease>\expandafter\let\csname put \endcsname\@undefind +%<latexrelease>\long\def\put(#1,#2)#3{% +%<latexrelease> \@killglue\raise#2\unitlength +%<latexrelease> \hb@xt@\z@{\kern#1\unitlength #3\hss}% +%<latexrelease> \ignorespaces} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % % @@ -246,23 +333,63 @@ % \changes{v0.1c}{1994/04/28}{(DPC) Ignore spaces between )(} % |#3| had better be a |(|. % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\multiput}{default units}% +%<latexrelease>\expandafter\let\csname multiput \endcsname\@undefind \def\multiput(#1,#2)#3{% - \@xdim #1\unitlength - \@ydim #2\unitlength + \@defaultunitsset\@xdim{#1}\unitlength + \@defaultunitsset\@ydim{#2}\unitlength \@multiput(} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\multiput}{default units}% +%<latexrelease>\expandafter\let\csname multiput \endcsname\@undefind +%<latexrelease>\def\multiput(#1,#2)#3{% +%<latexrelease> \@xdim #1\unitlength +%<latexrelease> \@ydim #2\unitlength +%<latexrelease> \@multiput(} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % -% \begin{macro}{\multiput} +% \begin{macro}{\@multiput} % \changes{v0.1c}{1994/04/28}{(DPC) Macro added} % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@multiput}{default units}% \long\def\@multiput(#1,#2)#3#4{% \@killglue\@multicnt #3\relax \@whilenum \@multicnt >\z@\do {\raise\@ydim\hb@xt@\z@{\kern\@xdim #4\hss}% \advance\@multicnt\m@ne - \advance\@xdim#1\unitlength\advance\@ydim#2\unitlength}% + \@defaultunitsset{\advance\@xdim}{#1}\unitlength + \@defaultunitsset{\advance\@ydim}{#2}\unitlength}% \ignorespaces} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@multiput}{default units}% +%<latexrelease>\long\def\@multiput(#1,#2)#3#4{% +%<latexrelease> \@killglue\@multicnt #3\relax +%<latexrelease> \@whilenum \@multicnt >\z@\do +%<latexrelease> {\raise\@ydim\hb@xt@\z@{\kern\@xdim #4\hss}% +%<latexrelease> \advance\@multicnt\m@ne +%<latexrelease> \advance\@xdim#1\unitlength\advance\@ydim#2\unitlength}% +%<latexrelease> \ignorespaces} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -275,18 +402,22 @@ % \begin{macro}{\thinlines} % \begin{macro}{\thicklines} % \begin{macrocode} -\DeclareRobustCommand\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc +\DeclareRobustCommand\thinlines{\let\@linefnt\tenln + \let\@circlefnt\tencirc \@wholewidth\fontdimen8\tenln \@halfwidth .5\@wholewidth} -\DeclareRobustCommand\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw +\DeclareRobustCommand\thicklines{\let\@linefnt\tenlnw + \let\@circlefnt\tencircw \@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\linethickness} +% \changes{v1.1n}{2020/02/14}{Suppress spaces following the declaration (gh/274)} +% \changes{v1.1p}{2020/07/27}{Don't make the command \cs{long} (gh/354)} % \begin{macrocode} -\DeclareRobustCommand\linethickness[1] - {\@wholewidth #1\relax \@halfwidth .5\@wholewidth} +\DeclareRobustCommand*\linethickness[1] + {\@wholewidth #1\relax \@halfwidth .5\@wholewidth \ignorespaces} % \end{macrocode} % \end{macro} % @@ -332,8 +463,24 @@ % \end{macro} % % \begin{macro}{\@istackcr} +% \changes{v1.1o}{2020/04/21}{Support calc syntax (gh/152)} % \begin{macrocode} -\def\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@istackcr}{\shortstack calc support}% +\def\@istackcr[#1]{\cr\noalign{\@vspace@calcify{#1}}\ignorespaces} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@istackcr}{\shortstack calc support}% +%<latexrelease> +%<latexrelease>\def\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -510,13 +657,35 @@ % % \begin{macro}{\line} % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\line}{default units}% +%<latexrelease>\expandafter\let\csname line \endcsname\@undefind \def\line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax - \@linelen #3\unitlength + \@defaultunitsset\@linelen{#3}\unitlength \ifdim\@linelen<\z@\@badlinearg\else \ifnum\@xarg =\z@ \@vline \else \ifnum\@yarg =\z@ \@hline \else \@sline\fi \fi \fi} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\line}{default units}% +%<latexrelease>\expandafter\let\csname line \endcsname\@undefind +%<latexrelease>\def\line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax +%<latexrelease> \@linelen #3\unitlength +%<latexrelease> \ifdim\@linelen<\z@\@badlinearg\else +%<latexrelease> \ifnum\@xarg =\z@ \@vline +%<latexrelease> \else \ifnum\@yarg =\z@ \@hline \else \@sline\fi +%<latexrelease> \fi +%<latexrelease> \fi} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -600,16 +769,41 @@ % % \begin{macro}{\vector} % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\vector}{default units}% +%<latexrelease>\expandafter\let\csname vector \endcsname\@undefind \def\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax \@tempcnta \ifnum\@xarg<\z@ -\@xarg\else\@xarg\fi \ifnum\@tempcnta<5\relax - \@linelen #3\unitlength + \@defaultunitsset\@linelen{#3}\unitlength \ifdim\@linelen<\z@\@badlinearg\else \ifnum\@xarg =\z@ \@vvector \else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi \fi \fi \else\@badlinearg\fi} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\vector}{default units}% +%<latexrelease>\expandafter\let\csname vector \endcsname\@undefind +%<latexrelease>\def\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax +%<latexrelease> \@tempcnta \ifnum\@xarg<\z@ -\@xarg\else\@xarg\fi +%<latexrelease> \ifnum\@tempcnta<5\relax +%<latexrelease> \@linelen #3\unitlength +%<latexrelease> \ifdim\@linelen<\z@\@badlinearg\else +%<latexrelease> \ifnum\@xarg =\z@ \@vvector +%<latexrelease> \else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi +%<latexrelease> \fi +%<latexrelease> \fi +%<latexrelease> \else\@badlinearg\fi} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -803,11 +997,17 @@ % % \begin{macro}{\dashbox} % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\dashbox}{default units}% +%<latexrelease>\expandafter\let\csname dashbox \endcsname\@undefind \def\dashbox#1(#2,#3){\leavevmode\hb@xt@\z@{\baselineskip \z@skip \lineskip \z@skip -\@dashdim #2\unitlength +\@defaultunitsset\@dashdim{#2}\unitlength \@dashcnt \@dashdim \advance\@dashcnt 200 -\@dashdim #1\unitlength\divide\@dashcnt \@dashdim +\@defaultunitsset\@dashdim{#1}\unitlength +\divide\@dashcnt \@dashdim \ifodd\@dashcnt\@dashdim \z@ \advance\@dashcnt \@ne \divide\@dashcnt \tw@ \else \divide\@dashdim \tw@ \divide\@dashcnt \tw@ @@ -819,15 +1019,19 @@ \put(#2,#3){\hskip-\@dashdim\box\@dashbox}% \multiply\@dashdim \thr@@ \fi -\setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth -\@width #1\unitlength\hskip #1\unitlength}\@tempcnta\z@ +\setbox\@dashbox \hbox{% + \@defaultunitsset\@tempdimc{#1}\unitlength + \vrule \@height \@halfwidth \@depth \@halfwidth \@width \@tempdimc + \hskip\@tempdimc}% +\@tempcnta\z@ \put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt \do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@ \put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt \do{\copy\@dashbox\advance\@tempcnta \@ne }}% -\@dashdim #3\unitlength +\@defaultunitsset\@dashdim{#3}\unitlength \@dashcnt \@dashdim \advance\@dashcnt 200 -\@dashdim #1\unitlength\divide\@dashcnt \@dashdim +\@defaultunitsset\@dashdim{#1}\unitlength +\divide\@dashcnt \@dashdim \ifodd\@dashcnt \@dashdim \z@ \advance\@dashcnt \@ne \divide\@dashcnt \tw@ \else @@ -841,14 +1045,79 @@ \put(#2,#3){\lower\@dashdim\copy\@dashbox}% \multiply\@dashdim \thr@@ \fi -\setbox\@dashbox\hbox{\vrule \@width \@wholewidth -\@height #1\unitlength}\@tempcnta\z@ +\@defaultunitsset\@tempdimb{#1}\unitlength +\setbox\@dashbox\hbox{% + \vrule \@width \@wholewidth \@height\@tempdimb}% +\@tempcnta\z@ \put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt -\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }% +\do{\vskip\@tempdimb\copy\@dashbox\advance\@tempcnta \@ne }% \vskip\@dashdim}}\@tempcnta\z@ \put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta<\@dashcnt -\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }% +\do{\vskip\@tempdimb\copy\@dashbox\advance\@tempcnta \@ne }% \vskip\@dashdim}}}\@makepicbox(#2,#3)} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\dashbox}{default units}% +%<latexrelease>\expandafter\let\csname dashbox \endcsname\@undefind +%<latexrelease>\def\dashbox#1(#2,#3){% +%<latexrelease>\leavevmode\hb@xt@\z@{\baselineskip \z@skip +%<latexrelease>\lineskip \z@skip +%<latexrelease>\@dashdim #2\unitlength +%<latexrelease>\@dashcnt \@dashdim \advance\@dashcnt 200 +%<latexrelease>\@dashdim #1\unitlength\divide\@dashcnt \@dashdim +%<latexrelease>\ifodd\@dashcnt\@dashdim \z@ +%<latexrelease>\advance\@dashcnt \@ne \divide\@dashcnt \tw@ +%<latexrelease>\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@ +%<latexrelease>\advance\@dashcnt \m@ne +%<latexrelease>\setbox\@dashbox \hbox{% +%<latexrelease> \vrule \@height \@halfwidth \@depth \@halfwidth +%<latexrelease> \@width \@dashdim}\put(0,0){\copy\@dashbox}% +%<latexrelease>\put(0,#3){\copy\@dashbox}% +%<latexrelease>\put(#2,0){\hskip-\@dashdim\copy\@dashbox}% +%<latexrelease>\put(#2,#3){\hskip-\@dashdim\box\@dashbox}% +%<latexrelease>\multiply\@dashdim \thr@@ +%<latexrelease>\fi +%<latexrelease>\setbox\@dashbox \hbox{% +%<latexrelease> \vrule \@height \@halfwidth \@depth \@halfwidth +%<latexrelease> \@width #1\unitlength\hskip #1\unitlength}\@tempcnta\z@ +%<latexrelease>\put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt +%<latexrelease>\do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@ +%<latexrelease>\put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt +%<latexrelease>\do{\copy\@dashbox\advance\@tempcnta \@ne }}% +%<latexrelease>\@dashdim #3\unitlength +%<latexrelease>\@dashcnt \@dashdim \advance\@dashcnt 200 +%<latexrelease>\@dashdim #1\unitlength\divide\@dashcnt \@dashdim +%<latexrelease>\ifodd\@dashcnt \@dashdim \z@ +%<latexrelease>\advance\@dashcnt \@ne \divide\@dashcnt \tw@ +%<latexrelease>\else +%<latexrelease>\divide\@dashdim \tw@ \divide\@dashcnt \tw@ +%<latexrelease>\advance\@dashcnt \m@ne +%<latexrelease>\setbox\@dashbox\hbox{\hskip -\@halfwidth +%<latexrelease>\vrule \@width \@wholewidth +%<latexrelease>\@height \@dashdim}\put(0,0){\copy\@dashbox}% +%<latexrelease>\put(#2,0){\copy\@dashbox}% +%<latexrelease>\put(0,#3){\lower\@dashdim\copy\@dashbox}% +%<latexrelease>\put(#2,#3){\lower\@dashdim\copy\@dashbox}% +%<latexrelease>\multiply\@dashdim \thr@@ +%<latexrelease>\fi +%<latexrelease>\setbox\@dashbox\hbox{\vrule \@width \@wholewidth +%<latexrelease>\@height #1\unitlength}\@tempcnta\z@ +%<latexrelease>\put(0,0){% +%<latexrelease> \hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt +%<latexrelease> \do{\vskip #1\unitlength\copy\@dashbox +%<latexrelease> \advance\@tempcnta\@ne }% +%<latexrelease> \vskip\@dashdim}}\@tempcnta\z@ +%<latexrelease>\put(#2,0){% +%<latexrelease> \hskip -\@halfwidth \vbox{\@whilenum \@tempcnta<\@dashcnt +%<latexrelease> \do{\vskip #1\unitlength\copy\@dashbox +%<latexrelease> \advance\@tempcnta \@ne }% +%<latexrelease> \vskip\@dashdim}}}\@makepicbox(#2,#3)} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -1143,12 +1412,26 @@ % \begin{macrocode} \newif\if@ovvline \@ovvlinetrue \newif\if@ovhline \@ovhlinetrue +% \begin{macrocode} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@ovhlinetrue}% +%<latexrelease> {Avoid almost zero length leaders}% +%<latexrelease>\let\if@ovvline\@undefined +%<latexrelease>\let\if@ovhline\@undefined +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\@oval} % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@oval}{default units}% \def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue % \end{macrocode} @@ -1157,9 +1440,10 @@ \@ovvlinefalse \@ovhlinefalse % \end{macrocode} % \begin{macrocode} - \@tfor\reserved@a :=#3\do{\csname @ov\reserved@a false\endcsname}% - \@ovxx #1\unitlength - \@ovyy #2\unitlength + \@tfor\reserved@a :=#3\do{% + \csname @ov\reserved@a false\endcsname}% + \@defaultunitsset\@ovxx{#1}\unitlength + \@defaultunitsset\@ovyy{#2}\unitlength % \end{macrocode} % \changes{v1.1l}{2016/03/29}{add setting of line tests} % \begin{macrocode} @@ -1187,11 +1471,79 @@ \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}% \endgroup} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{2016/03/31}% +%<latexrelease> {\@oval}{default units}% +%<latexrelease>\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen +%<latexrelease> \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue +%<latexrelease> \@ovvlinefalse \@ovhlinefalse +%<latexrelease> \@tfor\reserved@a :=#3\do{% +%<latexrelease> \csname @ov\reserved@a false\endcsname}% +%<latexrelease> \@ovxx #1\unitlength +%<latexrelease> \@ovyy #2\unitlength +%<latexrelease> \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx \@ovvlinetrue +%<latexrelease> \else \@ovyy \ifdim \@ovyy =\@ovxx \else \@ovhlinetrue +%<latexrelease> \fi\fi +%<latexrelease> \advance \@tempdimb -2\p@ +%<latexrelease> \@getcirc \@tempdimb +%<latexrelease> \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa +%<latexrelease> \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@ +%<latexrelease> \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@ +%<latexrelease> \ifdim \@ovdx >\z@ \@ovhlinetrue \fi +%<latexrelease> \ifdim \@ovdy >\z@ \@ovvlinetrue \fi +%<latexrelease> \@circlefnt \setbox\@tempboxa +%<latexrelease> \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi +%<latexrelease> \if@ovl +%<latexrelease> \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx +%<latexrelease> \fi +%<latexrelease> \if@ovt \@ovhorz \kern -\@ovxx \fi +%<latexrelease> \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro +%<latexrelease> \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@ +%<latexrelease> \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}% +%<latexrelease> \endgroup} +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@oval}{default units}% +%<latexrelease>\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen +%<latexrelease> \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue +%<latexrelease> \@tfor\reserved@a :=#3\do +%<latexrelease> {\csname @ov\reserved@a false\endcsname}% +%<latexrelease> \@ovxx #1\unitlength +%<latexrelease> \@ovyy #2\unitlength +%<latexrelease> \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi +%<latexrelease> \advance \@tempdimb -2\p@ +%<latexrelease> \@getcirc \@tempdimb +%<latexrelease> \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa +%<latexrelease> \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@ +%<latexrelease> \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@ +%<latexrelease> \@circlefnt \setbox\@tempboxa +%<latexrelease> \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi +%<latexrelease> \if@ovl +%<latexrelease> \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx +%<latexrelease> \fi +%<latexrelease> \if@ovt \@ovhorz \kern -\@ovxx \fi +%<latexrelease> \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro +%<latexrelease> \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@ +%<latexrelease> \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}% +%<latexrelease> \endgroup} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % % \begin{macro}{\@ovvert} % \begin{macrocode} +%</2ekernel> +%<latexrelease>\IncludeInRelease{2016/03/31}% +%<latexrelease> {\@ovvert}{Avoid almost zero length leaders}% +%<*2ekernel|latexrelease> \def\@ovvert#1#2{\vbox to\@ovyy{% \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip @@ -1207,11 +1559,32 @@ \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax \hbox{\char \@tempcntb}% \else \kern \@ovdy \kern \@ovro \fi}} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@ovvert}{Avoid almost zero length leaders}% +%<latexrelease>\def\@ovvert#1#2{\vbox to\@ovyy{% +%<latexrelease> \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax +%<latexrelease> \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip +%<latexrelease> \else \kern \@ovri \kern \@ovdy \fi +%<latexrelease> \leaders\vrule \@width \@wholewidth\vfil \nointerlineskip +%<latexrelease> \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax +%<latexrelease> \hbox{\char \@tempcntb}% +%<latexrelease> \else \kern \@ovdy \kern \@ovro \fi}} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % % \begin{macro}{\@ovhorz} % \begin{macrocode} +%</2ekernel> +%<latexrelease>\IncludeInRelease{2016/03/31}% +%<latexrelease> {\@ovhorz}{Avoid almost zero length leaders}% +%<*2ekernel|latexrelease> \def\@ovhorz{\hb@xt@\@ovxx{\kern \@ovro \if@ovr \else \kern \@ovdx \fi % \end{macrocode} @@ -1220,51 +1593,18 @@ % \begin{macrocode} \if@ovhline \leaders \hrule \@height \@wholewidth \fi % \end{macrocode} +% % \begin{macrocode} \hfil \if@ovl \else \kern \@ovdx \fi \kern \@ovri}} +%</2ekernel|latexrelease> % \end{macrocode} -% \end{macro} -% +% % \begin{macrocode} -%</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease %<latexrelease>\IncludeInRelease{0000/00/00}% -%<latexrelease> {\@ovhlinetrue}% -%<latexrelease> {Avoid almost zero length leaders}% -%<latexrelease>\let\if@ovvline\@undefined -%<latexrelease>\let\if@ovhline\@undefined -%<latexrelease>\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen -%<latexrelease> \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue -%<latexrelease> \@tfor\reserved@a :=#3\do -%<latexrelease> {\csname @ov\reserved@a false\endcsname}% -%<latexrelease> \@ovxx #1\unitlength -%<latexrelease> \@ovyy #2\unitlength -%<latexrelease> \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi -%<latexrelease> \advance \@tempdimb -2\p@ -%<latexrelease> \@getcirc \@tempdimb -%<latexrelease> \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa -%<latexrelease> \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@ -%<latexrelease> \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@ -%<latexrelease> \@circlefnt \setbox\@tempboxa -%<latexrelease> \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi -%<latexrelease> \if@ovl -%<latexrelease> \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx -%<latexrelease> \fi -%<latexrelease> \if@ovt \@ovhorz \kern -\@ovxx \fi -%<latexrelease> \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro -%<latexrelease> \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@ -%<latexrelease> \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}% -%<latexrelease> \endgroup} -%<latexrelease>\def\@ovvert#1#2{\vbox to\@ovyy{% -%<latexrelease> \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax -%<latexrelease> \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip -%<latexrelease> \else \kern \@ovri \kern \@ovdy \fi -%<latexrelease> \leaders\vrule \@width \@wholewidth\vfil \nointerlineskip -%<latexrelease> \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax -%<latexrelease> \hbox{\char \@tempcntb}% -%<latexrelease> \else \kern \@ovdy \kern \@ovro \fi}} +%<latexrelease> {\@ovhorz}{Avoid almost zero length leaders}% %<latexrelease>\def\@ovhorz{\hb@xt@\@ovxx{\kern \@ovro %<latexrelease> \if@ovr \else \kern \@ovdx \fi %<latexrelease> \leaders \hrule \@height \@wholewidth \hfil @@ -1273,6 +1613,7 @@ %<latexrelease>\EndIncludeInRelease %<*2ekernel> % \end{macrocode} +% \end{macro} % % \begin{macro}{\circle} % \changes{LaTeX2.09}{1993/08/05} @@ -1284,8 +1625,13 @@ % % \begin{macro}{\@circle} % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@circle}{default units}% \def\@circle#1{% - \begingroup \boxmaxdepth \maxdimen \@tempdimb #1\unitlength + \begingroup \boxmaxdepth \maxdimen + \@defaultunitsset\@tempdimb{#1}\unitlength \ifdim \@tempdimb >15.5\p@ \@getcirc\@tempdimb \@ovro\ht\@tempboxa \setbox\@tempboxa\hbox{\@circlefnt @@ -1296,13 +1642,52 @@ \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@ \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}% \else \@circ\@tempdimb{96}\fi\endgroup} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@circle}{default units}% +%<latexrelease>\def\@circle#1{% +%<latexrelease> \begingroup \boxmaxdepth \maxdimen \@tempdimb #1\unitlength +%<latexrelease> \ifdim \@tempdimb >15.5\p@ \@getcirc\@tempdimb +%<latexrelease> \@ovro\ht\@tempboxa +%<latexrelease> \setbox\@tempboxa\hbox{\@circlefnt +%<latexrelease> \advance\@tempcnta\tw@ \char \@tempcnta +%<latexrelease> \advance\@tempcnta\m@ne \char \@tempcnta +%<latexrelease> \kern -2\@tempdima +%<latexrelease> \advance\@tempcnta\tw@ +%<latexrelease> \raise \@tempdima \hbox{\char\@tempcnta}% +%<latexrelease> \raise \@tempdima +%<latexrelease> \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@ +%<latexrelease> \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}% +%<latexrelease> \else \@circ\@tempdimb{96}\fi\endgroup} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % % \begin{macro}{\@dot} % Internal form of |\circle*|. % \begin{macrocode} -\def\@dot#1{\@tempdimb #1\unitlength \@circ\@tempdimb{112}} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@dot}{default units}% +\def\@dot#1{% + \@defaultunitsset\@tempdimb{#1}\unitlength + \@circ\@tempdimb{112}} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@dot}{default units}% +%<latexrelease>\def\@dot#1{\@tempdimb #1\unitlength \@circ\@tempdimb{112}} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -1340,7 +1725,7 @@ % \end{macro} % % \begin{macro}{\@xdim} -% \begin{macro}{\yxdim} +% \begin{macro}{\@ydim} % Length registers. % \begin{macrocode} \newdimen\@xdim @@ -1482,35 +1867,45 @@ % % \begin{macro}{\@bezier} % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@bezier}{default units}% \def\@bezier#1(#2,#3)(#4,#5)(#6,#7){% \ifnum #1=\z@ - \@ovxx #4\unitlength - \advance\@ovxx -#2\unitlength + \@defaultunitsset\@ovxx{#4}\unitlength + \@defaultunitsset{\advance\@ovxx}{-#2}\unitlength \ifdim \@ovxx<\z@ \@ovxx -\@ovxx \fi - \@ovdx #6\unitlength - \advance\@ovdx -#4\unitlength + \@defaultunitsset\@ovdx{#6}\unitlength + \@defaultunitsset{\advance\@ovdx}{-#4}\unitlength \ifdim \@ovdx<\z@ \@ovdx -\@ovdx \fi \ifdim \@ovxx<\@ovdx \@ovxx \@ovdx \fi - \@ovyy #5\unitlength - \advance\@ovyy -#3\unitlength + \@defaultunitsset\@ovyy{#5}\unitlength + \@defaultunitsset{\advance\@ovyy}{-#3}\unitlength \ifdim \@ovyy<\z@ \@ovyy -\@ovyy \fi - \@ovdy #7\unitlength - \advance\@ovdy -#5\unitlength + \@defaultunitsset\@ovdy{#7}\unitlength + \@defaultunitsset{\advance\@ovdy}{-#5}\unitlength \ifdim \@ovdy<\z@ \@ovdy -\@ovdy \fi \ifdim \@ovyy<\@ovdy \@ovyy \@ovdy \fi \@multicnt \ifdim \@ovxx>\@ovyy \@ovxx \else \@ovyy \fi \@ovxx .5\@halfwidth \divide\@multicnt\@ovxx - \ifnum \qbeziermax<\@multicnt \@multicnt\qbeziermax\relax \fi + \ifnum \qbeziermax<\@multicnt + \@multicnt\qbeziermax\relax + \fi \else \@multicnt#1\relax \fi \@tempcnta\@multicnt \advance\@tempcnta\@ne - \@ovdx #4\unitlength \advance\@ovdx -#2\unitlength + \@defaultunitsset\@ovdx{#4}\unitlength + \@defaultunitsset{\advance\@ovdx}{-#2}\unitlength \multiply\@ovdx \tw@ - \@ovxx #6\unitlength \advance\@ovxx -#2\unitlength + \@defaultunitsset\@ovxx{#6}\unitlength + \@defaultunitsset{\advance\@ovxx}{-#2}\unitlength \advance\@ovxx -\@ovdx \divide\@ovxx\@multicnt - \@ovdy #5\unitlength \advance\@ovdy -#3\unitlength + \@defaultunitsset\@ovdy{#5}\unitlength + \@defaultunitsset{\advance\@ovdy}{-#3}\unitlength \multiply\@ovdy \tw@ - \@ovyy #7\unitlength \advance\@ovyy -#3\unitlength + \@defaultunitsset\@ovyy{#7}\unitlength + \@defaultunitsset{\advance\@ovyy}{-#3}\unitlength \advance\@ovyy -\@ovdy \divide\@ovyy\@multicnt % \end{macrocode} % @@ -1536,6 +1931,67 @@ \hb@xt@\z@{\kern\@xdim \unhcopy\@tempboxa\hss}% \advance\count@\@ne}}} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@bezier}{default units}% +%<latexrelease>\def\@bezier#1(#2,#3)(#4,#5)(#6,#7){% +%<latexrelease> \ifnum #1=\z@ +%<latexrelease> \@ovxx #4\unitlength +%<latexrelease> \advance\@ovxx -#2\unitlength +%<latexrelease> \ifdim \@ovxx<\z@ \@ovxx -\@ovxx \fi +%<latexrelease> \@ovdx #6\unitlength +%<latexrelease> \advance\@ovdx -#4\unitlength +%<latexrelease> \ifdim \@ovdx<\z@ \@ovdx -\@ovdx \fi +%<latexrelease> \ifdim \@ovxx<\@ovdx \@ovxx \@ovdx \fi +%<latexrelease> \@ovyy #5\unitlength +%<latexrelease> \advance\@ovyy -#3\unitlength +%<latexrelease> \ifdim \@ovyy<\z@ \@ovyy -\@ovyy \fi +%<latexrelease> \@ovdy #7\unitlength +%<latexrelease> \advance\@ovdy -#5\unitlength +%<latexrelease> \ifdim \@ovdy<\z@ \@ovdy -\@ovdy \fi +%<latexrelease> \ifdim \@ovyy<\@ovdy \@ovyy \@ovdy \fi +%<latexrelease> \@multicnt +%<latexrelease> \ifdim \@ovxx>\@ovyy \@ovxx \else \@ovyy \fi +%<latexrelease> \@ovxx .5\@halfwidth \divide\@multicnt\@ovxx +%<latexrelease> \ifnum +%<latexrelease> \qbeziermax<\@multicnt \@multicnt\qbeziermax\relax +%<latexrelease> \fi +%<latexrelease> \else \@multicnt#1\relax \fi +%<latexrelease> \@tempcnta\@multicnt \advance\@tempcnta\@ne +%<latexrelease> \@ovdx #4\unitlength \advance\@ovdx -#2\unitlength +%<latexrelease> \multiply\@ovdx \tw@ +%<latexrelease> \@ovxx #6\unitlength \advance\@ovxx -#2\unitlength +%<latexrelease> \advance\@ovxx -\@ovdx \divide\@ovxx\@multicnt +%<latexrelease> \@ovdy #5\unitlength \advance\@ovdy -#3\unitlength +%<latexrelease> \multiply\@ovdy \tw@ +%<latexrelease> \@ovyy #7\unitlength \advance\@ovyy -#3\unitlength +%<latexrelease> \advance\@ovyy -\@ovdy \divide\@ovyy\@multicnt +%<latexrelease> \setbox\@tempboxa\hbox{% +%<latexrelease> \hskip -\@halfwidth +%<latexrelease> \vrule \@height\@halfwidth +%<latexrelease> \@depth \@halfwidth +%<latexrelease> \@width \@wholewidth}% +%<latexrelease> \put(#2,#3){% +%<latexrelease> \count@\z@ +%<latexrelease> \@whilenum{\count@<\@tempcnta}\do +%<latexrelease> {\@xdim\count@\@ovxx +%<latexrelease> \advance\@xdim\@ovdx +%<latexrelease> \divide\@xdim\@multicnt +%<latexrelease> \multiply\@xdim\count@ +%<latexrelease> \@ydim\count@\@ovyy +%<latexrelease> \advance\@ydim\@ovdy +%<latexrelease> \divide\@ydim\@multicnt +%<latexrelease> \multiply\@ydim\count@ +%<latexrelease> \raise \@ydim +%<latexrelease> \hb@xt@\z@{\kern\@xdim +%<latexrelease> \unhcopy\@tempboxa\hss}% +%<latexrelease> \advance\count@\@ne}}} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % \end{macro} |