texlive[67759] trunk: tl-update-auto

commits+karl at tug.org commits+karl at tug.org
Sat Jul 29 01:43:43 CEST 2023


Revision: 67759
          http://tug.org/svn/texlive?view=revision&revision=67759
Author:   karl
Date:     2023-07-29 01:43:43 +0200 (Sat, 29 Jul 2023)
Log Message:
-----------
tl-update-auto

Modified Paths:
--------------
    trunk/Build/source/build-aux/texinfo.tex
    trunk/Master/doc.html
    trunk/Master/texmf-dist/tex/texinfo/texinfo.tex
    trunk/Master/tlpkg/installer/ctan-mirrors.pl

Modified: trunk/Build/source/build-aux/texinfo.tex
===================================================================
--- trunk/Build/source/build-aux/texinfo.tex	2023-07-28 23:41:04 UTC (rev 67758)
+++ trunk/Build/source/build-aux/texinfo.tex	2023-07-28 23:43:43 UTC (rev 67759)
@@ -3,7 +3,7 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2023-07-02.10}
+\def\texinfoversion{2023-07-27.21}
 %
 % Copyright 1985, 1986, 1988, 1990-2023 Free Software Foundation, Inc.
 %
@@ -426,42 +426,21 @@
 }
 
 % First remove any @comment, then any @c comment.  Pass the result on to
-% \argcheckspaces.
+% \argremovespace.
 \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
-\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
-
-% Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space.
-%
-% \argremovec might leave us with trailing space, e.g.,
+\def\argremovec#1\c#2\ArgTerm{\argremovespace#1$ $\ArgTerm}
+% \argremovec might leave us with trailing space, though; e.g.,
 %    @end itemize  @c foo
-% This space token undergoes the same procedure and is eventually removed
-% by \finishparsearg.
-%
-\def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M}
-\def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M}
-\def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{%
-  \def\temp{#3}%
-  \ifx\temp\empty
-    % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp:
-    \let\temp\finishparsearg
-  \else
-    \let\temp\argcheckspaces
-  \fi
-  % Put the space token in:
-  \temp#1 #3\ArgTerm
-}
+% Note that the argument cannot contain the TeX $, as its catcode is
+% changed to \other when Texinfo source is read.
+\def\argremovespace#1 $#2\ArgTerm{\finishparsearg#1$\ArgTerm}
 
 % If a _delimited_ argument is enclosed in braces, they get stripped; so
 % to get _exactly_ the rest of the line, we had to prevent such situation.
-% We prepended an \empty token at the very beginning and we expand it now,
-% just before passing the control to \argtorun.
-% (Similarly, we have to think about #3 of \argcheckspacesY above: it is
-% either the null string, or it ends with \^^M---thus there is no danger
-% that a pair of braces would be stripped.
-%
-% But first, we have to remove the trailing space token.
-%
-\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}}
+% We prepended an \empty token at the very beginning and we expand it
+% just before passing the control to \next.
+% (But first, we have to remove the remaining $ or two.)
+\def\finishparsearg#1$#2\ArgTerm{\expandafter\argtorun\expandafter{#1}}
 
 
 % \parseargdef - define a command taking an argument on the line
@@ -5575,6 +5554,11 @@
 \newdimen\entryrightmargin
 \entryrightmargin=0pt
 
+% amount to indent subsequent lines in an entry when it spans more than
+% one line.
+\newdimen\entrycontskip
+\entrycontskip=1em
+
 % for PDF output, whether to make the text of the entry a link to the page
 % number.  set for @contents and @shortcontents where there is only one
 % page number.
@@ -5684,6 +5668,10 @@
       \advance\dimen at ii by 1\dimen at i
       \ifdim\wd\boxA > \dimen at ii % If the entry doesn't fit in one line
       \ifdim\dimen@ > 0.8\dimen at ii   % due to long index text
+        % Undo changes above
+        \advance \parfillskip by 0pt minus -1\dimen at i
+        \advance\dimen at ii by -1\dimen at i
+        %
         % Try to split the text roughly evenly.  \dimen@ will be the length of
         % the first line.
         \dimen@ = 0.7\dimen@
@@ -5690,11 +5678,12 @@
         \dimen at ii = \hsize
         \ifnum\dimen@>\dimen at ii
           % If the entry is too long (for example, if it needs more than
-          % two lines), use all the space in the first line.
+          % two lines), use the same line length for all lines.
           \dimen@ = \dimen at ii
+        \else
+          \advance \dimen@ by 1\rightskip
         \fi
         \advance\leftskip by 0pt plus 1fill % ragged right
-        \advance \dimen@ by 1\rightskip
         \parshape = 2 0pt \dimen@ 0em \dimen at ii
         % Ideally we'd add a finite glue at the end of the first line only,
         % instead of using \parshape with explicit line lengths, but TeX
@@ -5701,8 +5690,8 @@
         % doesn't seem to provide a way to do such a thing.
         %
         % Indent all lines but the first one.
-        \advance\leftskip by 1em
-        \advance\parindent by -1em
+        \advance\leftskip by \entrycontskip
+        \advance\parindent by -\entrycontskip
       \fi\fi
       \indent % start paragraph
       \unhbox\boxA
@@ -6721,6 +6710,82 @@
   \input \tocreadfilename
 }
 
