diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/base/ltspace.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/base/ltspace.dtx | 86 |
1 files changed, 75 insertions, 11 deletions
diff --git a/Master/texmf-dist/source/latex/base/ltspace.dtx b/Master/texmf-dist/source/latex/base/ltspace.dtx index f74db0b929b..6f212bba159 100644 --- a/Master/texmf-dist/source/latex/base/ltspace.dtx +++ b/Master/texmf-dist/source/latex/base/ltspace.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2016 +% Copyright 1993-2018 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltspace.dtx} - [2016/07/04 v1.3g LaTeX Kernel (spacing)] + [2018/10/10 v1.3i LaTeX Kernel (spacing)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltspace.dtx} @@ -547,12 +547,20 @@ % \end{macro} % % \begin{macro}{\@esphack} -% Companion to |\@bsphack|. +% Companion to |\@bsphack|. If this command is not properly paired +% with |\@bsphack| one might end up with a low-level \TeX{} error: +% ``BAD spacefactor''. One possible cause is calling |\@bsphack| in +% vertical mode, then doing something that gets you (sometimes) into +% horizontal mode and finally calling |\@esphack|. Even if no error +% is generated that is wrong, because |\@esphack| will then use the +% saved values for |\@savsk| and |\@savsf| from some earlier +% invocation of |\@bsphack| which will have nothing to do with the +% current situation. % \changes{v1.3d}{2015/01/11}{Allow hyphenation (Donald Arseneau pr/3498) (latexrelease)} % \begin{macrocode} %</2ekernel> -%<latexrelease>\IncludeInRelease{2015/10/01}% -%<latexrelease> {\@esphack}{hyphenation after space hack}% +%<latexrelease>\IncludeInRelease{2018/10/10}% +%<latexrelease> {\@esphack}{hyphenation and nobreak after space hack}% %<*2ekernel|latexrelease> \def\@esphack{% \relax @@ -568,11 +576,36 @@ \fi \ignorespaces \fi +% \end{macrocode} +% \changes{v1.3i}{2018/10/10} +% {Don't introduce breakpoints if @nobreak is true and after sections} +% \begin{macrocode} + \else + \ifvmode + \if@nobreak\nobreak\else\if@noskipsec\nobreak\fi\fi + \fi +% \end{macrocode} +% +% \begin{macrocode} \fi}% %</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{2015/10/01}% +%<latexrelease> {\@esphack}{hyphenation and nobreak after space hack}% +%<latexrelease>\def\@esphack{% +%<latexrelease> \relax +%<latexrelease> \ifhmode +%<latexrelease> \spacefactor\@savsf +%<latexrelease> \ifdim\@savsk>\z@ +%<latexrelease> \ifdim\lastskip=\z@ +%<latexrelease> \nobreak \hskip\z@skip +%<latexrelease> \fi +%<latexrelease> \ignorespaces +%<latexrelease> \fi +%<latexrelease> \fi}% +%<latexrelease>\EndIncludeInRelease %<latexrelease>\IncludeInRelease{2015/01/01}% -%<latexrelease> {\@esphack}{hyphenation after space hack}% +%<latexrelease> {\@esphack}{hyphenation and nobreak after space hack}% %<latexrelease>\def\@esphack{% %<latexrelease> \relax %<latexrelease> \ifhmode @@ -584,7 +617,7 @@ %<latexrelease> \fi}% %<latexrelease>\EndIncludeInRelease %<latexrelease>\IncludeInRelease{0000/00/00}% -%<latexrelease> {\@esphack}{hyphenation after space hack}% +%<latexrelease> {\@esphack}{hyphenation and nobreak after space hack}% %<latexrelease>\def\@esphack{% %<latexrelease> \relax %<latexrelease> \ifhmode @@ -1093,21 +1126,52 @@ % \end{macrocode} % \end{macro} % -% +% +% \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2018/12/01}% +%<latexrelease> {\thinspace}{Start LR-mode}% +% \end{macrocode} % % % \begin{macro}{\thinspace} % \begin{macro}{\negthinspace} % \begin{macro}{\enspace} +% \changes{v1.3h}{2018/09/24}{Start LR-mode if necessary (git/49)} % \begin{macrocode} -\def\thinspace{\kern .16667em } -\def\negthinspace{\kern-.16667em } -\def\enspace{\kern.5em } +\def\thinspace{\leavevmode@ifvmode\kern .16667em } +\def\negthinspace{\leavevmode@ifvmode\kern-.16667em } +\def\enspace{\leavevmode@ifvmode\kern.5em } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % +% \begin{macro}{\leavevmode@ifvmode} +% Leave vmode but only if we are really in vmode, otherwise the +% expansion is empty (which is not the case with the default definition). +% \changes{v1.3h}{2018/09/24}{Macro added (git/49)} +% \begin{macrocode} +\protected\def\leavevmode@ifvmode{\ifvmode\expandafter\indent\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\thinspace}{Start LR-mode}% +%<latexrelease>\def\thinspace{\kern .16667em } +%<latexrelease>\def\negthinspace{\kern-.16667em } +%<latexrelease>\def\enspace{\kern.5em } +%<latexrelease>\let\leavevmode@ifvmode\@undefined +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% +% +% % \begin{macro}{\enskip} % \begin{macro}{\quad} % \begin{macro}{\qquad} |