diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/base/ltsect.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/base/ltsect.dtx | 87 |
1 files changed, 83 insertions, 4 deletions
diff --git a/Master/texmf-dist/source/latex/base/ltsect.dtx b/Master/texmf-dist/source/latex/base/ltsect.dtx index a77070229a5..cb1c6d2c304 100644 --- a/Master/texmf-dist/source/latex/base/ltsect.dtx +++ b/Master/texmf-dist/source/latex/base/ltsect.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2017 +% Copyright 1993-2018 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -31,7 +31,7 @@ %%% From File: ltsect.dtx %<*driver> % \fi -\ProvidesFile{ltsect.dtx}[2017/03/17 v1.1a LaTeX Kernel (Sectioning)] +\ProvidesFile{ltsect.dtx}[2018/09/26 v1.1c LaTeX Kernel (Sectioning)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltsect.dtx} @@ -734,9 +734,29 @@ % \changes{v1.0j}{1995/04/23}{Use \cs{contentsline} internally.} % \changes{v1.0h}{1994/11/04}{Added \cs{protected@write} to % \cs{addcontentsline}. ASAJ.} +% \changes{v1.1c}{2018/09/26}{Sometimes mask the endline char when +% writing to files (github/73)} % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2018/12/01}% +%<latexrelease> {\addcontentsline}{Mask line endings}% \def\addcontentsline#1#2#3{% - \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}} + \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}% +% \end{macrocode} +% We add \cs{protected@file@percent} at the end which is turned om +% \cs{@writefile} into a percent character to mask the newline after +% the closing argument brace. +% \begin{macrocode} + \protected@file@percent}} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\addcontentsline}{Mask line endings}% +%<latexrelease>\def\addcontentsline#1#2#3{% +%<latexrelease> \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -813,6 +833,10 @@ % \changes{v1.0g}{1994/10/18}{Added \cs{normalcolor} for page number} % \changes{v1.0z}{1996/12/20}{Added \cs{nobreak} for latex/2343} % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2018/12/01}% +%<latexrelease> {\@dottedtocline}{Prevent protrusion}% \def\@dottedtocline#1#2#3#4#5{% \ifnum #1>\c@tocdepth \else \vskip \z@ \@plus.2\p@ @@ -840,12 +864,67 @@ \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill \nobreak - \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% + \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5% +% \end{macrocode} +% We finish off by preventing +% any protrusion if that is enabled. If protrusion happens the +% number may shift to the right and as a result you may end up with +% an additional dot in the toc line in some situations. +% \changes{v1.1b}{2018/09/02}{Prevent protrusion +% (\url{https://tex.stackexchange.com/q/172785/10109})} +% \begin{macrocode} + \kern-\p@\kern\p@}% \par}% \fi} % \end{macrocode} % \end{macro} % +% + +% \begin{macro}{\noprotrusion} +% This command, if placed directly to the right (or left) of a +% word, will prevent prevent protrusion of that word into the +% margin. It is used in the toc entry lines as they shouldn't +% protrude. It is implemented as to kerns that cancel each other +% but being there hide the word so that protrusion is not +% added. Note that a zero kern or an empty box would not work as +% the protrusion mechanism will skip over those. +% \begin{macrocode} +\DeclareRobustCommand\noprotrusion{\leavevmode\kern-\p@\kern\p@} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macrocode} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@dottedtocline}{Prevent protrusion}% +%<latexrelease>\def\@dottedtocline#1#2#3#4#5{% +%<latexrelease> \ifnum #1>\c@tocdepth \else +%<latexrelease> \vskip \z@ \@plus.2\p@ +%<latexrelease> {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip +%<latexrelease> \parindent #2\relax\@afterindenttrue +%<latexrelease> \interlinepenalty\@M +%<latexrelease> \leavevmode +%<latexrelease> \@tempdima #3\relax +%<latexrelease> \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip +%<latexrelease> {#4}\nobreak +%<latexrelease> \leaders\hbox{$\m@th +%<latexrelease> \mkern \@dotsep mu\hbox{.}\mkern \@dotsep +%<latexrelease> mu$}\hfill +%<latexrelease> \nobreak +%<latexrelease> \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% +%<latexrelease> \par}% +%<latexrelease> \fi} +%<latexrelease> +%<latexrelease>\let\noprotrusion\@undefined +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% +% +% % \textbf{Note:} |\nobreak|'s added 7 Jan 86 to prevent bad line break % that left the page number dangling by itself at left edge of a new % line. |