summaryrefslogtreecommitdiff
path: root/macros/latex-dev/base/ltmath.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex-dev/base/ltmath.dtx')
-rw-r--r--macros/latex-dev/base/ltmath.dtx131
1 files changed, 118 insertions, 13 deletions
diff --git a/macros/latex-dev/base/ltmath.dtx b/macros/latex-dev/base/ltmath.dtx
index 86e62e7bf5..c4963cf0c6 100644
--- a/macros/latex-dev/base/ltmath.dtx
+++ b/macros/latex-dev/base/ltmath.dtx
@@ -38,7 +38,7 @@
%<*driver>
% \fi
\ProvidesFile{ltmath.dtx}
- [2020/02/18 v1.2d LaTeX Kernel (Math Setup)]
+ [2020/04/21 v1.2f LaTeX Kernel (Math Setup)]
% \iffalse
%</driver>
%
@@ -509,18 +509,103 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\>}
-% \begin{macro}{\;}
-% \begin{macro}{\!}
+
+
+%
+% \begin{macro}{\tmspace}
+% \begin{macro}{\,}
+% \begin{macro}{\thinspace}
+% \begin{macro}{\!}
+% \begin{macro}{\negthinspace}
+% \begin{macro}{\:}
+% \begin{macro}{\medspace}
+% \begin{macro}{\negmedspace}
+% \begin{macro}{\;}
+% \begin{macro}{\thickspace}
+% \begin{macro}{\negthickspace}
+%
+% Originally \LaTeX{} only provided a small set of spacing commands
+% for use in text and math, some of the commands like \cs{;} were
+% only supported in manth mode. \texttt{amsmath} normalized and
+% provided all of them in text and math. This code has now been
+% moved to the kernel so that it is generally available.
+%
+%
% \begin{macrocode}
-%\def\,{\mskip\thinmuskip} % already defined in ltspace
-\def\>{\mskip\medmuskip}
-\def\;{\mskip\thickmuskip}
-\def\!{\mskip-\thinmuskip}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\tmspace}{amsmath spacing commands}%
+% \end{macrocode}
+% \cs{tmspace} is really meant to be an internal command so it
+% doesn't necessarily has to be robust but it was robust in
+% \texttt{amsmath} so we leave it like that.
+% \changes{v1.2e}{2020/03/07}{Add \texttt{amsmath} math/text spacing
+% commands to the kernel (gh/303)}
+% \begin{macrocode}
+\DeclareRobustCommand\tmspace[3]{%
+ \ifmmode\mskip#1#2\else\leavevmode@ifvmode\kern#1#3\fi\relax}
+% \end{macrocode}
+% In \texttt{amsmath} the text kern is \texttt{.1667em}. For
+% compatibility reasons we keep the longer one.
+% \begin{macrocode}
+\DeclareRobustCommand\,{\tmspace+\thinmuskip{.16667em}}
+\let\thinspace\,
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+%
+% \begin{macrocode}
+\DeclareRobustCommand\!{\tmspace-\thinmuskip{.16667em}}
+\let\negthinspace\!
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareRobustCommand\:{\tmspace+\medmuskip{.2222em}}
+\let\medspace\:
+% \end{macrocode}
+% \LaTeX{} has a second name for this in its manual:
+% \begin{macrocode}
+\let\>=\:
+\DeclareRobustCommand\negmedspace{\tmspace-\medmuskip{.2222em}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareRobustCommand\;{\tmspace+\thickmuskip{.2777em}}
+\let\thickspace\;
+\DeclareRobustCommand\negthickspace{\tmspace-\thickmuskip{.2777em}}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\tmspace}{amsmath spacing commands}%
+%<latexrelease>
+%<latexrelease>\let\tmspace\@undefined
+%<latexrelease>\DeclareRobustCommand{\,}{%
+%<latexrelease> \relax\ifmmode\mskip\thinmuskip\else\thinspace\fi}
+%<latexrelease>\DeclareRobustCommand\thinspace{\leavevmode@ifvmode\kern .16667em }
+%<latexrelease>\DeclareRobustCommand\negthinspace{\leavevmode@ifvmode\kern-.16667em }
+%<latexrelease>\def\>{\mskip\medmuskip}
+%<latexrelease>\let\:=\>
+%<latexrelease>\def\;{\mskip\thickmuskip}
+%<latexrelease>\def\!{\mskip-\thinmuskip}
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
%
% \begin{macro}{\*}
% \begin{macrocode}
@@ -532,7 +617,7 @@
% Nickname for the medium space since |\>| is not available inside
% \texttt{tabbing}.
% \begin{macrocode}
-\let\:=\>
+%\let\:=\>
% \end{macrocode}
% \end{macro}
%
@@ -884,12 +969,32 @@
\def\@yeqncr{\@testopt\@xeqncr\z@skip}
% \end{macrocode}
%
+% \changes{v1.2f}{2020/04/21}{Support calc syntax (gh/152)}
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@xeqncr}{eqnarray support calc syntax}%
\def\@xeqncr[#1]{%
\ifnum0=`{\fi}%
\@@eqncr
- \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}%
+ \noalign{\penalty\@eqpen\vskip\jot\@vspace@calcify{#1}}%
}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@xeqncr}{eqnarray support calc syntax}%
+%<latexrelease>
+%<latexrelease>\def\@xeqncr[#1]{%
+%<latexrelease> \ifnum0=`{\fi}%
+%<latexrelease> \@@eqncr
+%<latexrelease> \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}%
+%<latexrelease>}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
%
% \end{macro}