[latex3-commits] [latex3/latex2e] gh1323: fix for #1323 (a327810d)

github at latex-project.org github at latex-project.org
Mon Apr 8 16:32:42 CEST 2024


Repository : https://github.com/latex3/latex2e
On branch  : gh1323
Link       : https://github.com/latex3/latex2e/commit/a327810d5824b820e23558aa7b26ad41598bd0b1

>---------------------------------------------------------------

commit a327810d5824b820e23558aa7b26ad41598bd0b1
Author: Frank Mittelbach <frank.mittelbach at latex-project.org>
Date:   Mon Apr 8 16:32:42 2024 +0200

    fix for #1323


>---------------------------------------------------------------

a327810d5824b820e23558aa7b26ad41598bd0b1
 base/doc/ltnews39.tex                    | 102 +++++++++++++++++--------------
 required/tools/array.dtx                 |  12 +++-
 required/tools/changes.txt               |   8 ++-
 required/tools/testfiles/github-1323.lvt |  32 ++++++++++
 required/tools/testfiles/github-1323.tlg |   9 +++
 5 files changed, 115 insertions(+), 48 deletions(-)

diff --git a/base/doc/ltnews39.tex b/base/doc/ltnews39.tex
index 92c83592..8a06a7cd 100644
--- a/base/doc/ltnews39.tex
+++ b/base/doc/ltnews39.tex
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright 2023
+% Copyright 2024
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -175,7 +175,7 @@ found in various other places, e.g., \texttt{tagpdf.pdf}.
 
 We also added support for a few missing commands 
 described in Leslie Lamport's \emph{\LaTeX{}
-Manual}~\cite{38:Lamport}: If \texttt{phase-III} is used 
+Manual}~\cite{39:Lamport}: If \texttt{phase-III} is used 
 the \cs{marginpar} command will be properly tagged (depending on
 the PDF version) as an \texttt{Aside} or a \texttt{Note} structure.
 In the standard classes \cs{maketitle} will be tagged if the additional
@@ -263,37 +263,6 @@ Details about the implementation can be found in \texttt{texdoc
   ltmarks-code} or in the shorter \texttt{texdoc ltmarks-doc} (which
 only describes the general concepts and  the command interfaces).
 
-\section{New or improved commands}
-
-\subsection{\pkg{doc}: provide \cs{ProvideDocElement}}
-
-Beside \cs{NewDocElement} and \cs{RenewDocElement} we now also offer a
-\cs{ProvideDocElement} declaration that does nothing unless the doc
-element could be declared with \cs{NewDocElement}. This can be useful
-if documentation files are processed both individually as well as
-combined.
-
-
-\subsection{\pkg{doc}: better support for \pkg{upquote}}
-
-In \LaTeX{} News~37~\cite{39:ltnews37} we wrote that support for the
-\pkg{upquote} package was added to the \pkg{doc} package, but back
-then this was only done for \cs{verb}, and the \env{verbatim}
-environments. However, the bulk of code in a typical \texttt{.dtx} file is
-within \env{macrocode} or \env{macrocode*} environments which were not
-affected by adding \pkg{upquote}. We have now updated those, such that
-\pkg{upquote} alters the quote characters in these environments as
-well.
-%
-\githubissue{1230}
-
-\subsection{\pkg{ifthen}: guard against active characters in comparisons}
-The \cs{ifthenelse} command now ensures that \verb|<|, \verb|=| and
-\verb|>| are safe
-in numeric tests, even if they have been made active
-(typically by \pkg{babel} language shorthands.)
-%
-\githubissue{756}
 
 \section{Providing \pkg{xtemplate} in the format}
 
@@ -348,6 +317,40 @@ To support existing package authors, we have released an updated version of
 existing commands provided in \pkg{xtemplate} will continue to work, but
 we encourage programmers to move to the set above.
 