+% process toc file to find the maximum width of the section numbers for
+% each chapter
+\def\findsecnowidths{%
+  \begingroup
+  \setupdatafile
+  \activecatcodes
+  \secentryfonts
+  % Redefinitions
+  \def\numchapentry##1##2##3##4{%
+    \def\curchapname{secnowidth-##2}%
+    \curchapmax=0pt
+  }%
+  \let\appentry\numchapentry
+  %
+  \def\numsecentry##1##2##3##4{%
+    \def\cursecname{secnowidth-##2}%
+    \cursecmax=0pt
+    %
+    \setbox0=\hbox{##2}%
+    \ifdim\wd0>\curchapmax
+      \curchapmax=\wd0
+      \expandafter\xdef\csname\curchapname\endcsname{\the\wd0}%
+    \fi
+  }%
+  \let\appsecentry\numsecentry
+  %
+  \def\numsubsecentry##1##2##3##4{%
+    \def\curssecname{secnowidth-##2}%
+    \curssecmax=0pt
+    %
+    \setbox0=\hbox{##2}%
+    \ifdim\wd0>\cursecmax
+      \cursecmax=\wd0
+      \expandafter\xdef\csname\cursecname\endcsname{\the\wd0}%
+    \fi
+  }%
+  \let\appsubsecentry\numsubsecentry
+  %
+  \def\numsubsubsecentry##1##2##3##4{%
+    \setbox0=\hbox{##2}%
+    \ifdim\wd0>\curssecmax
+      \curssecmax=\wd0
+      \expandafter\xdef\csname\curssecname\endcsname{\the\wd0}%
+    \fi
+  }%
+  \let\appsubsubsecentry\numsubsubsecentry
+  %
+  % Discard any output by outputting to dummy vbox, in case the toc file
+  % contains macros that we have not redefined above.
+  \setbox\dummybox\vbox\bgroup
+    \input \tocreadfilename\relax
+  \egroup
+  \endgroup
+}
+\newdimen\curchapmax
+\newdimen\cursecmax
+\newdimen\curssecmax
+
+
+% set #1 to the maximum section width for #2
+\def\retrievesecnowidth#1#2{%
+  \expandafter\let\expandafter\savedsecnowidth \csname secnowidth-#2\endcsname
+  \ifx\savedsecnowidth\relax
+    #1=0pt
+  \else
+    #1=\savedsecnowidth
+  \fi
+}
+\newdimen\secnowidthchap
+\secnowidthchap=0pt
+\newdimen\secnowidthsec
+\secnowidthsec=0pt
+\newdimen\secnowidthssec
+\secnowidthssec=0pt
+
+
 \newskip\contentsrightmargin \contentsrightmargin=1in
 \newcount\savepageno
 \newcount\lastnegativepageno \lastnegativepageno = -1
@@ -6766,6 +6831,7 @@
   \startcontents{\putwordTOC}%
     \openin 1 \tocreadfilename\space
     \ifeof 1 \else
+      \findsecnowidths
       \readtocfile
     \fi
     \vfill \eject
@@ -6793,6 +6859,7 @@
     \rm
     \hyphenpenalty = 10000
     \advance\baselineskip by 1pt % Open it up a little.
+    \extrasecnoskip=0.4pt
     \def\numsecentry##1##2##3##4{}
     \let\appsecentry = \numsecentry
     \let\unnsecentry = \numsecentry
@@ -6828,8 +6895,6 @@
   % This space should be enough, since a single number is .5em, and the
   % widest letter (M) is 1em, at least in the Computer Modern fonts.
   % But use \hss just in case.
-  % (This space doesn't include the extra space that gets added after
-  % the label; that gets put in by \shortchapentry above.)
   %
   % We'd like to right-justify chapter numbers, but that looks strange
   % with appendix letters.  And right-justifying numbers and
@@ -6839,10 +6904,15 @@
   \hbox to 1em{#1\hss}%
 }
 
-% These macros generate individual entries in the table of contents.
-% The first argument is the chapter or section name.
-% The last argument is the page number.
-% The arguments in between are the chapter number, section number, ...
+% These macros generate individual entries in the table of contents,
+% and are read in from the *.toc file.
+%
+% The arguments are like:
+% \def\numchapentry#1#2#3#4
+%   #1 - the chapter or section name.
+%   #2 - section number
+%   #3 - level of section (e.g "chap", "sec")
+%   #4 - page number
 
 % Parts, in the main contents.  Replace the part number, which doesn't
 % exist, with an empty box.  Let's hope all the numbers have the same width.
@@ -6855,7 +6925,7 @@
   \vskip 0pt plus 5\baselineskip
   \penalty-300
   \vskip 0pt plus -5\baselineskip
-  \dochapentry{\numeralbox\labelspace#1}{}%
+  \dochapentry{#1}{\numeralbox}{}%
 }
 %
 % Parts, in the short toc.
@@ -6866,12 +6936,14 @@
 }
 
 % Chapters, in the main contents.
-\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}}
+\def\numchapentry#1#2#3#4{%
+  \retrievesecnowidth\secnowidthchap{#2}%
+  \dochapentry{#1}{#2}{#4}%
+}
 
 % Chapters, in the short toc.
-% See comments in \dochapentry re vbox and related settings.
 \def\shortchapentry#1#2#3#4{%
-  \tocentry{\shortchaplabel{#2}\labelspace #1}{#4}%
+  \tocentry{#1}{\shortchaplabel{#2}}{#4}%
 }
 
 % Appendices, in the main contents.
@@ -6882,67 +6954,111 @@
   \setbox0 = \hbox{\putwordAppendix{} M}%
   \hbox to \wd0{\putwordAppendix{} #1\hss}}
 %
-\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\hskip.7em#1}{#4}}
+\def\appentry#1#2#3#4{%
+  \retrievesecnowidth\secnowidthchap{#2}%
+  \dochapentry{\appendixbox{#2}\hskip.7em#1}{}{#4}%
+}
 
 % Unnumbered chapters.
-\def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}}
-\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{#4}}
+\def\unnchapentry#1#2#3#4{\dochapentry{#1}{}{#4}}
+\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{}{#4}}
 
 % Sections.
-\def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}}
+\def\numsecentry#1#2#3#4{\dosecentry{#1}{#2}{#4}}
+
+\def\numsecentry#1#2#3#4{%
+  \retrievesecnowidth\secnowidthsec{#2}%
+  \dosecentry{#1}{#2}{#4}%
+}
 \let\appsecentry=\numsecentry
-\def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}}
+\def\unnsecentry#1#2#3#4{%
+  \retrievesecnowidth\secnowidthsec{#2}%
+  \dosecentry{#1}{}{#4}%
+}
 
 % Subsections.
-\def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}}
+\def\numsubsecentry#1#2#3#4{%
+  \retrievesecnowidth\secnowidthssec{#2}%
+  \dosubsecentry{#1}{#2}{#4}%
+}
 \let\appsubsecentry=\numsubsecentry
-\def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}}
+\def\unnsubsecentry#1#2#3#4{%
+  \retrievesecnowidth\secnowidthssec{#2}%
+  \dosubsecentry{#1}{}{#4}%
+}
 
 % And subsubsections.
-\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}}
+\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#2}{#4}}
 \let\appsubsubsecentry=\numsubsubsecentry
