diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/base/ltspace.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/base/ltspace.dtx | 151 |
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} % |