+
+\section{New or improved commands}
+
+\subsection{\pkg{doc}: Provide \cs{ProvideDocElement}}
+
+Beside \cs{NewDocElement} and \cs{RenewDocElement} we now also offer a
+\cs{ProvideDocElement} declaration that does nothing unless the doc
+element could be declared with \cs{NewDocElement}. This can be useful
+if documentation files are processed both individually as well as
+combined.
+
+
+\subsection{\pkg{doc}: Better support for \pkg{upquote}}
+
+In \LaTeX{} News~37~\cite{39:ltnews37} we wrote that support for the
+\pkg{upquote} package was added to the \pkg{doc} package, but back
+then this was only done for \cs{verb}, and the \env{verbatim}
+environments. However, the bulk of code in a typical \texttt{.dtx} file is
+within \env{macrocode} or \env{macrocode*} environments which were not
+affected by adding \pkg{upquote}. We have now updated those, such that
+\pkg{upquote} alters the quote characters in these environments as
+well.
+%
+\githubissue{1230}
+
+\subsection{\pkg{ifthen}: Guard against active characters in comparisons}
+The \cs{ifthenelse} command now ensures that \verb|<|, \verb|=| and
+\verb|>| are safe
+in numeric tests, even if they have been made active
+(typically by \pkg{babel} language shorthands.)
+%
+\githubissue{756}
+
+
 \section{Code improvements}
 
 \subsection{Loading packages at the top level}
@@ -570,7 +573,7 @@ This has now been corrected.
 
 \section{Changes to packages in the \pkg{amsmath} category}
 
-\subsection{\pkg{amsmath}: correct equation tag placement}
+\subsection{\pkg{amsmath}: Correct equation tag placement}
 
 If there is not enough space to place an equation tag on the same line
 as the equation \pkg{amsmath} calculates a suitable offset and then
@@ -591,7 +594,7 @@ been corrected.
 \section{Changes to packages in the \pkg{tools} category}
 
 