-\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}}
+\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{}{#4}}
 
 % This parameter controls the indentation of the various levels.
 % Same as \defaultparindent.
 \newdimen\tocindent \tocindent = 15pt
 
-% Now for the actual typesetting. In all these, #1 is the text and #2 is the
-% page number.
+% Now for the actual typesetting. In all these, #1 is the text, #2 is
+% a section number if present, and #3 is the page number.
 %
 % If the toc has to be broken over pages, we want it to be at chapters
 % if at all possible; hence the \penalty.
-\def\dochapentry#1#2{%
+\def\dochapentry#1#2#3{%
    \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
    \begingroup
      % Move the page numbers slightly to the right
      \advance\entryrightmargin by -0.05em
      \chapentryfonts
-     \tocentry{#1}{#2}%
+     \extrasecnoskip=0.4em % separate chapter number more
+     \tocentry{#1}{#2}{#3}%
    \endgroup
    \nobreak\vskip .25\baselineskip plus.1\baselineskip
 }
 
-\def\dosecentry#1#2{\begingroup
+\def\dosecentry#1#2#3{\begingroup
+  \secnowidth=\secnowidthchap
   \secentryfonts \leftskip=\tocindent
-  \tocentry{#1}{#2}%
+  \tocentry{#1}{#2}{#3}%
 \endgroup}
 
-\def\dosubsecentry#1#2{\begingroup
+\def\dosubsecentry#1#2#3{\begingroup
+  \secnowidth=\secnowidthsec
   \subsecentryfonts \leftskip=2\tocindent
-  \tocentry{#1}{#2}%
+  \tocentry{#1}{#2}{#3}%
 \endgroup}
 
-\def\dosubsubsecentry#1#2{\begingroup
+\def\dosubsubsecentry#1#2#3{\begingroup
+  \secnowidth=\secnowidthssec
   \subsubsecentryfonts \leftskip=3\tocindent
-  \tocentry{#1}{#2}%
+  \tocentry{#1}{#2}{#3}%
 \endgroup}
 
-% We use the same \entry macro as for the index entries.
-\let\tocentry = \entry
+% Used for the maximum width of a section number so we can align
+% section titles.
+\newdimen\secnowidth
+\secnowidth=0pt
+\newdimen\extrasecnoskip
+\extrasecnoskip=0pt
 
-% Space between chapter (or whatever) number and the title.
-\def\labelspace{\hskip1em \relax}
+% \tocentry{TITLE}{SEC NO}{PAGE}
+%
+\def\tocentry#1#2#3{%
+  \def\secno{#2}%
+  \ifx\empty\secno
+    \entry{#1}{#3}%
+  \else
+    \ifdim 0pt=\secnowidth
+      \setbox0=\hbox{#2\hskip\labelspace\hskip\extrasecnoskip}%
+    \else
+      \advance\secnowidth by \labelspace
+      \advance\secnowidth by \extrasecnoskip
+      \setbox0=\hbox to \secnowidth{%
+        #2\hskip\labelspace\hskip\extrasecnoskip\hfill}%
+    \fi
+    \entrycontskip=\wd0
+    \entry{\box0 #1}{#3}%
+  \fi
+}
+\newdimen\labelspace
+\labelspace=0.6em
 
 \def\chapentryfonts{\secfonts \rm}
 \def\secentryfonts{\textfonts}
@@ -7787,6 +7903,8 @@
   \tolerance=10000 \hbadness=10000
   \exdentamount=\defbodyindent
   {%
+    \def\^^M{}% for line continuation
+    %
     % defun fonts. We use typewriter by default (used to be bold) because:
     % . we're printing identifiers, they should be in tt in principle.
     % . in languages with many accents, such as Czech or French, it's
@@ -7819,6 +7937,7 @@
 % Print arguments.  Use slanted for @def*, typewriter for @deftype*.
 \def\defunargs#1{%
   \bgroup
+    \def\^^M{}% for line continuation
     \df \ifdoingtypefn \tt \else \sl \fi
     \ifflagclear{txicodevaristt}{}%
        {\def\var##1{{\setregularquotes \ttsl ##1}}}%

Modified: trunk/Master/doc.html
===================================================================
--- trunk/Master/doc.html	2023-07-28 23:41:04 UTC (rev 67758)
+++ trunk/Master/doc.html	2023-07-28 23:43:43 UTC (rev 67759)
@@ -6929,6 +6929,12 @@
 <a href="texmf-dist/doc/latex/decorule/decorule.pdf">decorule.pdf</a>
 </small></li>
 
+<li id="defoldfonts"><b><a href="texmf-dist/doc/latex/defoldfonts/">defoldfonts</a></b><small>
+(<a href="https://ctan.org/pkg/defoldfonts">CTAN</a>):
+Define old font commands. 
+<a href="texmf-dist/doc/latex/defoldfonts/defoldfonts.pdf">defoldfonts.pdf</a>
+</small></li>
+
 <li id="dehyph-exptl"><b><a href="texmf-dist/doc/generic/dehyph-exptl/">dehyph-exptl</a></b><small>
 (<a href="https://ctan.org/pkg/dehyph-exptl">CTAN</a>):
 Experimental hyphenation patterns for the German language. 
@@ -7844,7 +7850,7 @@
 
 <h2 id="letter-E">E</h2>
 
-<ol start="990">
+<ol start="991">
 
 <li id="e-french"><b><a href="texmf-dist/doc/generic/e-french/">e-french</a></b><small>
 (<a href="https://ctan.org/pkg/e-french">CTAN</a>):
@@ -9164,7 +9170,7 @@
 
 <h2 id="letter-F">F</h2>
 
-<ol start="1178">
+<ol start="1179">
 
 <li id="facsimile"><b><a href="texmf-dist/doc/latex/facsimile/">facsimile</a></b><small>
 (<a href="https://ctan.org/pkg/facsimile">CTAN</a>):
@@ -10380,7 +10386,7 @@
 
 <h2 id="letter-G">G</h2>
 
-<ol start="1350">
+<ol start="1351">
 
 <li id="g-brief"><b><a href="texmf-dist/doc/latex/g-brief/">g-brief</a></b><small>
 (<a href="https://ctan.org/pkg/g-brief">CTAN</a>):
@@ -11622,7 +11628,7 @@
 
 <h2 id="letter-H">H</h2>
 
-<ol start="1488">
+<ol start="1489">
 
 <li id="h2020proposal"><b><a href="texmf-dist/doc/latex/h2020proposal/">h2020proposal</a></b><small>
 (<a href="https://ctan.org/pkg/h2020proposal">CTAN</a>):
@@ -12410,7 +12416,7 @@
 
 <h2 id="letter-I">I</h2>
 
-<ol start="1593">
+<ol start="1594">
 
 <li id="ibarra"><b><a href="texmf-dist/doc/fonts/ibarra/">ibarra</a></b><small>
 (<a href="https://ctan.org/pkg/ibarra">CTAN</a>):
@@ -12985,7 +12991,7 @@
 
 <h2 id="letter-J">J</h2>
 
-<ol start="1677">
+<ol start="1678">
 
 <li id="jablantile"><b><a href="texmf-dist/doc/fonts/jablantile/">jablantile</a></b><small>
 (<a href="https://ctan.org/pkg/jablantile">CTAN</a>):
@@ -13242,7 +13248,7 @@
 
 <h2 id="letter-K">K</h2>
 
-<ol start="1710">
+<ol start="1711">
 
 <li id="kalendarium"><b><a href="texmf-dist/doc/latex/kalendarium/">kalendarium</a></b><small>
 (<a href="https://ctan.org/pkg/kalendarium">CTAN</a>):
@@ -13853,7 +13859,7 @@
 
 <h2 id="letter-L">L</h2>
 
-<ol start="1761">
+<ol start="1762">
 
 <li id="l2picfaq"><b><a href="texmf-dist/doc/latex/l2picfaq/">l2picfaq</a></b><small>
 (<a href="https://ctan.org/pkg/l2picfaq">CTAN</a>):
@@ -16064,7 +16070,7 @@
 
 <h2 id="letter-M">M</h2>
 
-<ol start="2033">
+<ol start="2034">
 
 <li id="m-tx"><b><a href="texmf-dist/doc/generic/m-tx/">m-tx</a></b><small>
 (<a href="https://ctan.org/pkg/m-tx">CTAN</a>):
@@ -17789,7 +17795,7 @@
 
 <h2 id="letter-N">N</h2>
 
-<ol start="2276">
+<ol start="2277">
 
 <li id="na-box"><b><a href="texmf-dist/doc/xelatex/na-box/">na-box</a></b><small>
 (<a href="https://ctan.org/pkg/na-box">CTAN</a>):
@@ -18517,7 +18523,7 @@
 
 <h2 id="letter-O">O</h2>
 
-<ol start="2375">
+<ol start="2376">
 
 <li id="oberdiek"><b><a href="texmf-dist/doc/latex/oberdiek/">oberdiek</a></b><small>
 (<a href="https://ctan.org/pkg/oberdiek">CTAN</a>):
@@ -18884,7 +18890,7 @@
 
 <h2 id="letter-P">P</h2>
 
-<ol start="2423">
+<ol start="2424">
 
 <li id="padcount"><b><a href="texmf-dist/doc/latex/padcount/">padcount</a></b><small>
 (<a href="https://ctan.org/pkg/padcount">CTAN</a>):
@@ -21455,7 +21461,7 @@
 
 <h2 id="letter-Q">Q</h2>
 
-<ol start="2781">
+<ol start="2782">
 
 <li id="qcircuit"><b><a href="texmf-dist/doc/latex/qcircuit/">qcircuit</a></b><small>
 (<a href="https://ctan.org/pkg/qcircuit">CTAN</a>):
@@ -21617,7 +21623,7 @@
 
 <h2 id="letter-R">R</h2>
 
-<ol start="2804">
+<ol start="2805">
 
 <li id="ragged2e"><b><a href="texmf-dist/doc/latex/ragged2e/">ragged2e</a></b><small>
 (<a href="https://ctan.org/pkg/ragged2e">CTAN</a>):
@@ -22312,7 +22318,7 @@
 
 <h2 id="letter-S">S</h2>
 
-<ol start="2895">
+<ol start="2896">
 
 <li id="sa-tikz"><b><a href="texmf-dist/doc/latex/sa-tikz/">sa-tikz</a></b><small>
 (<a href="https://ctan.org/pkg/sa-tikz">CTAN</a>):
@@ -23511,7 +23517,7 @@
 
 <li id="spacingtricks"><b><a href="texmf-dist/doc/latex/spacingtricks/">spacingtricks</a></b><small>
 (<a href="https://ctan.org/pkg/spacingtricks">CTAN</a>):
-Dealing with some spacing issues. 
+Addressing various spacing issues. 
 <a href="texmf-dist/doc/latex/spacingtricks/spacingtricks.pdf">spacingtricks.pdf</a>
 </small></li>
 
@@ -24235,7 +24241,7 @@
 
 <h2 id="letter-T">T</h2>
 
-<ol start="3170">
+<ol start="3171">
 
 <li id="t-angles"><b><a href="texmf-dist/doc/latex/t-angles/">t-angles</a></b><small>
 (<a href="https://ctan.org/pkg/t-angles">CTAN</a>):
@@ -26767,7 +26773,7 @@
 
 <h2 id="letter-U">U</h2>
 
-<ol start="3485">
+<ol start="3486">
 
 <li id="uaclasses"><b><a href="texmf-dist/doc/latex/uaclasses/">uaclasses</a></b><small>
 (<a href="https://ctan.org/pkg/uaclasses">CTAN</a>):
@@ -27411,7 +27417,7 @@
 
 <h2 id="letter-V">V</h2>
 
-<ol start="3575">
+<ol start="3576">
 
 <li id="vancouver"><b><a href="texmf-dist/doc/bibtex/vancouver/">vancouver</a></b><small>
 (<a href="https://ctan.org/pkg/vancouver">CTAN</a>):
@@ -27684,7 +27690,7 @@
 
 <h2 id="letter-W">W</h2>
 
-<ol start="3614">
+<ol start="3615">
 
 <li id="wadalab"><b><a href="texmf-dist/doc/fonts/wadalab/">wadalab</a></b><small>
 (<a href="https://ctan.org/pkg/wadalab">CTAN</a>):
@@ -27935,7 +27941,7 @@
 
 <h2 id="letter-X">X</h2>
 
-<ol start="3645">
+<ol start="3646">
 
 <li id="xargs"><b><a href="texmf-dist/doc/latex/xargs/">xargs</a></b><small>
 (<a href="https://ctan.org/pkg/xargs">CTAN</a>):
@@ -28566,7 +28572,7 @@
 
 <h2 id="letter-Y">Y</h2>
 
-<ol start="3719">
+<ol start="3720">
 
 <li id="yafoot"><b><a href="texmf-dist/doc/latex/yafoot/">yafoot</a></b><small>
 (<a href="https://ctan.org/pkg/yafoot">CTAN</a>):
@@ -28696,7 +28702,7 @@
 
 <h2 id="letter-Z">Z</h2>
 
-<ol start="3737">
+<ol start="3738">
 
 <li id="zbmath-review-template"><b><a href="texmf-dist/doc/xelatex/zbmath-review-template/">zbmath-review-template</a></b><small>
 (<a href="https://ctan.org/pkg/zbmath-review-template">CTAN</a>):
@@ -28841,5 +28847,5 @@
 
 <p><a href="#letter-1">1</a> - <a href="#letter-2">2</a> - <a href="#letter-A">A</a> - <a href="#letter-B">B</a> - <a href="#letter-C">C</a> - <a href="#letter-D">D</a> - <a href="#letter-E">E</a> - <a href="#letter-F">F</a> - <a href="#letter-G">G</a> - <a href="#letter-H">H</a> - <a href="#letter-I">I</a> - <a href="#letter-J">J</a> - <a href="#letter-K">K</a> - <a href="#letter-L">L</a> - <a href="#letter-M">M</a> - <a href="#letter-N">N</a> - <a href="#letter-O">O</a> - <a href="#letter-P">P</a> - <a href="#letter-Q">Q</a> - <a href="#letter-R">R</a> - <a href="#letter-S">S</a> - <a href="#letter-T">T</a> - <a href="#letter-U">U</a> - <a href="#letter-V">V</a> - <a href="#letter-W">W</a> - <a href="#letter-X">X</a> - <a href="#letter-Y">Y</a> - <a href="#letter-Z">Z</a></p>
 <hr>
-<small>Generated Fri Jul 28 01:42:59 CEST 2023 by tl-update-docindex.</small>
+<small>Generated Sat Jul 29 01:43:30 CEST 2023 by tl-update-docindex.</small>
 </body></html>

Modified: trunk/Master/texmf-dist/tex/texinfo/texinfo.tex
===================================================================
--- trunk/Master/texmf-dist/tex/texinfo/texinfo.tex	2023-07-28 23:41:04 UTC (rev 67758)
+++ trunk/Master/texmf-dist/tex/texinfo/texinfo.tex	2023-07-28 23:43:43 UTC (rev 67759)
@@ -3,7 +3,7 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2023-07-02.10}
+\def\texinfoversion{2023-07-27.21}
 %
 % Copyright 1985, 1986, 1988, 1990-2023 Free Software Foundation, Inc.
 %
@@ -426,42 +426,21 @@
 }
 
 % First remove any @comment, then any @c comment.  Pass the result on to 
-% \argcheckspaces.
+% \argremovespace.
 \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
-\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
-
-% Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space.
-%
-% \argremovec might leave us with trailing space, e.g.,
+\def\argremovec#1\c#2\ArgTerm{\argremovespace#1$ $\ArgTerm}
+% \argremovec might leave us with trailing space, though; e.g.,
 %    @end itemize  @c foo
-% This space token undergoes the same procedure and is eventually removed
-% by \finishparsearg.
-%
-\def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M}
-\def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M}
-\def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{%
-  \def\temp{#3}%
-  \ifx\temp\empty
-    % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp:
-    \let\temp\finishparsearg
-  \else
-    \let\temp\argcheckspaces
-  \fi
-  % Put the space token in:
-  \temp#1 #3\ArgTerm
-}
+% Note that the argument cannot contain the TeX $, as its catcode is
+% changed to \other when Texinfo source is read.
+\def\argremovespace#1 $#2\ArgTerm{\finishparsearg#1$\ArgTerm}
 
 % If a _delimited_ argument is enclosed in braces, they get stripped; so
 % to get _exactly_ the rest of the line, we had to prevent such situation.
-% We prepended an \empty token at the very beginning and we expand it now,
-% just before passing the control to \argtorun.
-% (Similarly, we have to think about #3 of \argcheckspacesY above: it is
-% either the null string, or it ends with \^^M---thus there is no danger
-% that a pair of braces would be stripped.
-%
-% But first, we have to remove the trailing space token.
-%
-\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}}
+% We prepended an \empty token at the very beginning and we expand it
+% just before passing the control to \next.
+% (But first, we have to remove the remaining $ or two.)
+\def\finishparsearg#1$#2\ArgTerm{\expandafter\argtorun\expandafter{#1}}
 
 
 % \parseargdef - define a command taking an argument on the line
@@ -5575,6 +5554,11 @@
 \newdimen\entryrightmargin
 \entryrightmargin=0pt
 
+% amount to indent subsequent lines in an entry when it spans more than
+% one line.
+\newdimen\entrycontskip
+\entrycontskip=1em
+
 % for PDF output, whether to make the text of the entry a link to the page
 % number.  set for @contents and @shortcontents where there is only one
 % page number.
@@ -5684,6 +5668,10 @@
       \advance\dimen at ii by 1\dimen at i
       \ifdim\wd\boxA > \dimen at ii % If the entry doesn't fit in one line
       \ifdim\dimen@ > 0.8\dimen at ii   % due to long index text
+        % Undo changes above
+        \advance \parfillskip by 0pt minus -1\dimen at i
+        \advance\dimen at ii by -1\dimen at i
+        %
         % Try to split the text roughly evenly.  \dimen@ will be the length of 
         % the first line.
         \dimen@ = 0.7\dimen@
@@ -5690,11 +5678,12 @@
         \dimen at ii = \hsize
         \ifnum\dimen@>\dimen at ii
           % If the entry is too long (for example, if it needs more than
-          % two lines), use all the space in the first line.
+          % two lines), use the same line length for all lines.
           \dimen@ = \dimen at ii
+        \else
+          \advance \dimen@ by 1\rightskip
         \fi
         \advance\leftskip by 0pt plus 1fill % ragged right
-        \advance \dimen@ by 1\rightskip
         \parshape = 2 0pt \dimen@ 0em \dimen at ii
         % Ideally we'd add a finite glue at the end of the first line only,
         % instead of using \parshape with explicit line lengths, but TeX
@@ -5701,8 +5690,8 @@
         % doesn't seem to provide a way to do such a thing.
         %
         % Indent all lines but the first one.
-        \advance\leftskip by 1em
-        \advance\parindent by -1em
+        \advance\leftskip by \entrycontskip
+        \advance\parindent by -\entrycontskip
       \fi\fi
       \indent % start paragraph
       \unhbox\boxA
@@ -6721,6 +6710,82 @@
   \input \tocreadfilename
 }
 
+% process toc file to find the maximum width of the section numbers for
+% each chapter
+\def\findsecnowidths{%
+  \begingroup
+  \setupdatafile
+  \activecatcodes
+  \secentryfonts
+  % Redefinitions
+  \def\numchapentry##1##2##3##4{%
+    \def\curchapname{secnowidth-##2}%
+    \curchapmax=0pt
+  }%
+  \let\appentry\numchapentry
+  %
+  \def\numsecentry##1##2##3##4{%
+    \def\cursecname{secnowidth-##2}%
+    \cursecmax=0pt
+    %
+    \setbox0=\hbox{##2}%
+    \ifdim\wd0>\curchapmax
+      \curchapmax=\wd0
+      \expandafter\xdef\csname\curchapname\endcsname{\the\wd0}%
+    \fi
+  }%
+  \let\appsecentry\numsecentry
+  %
+  \def\numsubsecentry##1##2##3##4{%
+    \def\curssecname{secnowidth-##2}%
+    \curssecmax=0pt
+    %
+    \setbox0=\hbox{##2}%
+    \ifdim\wd0>\cursecmax
+      \cursecmax=\wd0
+      \expandafter\xdef\csname\cursecname\endcsname{\the\wd0}%
+    \fi
+  }%
+  \let\appsubsecentry\numsubsecentry
+  %
+  \def\numsubsubsecentry##1##2##3##4{%
+    \setbox0=\hbox{##2}%
+    \ifdim\wd0>\curssecmax
+      \curssecmax=\wd0
+      \expandafter\xdef\csname\curssecname\endcsname{\the\wd0}%
+    \fi
+  }%
+  \let\appsubsubsecentry\numsubsubsecentry
+  %
+  % Discard any output by outputting to dummy vbox, in case the toc file
+  % contains macros that we have not redefined above.
+  \setbox\dummybox\vbox\bgroup
+    \input \tocreadfilename\relax
+  \egroup
+  \endgroup
+}
+\newdimen\curchapmax
+\newdimen\cursecmax
+\newdimen\curssecmax
+
+
+% set #1 to the maximum section width for #2
+\def\retrievesecnowidth#1#2{%
+  \expandafter\let\expandafter\savedsecnowidth \csname secnowidth-#2\endcsname
+  \ifx\savedsecnowidth\relax
+    #1=0pt
+  \else
+    #1=\savedsecnowidth
+  \fi
+}
+\newdimen\secnowidthchap
+\secnowidthchap=0pt
+\newdimen\secnowidthsec
+\secnowidthsec=0pt
+\newdimen\secnowidthssec
+\secnowidthssec=0pt
+
+
 \newskip\contentsrightmargin \contentsrightmargin=1in
 \newcount\savepageno
 \newcount\lastnegativepageno \lastnegativepageno = -1
@@ -6766,6 +6831,7 @@
   \startcontents{\putwordTOC}%
     \openin 1 \tocreadfilename\space
     \ifeof 1 \else
+      \findsecnowidths
       \readtocfile
     \fi
     \vfill \eject
@@ -6793,6 +6859,7 @@
     \rm
     \hyphenpenalty = 10000
     \advance\baselineskip by 1pt % Open it up a little.
+    \extrasecnoskip=0.4pt
     \def\numsecentry##1##2##3##4{}
     \let\appsecentry = \numsecentry
     \let\unnsecentry = \numsecentry
@@ -6828,8 +6895,6 @@
   % This space should be enough, since a single number is .5em, and the
   % widest letter (M) is 1em, at least in the Computer Modern fonts.
   % But use \hss just in case.
-  % (This space doesn't include the extra space that gets added after
-  % the label; that gets put in by \shortchapentry above.)
   %
   % We'd like to right-justify chapter numbers, but that looks strange
   % with appendix letters.  And right-justifying numbers and
@@ -6839,10 +6904,15 @@
   \hbox to 1em{#1\hss}%
 }
 
-% These macros generate individual entries in the table of contents.
-% The first argument is the chapter or section name.
-% The last argument is the page number.
-% The arguments in between are the chapter number, section number, ...
+% These macros generate individual entries in the table of contents,
+% and are read in from the *.toc file.
+%
+% The arguments are like:
+% \def\numchapentry#1#2#3#4
+%   #1 - the chapter or section name.
+%   #2 - section number
+%   #3 - level of section (e.g "chap", "sec")
+%   #4 - page number
 
 % Parts, in the main contents.  Replace the part number, which doesn't
 % exist, with an empty box.  Let's hope all the numbers have the same width.
@@ -6855,7 +6925,7 @@
   \vskip 0pt plus 5\baselineskip
   \penalty-300
   \vskip 0pt plus -5\baselineskip
-  \dochapentry{\numeralbox\labelspace#1}{}%
+  \dochapentry{#1}{\numeralbox}{}%
 }
 %
 % Parts, in the short toc.
@@ -6866,12 +6936,14 @@
 }
 
 % Chapters, in the main contents.
-\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}}
+\def\numchapentry#1#2#3#4{%
+  \retrievesecnowidth\secnowidthchap{#2}%
+  \dochapentry{#1}{#2}{#4}%
+}
 
 % Chapters, in the short toc.
-% See comments in \dochapentry re vbox and related settings.
 \def\shortchapentry#1#2#3#4{%
-  \tocentry{\shortchaplabel{#2}\labelspace #1}{#4}%
+  \tocentry{#1}{\shortchaplabel{#2}}{#4}%
 }
 
 % Appendices, in the main contents.
@@ -6882,67 +6954,111 @@
   \setbox0 = \hbox{\putwordAppendix{} M}%
   \hbox to \wd0{\putwordAppendix{} #1\hss}}
 %
-\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\hskip.7em#1}{#4}}
+\def\appentry#1#2#3#4{%
+  \retrievesecnowidth\secnowidthchap{#2}%
+  \dochapentry{\appendixbox{#2}\hskip.7em#1}{}{#4}%
+}
 
 % Unnumbered chapters.
-\def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}}
-\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{#4}}
+\def\unnchapentry#1#2#3#4{\dochapentry{#1}{}{#4}}
+\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{}{#4}}
 
 % Sections.
-\def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}}
+\def\numsecentry#1#2#3#4{\dosecentry{#1}{#2}{#4}}
+
+\def\numsecentry#1#2#3#4{%
+  \retrievesecnowidth\secnowidthsec{#2}%
+  \dosecentry{#1}{#2}{#4}%
+}
 \let\appsecentry=\numsecentry
-\def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}}
+\def\unnsecentry#1#2#3#4{%
+  \retrievesecnowidth\secnowidthsec{#2}%
+  \dosecentry{#1}{}{#4}%
+}
 
 % Subsections.
-\def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}}
+\def\numsubsecentry#1#2#3#4{%
+  \retrievesecnowidth\secnowidthssec{#2}%
+  \dosubsecentry{#1}{#2}{#4}%
+}
 \let\appsubsecentry=\numsubsecentry
-\def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}}
+\def\unnsubsecentry#1#2#3#4{%
+  \retrievesecnowidth\secnowidthssec{#2}%
+  \dosubsecentry{#1}{}{#4}%
+}
 
 % And subsubsections.
-\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}}
+\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#2}{#4}}
 \let\appsubsubsecentry=\numsubsubsecentry
-\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}}
+\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{}{#4}}
 
 % This parameter controls the indentation of the various levels.
 % Same as \defaultparindent.
 \newdimen\tocindent \tocindent = 15pt
 
-% Now for the actual typesetting. In all these, #1 is the text and #2 is the
-% page number.
+% Now for the actual typesetting. In all these, #1 is the text, #2 is
+% a section number if present, and #3 is the page number.
 %
 % If the toc has to be broken over pages, we want it to be at chapters
 % if at all possible; hence the \penalty.
-\def\dochapentry#1#2{%
+\def\dochapentry#1#2#3{%
    \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
    \begingroup
      % Move the page numbers slightly to the right
      \advance\entryrightmargin by -0.05em
      \chapentryfonts
-     \tocentry{#1}{#2}%
+     \extrasecnoskip=0.4em % separate chapter number more
+     \tocentry{#1}{#2}{#3}%
    \endgroup
    \nobreak\vskip .25\baselineskip plus.1\baselineskip
 }
 
-\def\dosecentry#1#2{\begingroup
+\def\dosecentry#1#2#3{\begingroup
+  \secnowidth=\secnowidthchap
   \secentryfonts \leftskip=\tocindent
-  \tocentry{#1}{#2}%
+  \tocentry{#1}{#2}{#3}%
 \endgroup}
 
-\def\dosubsecentry#1#2{\begingroup
+\def\dosubsecentry#1#2#3{\begingroup
+  \secnowidth=\secnowidthsec
   \subsecentryfonts \leftskip=2\tocindent
-  \tocentry{#1}{#2}%
+  \tocentry{#1}{#2}{#3}%
 \endgroup}
 
-\def\dosubsubsecentry#1#2{\begingroup
+\def\dosubsubsecentry#1#2#3{\begingroup
+  \secnowidth=\secnowidthssec
   \subsubsecentryfonts \leftskip=3\tocindent
-  \tocentry{#1}{#2}%
+  \tocentry{#1}{#2}{#3}%
 \endgroup}
 
-% We use the same \entry macro as for the index entries.
-\let\tocentry = \entry
+% Used for the maximum width of a section number so we can align
+% section titles.
+\newdimen\secnowidth
+\secnowidth=0pt
+\newdimen\extrasecnoskip
+\extrasecnoskip=0pt
 
-% Space between chapter (or whatever) number and the title.
-\def\labelspace{\hskip1em \relax}
+% \tocentry{TITLE}{SEC NO}{PAGE}
+%
+\def\tocentry#1#2#3{%
+  \def\secno{#2}%
+  \ifx\empty\secno
+    \entry{#1}{#3}%
+  \else
+    \ifdim 0pt=\secnowidth
+      \setbox0=\hbox{#2\hskip\labelspace\hskip\extrasecnoskip}%
+    \else
+      \advance\secnowidth by \labelspace
+      \advance\secnowidth by \extrasecnoskip
+      \setbox0=\hbox to \secnowidth{%
+        #2\hskip\labelspace\hskip\extrasecnoskip\hfill}%
+    \fi
+    \entrycontskip=\wd0
+    \entry{\box0 #1}{#3}%
+  \fi
+}
+\newdimen\labelspace
+\labelspace=0.6em
 
 \def\chapentryfonts{\secfonts \rm}
 \def\secentryfonts{\textfonts}
@@ -7787,6 +7903,8 @@
   \tolerance=10000 \hbadness=10000
   \exdentamount=\defbodyindent
   {%
+    \def\^^M{}% for line continuation
+    %
     % defun fonts. We use typewriter by default (used to be bold) because:
     % . we're printing identifiers, they should be in tt in principle.
     % . in languages with many accents, such as Czech or French, it's
@@ -7819,6 +7937,7 @@
 % Print arguments.  Use slanted for @def*, typewriter for @deftype*.
 \def\defunargs#1{%
   \bgroup
+    \def\^^M{}% for line continuation
     \df \ifdoingtypefn \tt \else \sl \fi
     \ifflagclear{txicodevaristt}{}%
        {\def\var##1{{\setregularquotes \ttsl ##1}}}%

Modified: trunk/Master/tlpkg/installer/ctan-mirrors.pl
===================================================================
--- trunk/Master/tlpkg/installer/ctan-mirrors.pl	2023-07-28 23:41:04 UTC (rev 67758)
+++ trunk/Master/tlpkg/installer/ctan-mirrors.pl	2023-07-28 23:43:43 UTC (rev 67759)
@@ -29,9 +29,6 @@
     'Hong Kong' => {
       'https://mirror-hk.koddos.net/CTAN/' => 1,
     },
-    'India' => {
-      'https://mirror.niser.ac.in/ctan/' => 1,
-    },
     'Indonesia' => {
       'http://repo.ugm.ac.id/ctan/' => 1,
       'https://mirror.unpad.ac.id/ctan/' => 1,



More information about the tex-live-commits mailing list.