summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/base/ltspace.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/base/ltspace.dtx')
-rw-r--r--Master/texmf-dist/source/latex/base/ltspace.dtx151
1 files changed, 140 insertions, 11 deletions
diff --git a/Master/texmf-dist/source/latex/base/ltspace.dtx b/Master/texmf-dist/source/latex/base/ltspace.dtx
index 55fdf5a91a2..84ec4431dfa 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-2014
+% Copyright 1993-2015
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltspace.dtx}
- [2014/09/29 v1.3a LaTeX Kernel (spacing)]
+ [2015/01/14 v1.3e LaTeX Kernel (spacing)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltspace.dtx}
@@ -47,13 +47,14 @@
Chris Rowley\and
Rainer Sch\"opf}
\begin{document}
-\maketitle
+ \MaintainedByLaTeXTeam{latex}
+ \maketitle
\DocInput{\filename}
\end{document}
%</driver>
% \fi
%
-% \CheckSum{459}
+% \CheckSum{578}
%
% \changes{v1.1a}{1994/05/16}{(ASAJ) Split from ltinit.dtx.}
% \changes{v1.2f}{1995/05/25}{Macros moved to ltlists.dtx}
@@ -548,15 +549,35 @@
%
% \begin{macro}{\@esphack}
% Companion to |\@bsphack|.
+% \changes{v1.3d}{2015/01/11}{Allow hyphenation (Donald Arseneau pr/3498) (latexrelease)}
% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2015/01/01}%
+%<latexrelease> {\@esphack}{hyphenation after space hack}%
+%<*2ekernel|latexrelease>
\def\@esphack{%
\relax
\ifhmode
\spacefactor\@savsf
\ifdim\@savsk>\z@
+ \nobreak \hskip\z@skip
\ignorespaces
\fi
- \fi}
+ \fi}%
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@esphack}{hyphenation after space hack}%
+%<latexrelease>\def\@esphack{%
+%<latexrelease> \relax
+%<latexrelease> \ifhmode
+%<latexrelease> \spacefactor\@savsf
+%<latexrelease> \ifdim\@savsk>\z@
+%<latexrelease> \ignorespaces
+%<latexrelease> \fi
+%<latexrelease> \fi}%
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
@@ -565,16 +586,37 @@
% true (as |\@esphack| used to do previously).
% This is currently used only for floats and similar environments.
% \changes{v1.2s}{1996/08/02}{Remove \cs{global} before \cs{@ignore...}}
+% \changes{v1.3d}{2015/01/11}{Allow hyphenation (Donald Arseneau pr/3498) (latexrelease)}w
% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2015/01/01}%
+%<latexrelease> {\Eesphack}{hyphenation after space hack}%
+%<*2ekernel|latexrelease>
\def\@Esphack{%
\relax
\ifhmode
\spacefactor\@savsf
\ifdim\@savsk>\z@
+ \nobreak \hskip\z@skip
\@ignoretrue
\ignorespaces
\fi
- \fi}
+ \fi}%
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@Esphack}{hyphenation after space hack}%
+%<latexrelease>\def\@Esphack{%
+%<latexrelease> \relax
+%<latexrelease> \ifhmode
+%<latexrelease> \spacefactor\@savsf
+%<latexrelease> \ifdim\@savsk>\z@
+%<latexrelease> \@ignoretrue
+%<latexrelease> \ignorespaces
+%<latexrelease> \fi
+%<latexrelease> \fi}%
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
@@ -701,6 +743,18 @@
% \begin{macro}{\addpenalty}
% \changes{v1.2b}{1994/11/12}{Corrected error message}
% \changes{v1.2c}{1994/11/13}{Recorrected error message}
+% \changes{v1.1h}{2015/01/09}{Donald Arseneau's fix from PR/377703 (latexrelease)}
+% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2015/01/01}%
+%<latexrelease> {\addpenalty}{\addpenalty}%
+%<*2ekernel|latexrelease>
+% \end{macrocode}
+% Fix provided by Donald (though the original fix was not good
+% enough). In 2005 Plamen Tanovski discovered that this fix wasn't
+% good enough either as the \cs{vskip} kept getting bigger if
+% several \cs{addpenalty} commands followed each other. Donald
+% kindly send a new fix.
% \begin{macrocode}
\def\addpenalty#1{%
\ifvmode
@@ -712,15 +766,75 @@
\penalty#1\relax
\else
\@tempskipb\lastskip
- \vskip -\lastskip
- \penalty#1%
- \vskip\@tempskipb
+% \end{macrocode}
+% We have to make sure the final \cs{vskip} seen by \TeX\ is the
+% correct one, namely \cs{@tempskipb}. However we may have to
+% adjust for \cs{prevdepth} when placing the penalty but that
+% should not affect the skip we pass on to \TeX.
+% \changes{v1.3e}{2015/01/14}{Avoid adding redundant skips (DPC)}
+% \begin{macrocode}
+ \begingroup
+ \@tempskipa\@tempskipb
+ \advance \@tempskipb
+ \ifdim\prevdepth>\maxdepth\maxdepth\else
+% \end{macrocode}
+% If |\prevdepth| is -1000pt due to |\nointerlineskip| we better
+% not add it!
+% \begin{macrocode}
+ \ifdim \prevdepth = -\@m\p@ \z@ \else \prevdepth \fi
+ \fi
+ \vskip -\@tempskipb
+ \penalty#1%
+ \ifdim\@tempskipa=\@tempskipb
+% \end{macrocode}
+% Do nothing if the |\prevdepth| check made no adjustment.
+% \begin{macrocode}
+ \else
+% \end{macrocode}
+% Combine the prevdepth adjustment into a single skip.
+% \begin{macrocode}
+ \advance\@tempskipb -\@tempskipa
+ \vskip \@tempskipb
+ \fi
+% \end{macrocode}
+% The final skip is always the specified length.
+% \begin{macrocode}
+ \vskip \@tempskipa
+ \endgroup
\fi
\fi
\fi
\else
\@noitemerr
- \fi}
+ \fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\addpenalty}{\addpenalty}%
+%<latexrelease>\def\addpenalty#1{%
+%<latexrelease> \ifvmode
+%<latexrelease> \if@minipage
+%<latexrelease> \else
+%<latexrelease> \if@nobreak
+%<latexrelease> \else
+%<latexrelease> \ifdim\lastskip=\z@
+%<latexrelease> \penalty#1\relax
+%<latexrelease> \else
+%<latexrelease> \@tempskipb\lastskip
+%<latexrelease> \vskip -\lastskip
+%<latexrelease> \penalty#1%
+%<latexrelease> \vskip\@tempskipb
+%<latexrelease> \fi
+%<latexrelease> \fi
+%<latexrelease> \fi
+%<latexrelease> \else
+%<latexrelease> \@noitemerr
+%<latexrelease> \fi}%
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
@@ -896,8 +1010,23 @@
% Placed before a '.', makes it a sentence-ending period. Does the
% right thing for other punctuation marks as well. Does this by
% setting spacefactor to 1000.
+% \changes{v1.3b}{2014/12/30}{\cs{@} discards spaces when moving
+% (pr3039)(latexrelease)}
% \begin{macrocode}
-\def\@{\spacefactor\@m}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2015/01/01}%
+%<latexrelease> {\@}{Space after \@}%
+%<*2ekernel|latexrelease>
+% \end{macrocode}
+% \begin{macrocode}
+\def\@{\spacefactor\@m{}}%
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@}{Space after \@}%
+%<latexrelease>\def\@{\spacefactor\@m}%
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%