summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex-dev/base/ltpictur.dtx')
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltpictur.dtx593
1 files changed, 514 insertions, 79 deletions
diff --git a/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx b/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx
index bdac744e831..5bef40375cd 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltpictur.dtx}
- [2020/05/12 v1.1o LaTeX Kernel (Picture Mode)]
+ [2020/08/14 v1.2a LaTeX Kernel (Picture Mode)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltpictur.dtx}
@@ -191,6 +191,45 @@
% \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 (}
@@ -208,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}
%
@@ -237,10 +298,34 @@
% 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}
%
%
@@ -248,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}
%
@@ -289,8 +414,9 @@
%
% \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]
+\DeclareRobustCommand*\linethickness[1]
{\@wholewidth #1\relax \@halfwidth .5\@wholewidth \ignorespaces}
% \end{macrocode}
% \end{macro}
@@ -531,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}
%
@@ -621,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}
%
@@ -824,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@
@@ -840,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
@@ -862,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}
%
@@ -1164,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}
@@ -1178,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}
@@ -1208,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
@@ -1228,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}
@@ -1241,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
@@ -1294,6 +1613,7 @@
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
+% \end{macro}
%
% \begin{macro}{\circle}
% \changes{LaTeX2.09}{1993/08/05}
@@ -1305,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
@@ -1317,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}
%
@@ -1503,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}
%
@@ -1557,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}