-\subsection{\pkg{array}, \pkg{longtable}, \pkg{tabularx}: support tagging}
+\subsection{\pkg{array}, \pkg{longtable}, \pkg{tabularx}: Support tagging}
 
 The three packages are now extended to enable producing tagged tabulars upon
 request. This is done by adding a number of sockets (see
@@ -602,6 +605,17 @@ In the previous \LaTeX{} release this was handled in
 \texttt{latex-lab} patching the packages when tagging was requested.
 
 
+\subsection{\pkg{array}: No \cs{unskip} in math cells}
+
+Math cells in the standard \env{array} environment of the kernel are
+not subject to space removal at the right end of the cell, i.e., explicit
+spaces from \cs{hspace} or \verb*|\ |, etc.\ are honored
+(normal spaces are automatically ignored in math). In the \pkg{array}
+package all spaces got removed by calling \cs{unskip} unconditionally,
+regardless of the type of cell. This difference in behavior has been
+now been corrected.
+%
+\githubissue{1323}
 
 
 \subsection{\pkg{verbatim}: \cs{verb} showed visible spaces}
@@ -666,20 +680,18 @@ didn't get this treatment. This oversight has now been corrected.
 %\fontsize{9.3}{11.3}\selectfont
 
 
-%\bibitem{39:Lamport}
-%Leslie Lamport.
-%\newblock \emph{{\LaTeX}: {A} Document Preparation System: User's Guide and Reference
-%  Manual}.
-%\newblock \mbox{Addison}-Wesley, Reading, MA, USA, 2nd edition, 1994.
-%\newblock ISBN 0-201-52983-1.
-%\newblock Reprinted with corrections in 1996.
-%
+\bibitem{39:Lamport}
+Leslie Lamport.
+\newblock \emph{{\LaTeX}: {A} Document Preparation System: User's Guide and Reference
+  Manual}.
+\newblock \mbox{Addison}-Wesley, Reading, MA, USA, 2nd edition, 1994.
+\newblock ISBN 0-201-52983-1.
+\newblock Reprinted with corrections in 1996.
 
 \bibitem{39:ltnews} \LaTeX{} Project Team.
   \emph{\LaTeXe{} news 1--39}. June, 2024.
   \url{https://latex-project.org/news/latex2e-news/ltnews.pdf}
-%
-%
+
 \bibitem{39:ltnews31} \LaTeX{} Project Team.
   \emph{\LaTeXe{} news 31}. February, 2020.
   \url{https://latex-project.org/news/latex2e-news/ltnews31.pdf}
diff --git a/required/tools/array.dtx b/required/tools/array.dtx
index 66c40a52..45a86667 100644
--- a/required/tools/array.dtx
+++ b/required/tools/array.dtx
@@ -38,7 +38,7 @@
 %    \begin{macrocode}
 %<+package>\NeedsTeXFormat{LaTeX2e}[2024/06/01]
 %<+package>\ProvidesPackage{array}
-%<+package>         [2023/12/11 v2.6a Tabular extension package (FMi)]
+%<+package>         [2024/04/08 v2.6b Tabular extension package (FMi)]
 %
 % \fi
 %
@@ -1371,6 +1371,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
 %
 % \begin{macro}{\insert at column}
 % \begin{macro}{\@sharp}
+% \begin{macro}{\textonly at unskip}
 %    We now define the macro =\insert at column= which will do
 %    this work for us.
 %    \begin{macrocode}
@@ -1399,8 +1400,9 @@ Bug reports can be opened (category \texttt{#1}) at\\%
 % \changes{v2.0e}{1991/02/07}{Added \{\} around \cs{@sharp} for new ftsel}
 % \changes{v2.0h}{1992/06/22}{Removed \{\} again in favour of
 %                             \cs{d at llarbegin}}
+% \changes{v2.6b}{2024/04/08}{Do not \cs{unskip} if in math mode (gh/1323)}
 %    \begin{macrocode}
-   \ignorespaces \@sharp \unskip
+   \ignorespaces \@sharp \textonly at unskip
 %    \end{macrocode}
 %    Then the second \textsf{token} register follows whose number should
 %    be saved in =\count@=.
@@ -1420,6 +1422,12 @@ Bug reports can be opened (category \texttt{#1}) at\\%
    \UseTaggingSocket{tbl/cell/end}%
 }
 %    \end{macrocode}
+%    Do the unskip only if we are in hmode:
+% \changes{v2.6b}{2024/04/08}{Do not \cs{unskip} if in math mode (gh/1323)}
+%    \begin{macrocode}
+\protected\def\textonly at unskip{\ifhmode\unskip\fi}
+%    \end{macrocode}
+% \end{macro}
 % \end{macro}
 % \end{macro}
 %
diff --git a/required/tools/changes.txt b/required/tools/changes.txt
index 4339d8e7..de627630 100644
--- a/required/tools/changes.txt
+++ b/required/tools/changes.txt
@@ -5,6 +5,12 @@ completeness or accuracy and it contains some references to files that
 are not part of the distribution.
 =======================================================================
 
+2024-04-08  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* array.dtx (section{The insertion of declarations):
+	Do not \unskip if in math mode, this way explicit spaces at the
+	end of the math cell remain as it is with array env in core LaTeX (gh/1323)
+
 2024-03-13  David Carlisle  <David.Carlisle at latex-project.org>
 
 	* l3sys-query.dtx
@@ -16,7 +22,7 @@ are not part of the distribution.
 
 2023-12-16  David Carlisle  <David.Carlisle at latex-project.org>
 
-	* showkeys.dtx: avoid adding extra box to \@lables gh/1123
+	* showkeys.dtx: avoid adding extra box to \@labels gh/1123
 
 2023-12-16  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
 
diff --git a/required/tools/testfiles/github-1323.lvt b/required/tools/testfiles/github-1323.lvt
new file mode 100644
index 00000000..1a987835
--- /dev/null
+++ b/required/tools/testfiles/github-1323.lvt
@@ -0,0 +1,32 @@
+\documentclass{article}
+\input{regression-test}
+\usepackage{array}
+
+\newlength\mylength
+
+\begin{document}
+
+\START
+
+\settowidth\mylength{%
+$
+\begin{array}{cccccccccc}
+  1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9
+\end{array}
+$}
+
+\typeout{This should not give identical widths:}
+
+\typeout{without spaces: \space\space\space\space\space\space\the\mylength}
+
+\settowidth\mylength{%
+$
+\begin{array}{cccccccccc}
+  1~& 2~& 3~& 4~& 5~& 6~& 7~& 8~& 9
+\end{array}
+$}
+
+\typeout{with explicit spaces: \the\mylength}
+
+\END
+
diff --git a/required/tools/testfiles/github-1323.tlg b/required/tools/testfiles/github-1323.tlg
new file mode 100644
index 00000000..7f2aad01
--- /dev/null
+++ b/required/tools/testfiles/github-1323.tlg
@@ -0,0 +1,9 @@
+This is a generated file for the l3build validation system.
+Don't change this file in any respect.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <7> on input line ....
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <5> on input line ....
+This should not give identical widths:
+without spaces:       135.00027pt
+with explicit spaces: 161.6669pt





More information about the latex3-commits mailing list.