summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/base/ltsect.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/base/ltsect.dtx')
-rw-r--r--Master/texmf-dist/source/latex/base/ltsect.dtx87
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.