% \iffalse meta-comment
%
% Copyright 2026
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
% This file is part of the LaTeX base system.
% -——————————————
%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
%    https://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
% version 2008 or later.
%
% This file has the LPPL maintenance status "maintained".
%
% The list of all files belonging to the LaTeX base distribution is
% given in the file `manifest.txt'. See also `legal.txt' for additional
% information.
%
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
%
% \fi
% Filename: ltnews43.tex
%
% This is issue 43 of LaTeX News.

\NeedsTeXFormat{LaTeX2e}[2020-02-02]

\documentclass{ltnews}

%% Maybe needed only for Chris' inadequate system:
\providecommand\Dash {\unskip \textemdash}

%% NOTE: Chris' preferred hyphens!
%% \showhyphens{parameters}
%% \hyphenation{because}

\usepackage[T1]{fontenc}

\usepackage{lmodern,url,hologo}

\usepackage{csquotes}
\usepackage{multicol}
\usepackage{color}

\usepackage{amsmath}

\providecommand\hook[1]{\texttt{#1}}

\providecommand\meta[1]{$\langle$\textrm{\itshape#1}$\rangle$}
\providecommand\option[1]{\texttt{#1}}
\providecommand\env[1]{\texttt{#1}}
\providecommand\Arg[1]{\texttt\{\meta{#1}\texttt\}}


\providecommand\eTeX{\hologo{eTeX}}
\providecommand\XeTeX{\hologo{XeTeX}}
\providecommand\LuaTeX{\hologo{LuaTeX}}
\providecommand\pdfTeX{\hologo{pdfTeX}}
\providecommand\MiKTeX{\hologo{MiKTeX}}
\providecommand\CTAN{\textsc{ctan}}
\providecommand\TL{\TeX\,Live}

\providecommand\githubissue[2][]{\ifhmode\unskip\fi
     \quad\penalty500\strut\nobreak\hfill
     \mbox{\small\slshape(%
       \href{https://github.com/latex3/latex2e/issues/\getfirstgithubissue#2 \relax}%
          	    {github issue#1 #2}%
           )}%
     \par\smallskip}

% simple solution right now (just link to the first issue if there are more)
\def\getfirstgithubissue#1 #2\relax{#1}

% issues from the tagging-project:

\providecommand\taggingissue[2][]{\ifhmode\unskip\fi
     \quad\penalty500\strut\nobreak\hfill
     \mbox{\small\slshape(%
       \href{https://github.com/latex3/tagging-project/issues/\getfirstgithubissue#2 \relax}%
          	    {tagging-project issue#1 #2}%
           )}%
     \par\smallskip}

\providecommand\sxissue[1]{\ifhmode\unskip
     \else
       % githubissue preceding
       \vskip-\smallskipamount
       \vskip-\parskip
     \fi
     \quad\penalty500\strut\nobreak\hfill
     \mbox{\small\slshape(\url{https://tex.stackexchange.com/#1})}\par}

\providecommand\gnatsissue[2]{\ifhmode\unskip\fi
     \quad\penalty500\strut\nobreak\hfill
     \mbox{\small\slshape(%
       \href{https://www.latex-project.org/cgi-bin/ltxbugs2html?pr=#1\%2F\getfirstgithubissue#2 \relax}%
          	    {gnats issue #1/#2}%
           )}%
     \par}

\let\cls\pkg
\providecommand\env[1]{\texttt{#1}}
\providecommand\acro[1]{\textsc{#1}}

\vbadness=1400  % accept slightly empty columns


\let\finalpagebreak\pagebreak % for TUB (if they use it)
\let\finalvspace\vspace       % for document layout fixes

\makeatletter
% maybe not the greatest design but normally we wouldn't have subsubsections
\renewcommand{\subsubsection}{%
   \@startsection {subsubsection}{2}{0pt}{1.5ex \@plus 1ex \@minus .2ex}%
                  {-1em}{\@subheadingfont\colonize}%
}
\providecommand\colonize[1]{#1:}
\makeatother


% Undo ltnews's \verbatim@font with active < and >
\makeatletter
\def\verbatim@font{\normalsize\ttfamily}
\makeatother


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\providecommand\tubcommand[1]{}
\tubcommand{\input{tubltmac}}

\publicationmonth{June}
\publicationyear{2026  --- DRAFT version for upcoming release}

\publicationissue{43}

\begin{document}

\maketitle
{\hyphenpenalty=10000 \exhyphenpenalty=10000 \spaceskip=3.33pt \hbadness=10000
\tableofcontents}



\setlength\rightskip{0pt plus 3em}

\section{Introduction}

% To write

\section{News from the Tagged PDF project}

\subsection{Improving tagging of floats}

The tagging support code for floats has been overhauled.  It now
allows tagging support to be added to new float types like listings or
tcolorboxes.  By default float structures are deferred to the end of
the document but it is now possible to switch this on and off and to
output the floats in other places in the structure.  More details can
be found in \texttt{latex-lab-float.pdf}.

\subsection{Setting the language in \cs{DocumentMetadata}}

It is good practise to always set the main document language in
\cs{DocumentMetadata} explicitly using the \texttt{lang} key: It is
used to set the \texttt{/Lang} key in the PDF and its value can also
be used by packages and classes to adapt locale settings.
 
However, if there is no such setting then the code will use the main
language as set by \pkg{babel} or \pkg{polyglossia}. If they are not
used \texttt{lang=en} is applied as this has always been \LaTeX's
default.  When we introduced the \texttt{lang} key we added a warning
to the log in such cases but feedback we received indicated that it
caused concerns so now the fallback is applied silently.
%
\taggingissue{1115}


\subsection{Revision of the block environments}

\emph{to document: see \texttt{blocks-code.pdf} for extensive documentation}


\subsection{Reimplementation of heading commands with templates}

\emph{to document: see \texttt{latex-lab-sec-template.pdf} for extensive documentation}


\section{New or improved commands}

\subsection{Recovering instance values}

In some cases, editing template instances requires knowing the
existing instance values. To support this, we have added the
expandable command
\cs{InstanceValue}\texttt{\meta{type}\meta{instance}\meta{key}}, which
returns the value if available; otherwise it returns empty if the key or
instance does not exist.

\subsection{Declaring alias counters}
Theorem-like environments like lemmas and definitions often use 
the same counter for the numbering. This makes it difficult to create 
suitable prefixes when referencing. We have therefore added a new 
command \cs{newcounteralias} that allows to create an alias of a counter 
and so to use a counter under another name. The code is based on a 
similar command from the package \pkg{aliascnt}. The command \cs{newtheorem} 
in \LaTeX{} and also in \pkg{amsthm} has been changed to use 
\cs{newcounteralias}. This allows packages like \pkg{hyperref}, 
\pkg{zref-clever} and \pkg{cleveref} to correctly identify the environment. 
The following will now reference as wanted the lemma as \enquote{lemma 1} 
and not as \enquote{theorem 1}:
\begin{verbatim}
\documentclass{article}
\newtheorem{theorem}{Theorem}
\newtheorem{lemma}[theorem]{Lemma}
\usepackage{zref-clever}
\begin{document}
\begin{lemma} \label{lem} ... \end{lemma}
In \zcref{lem} we claim \ldots
\end{document}
\end{verbatim}

\subsection{Optional argument for \env{picture}}

The tagging code extends the \env{picture} environment to
take a optional argument which can be used to add, e.g., an alternative description. This optional argument has now been added to the kernel version of the environment
to make it easier for authors to write code compatible with tagged and untagged documents. If \cs{DocumentMetadata} is not used the optional argument is silently ignored.
%
\taggingissue{1172}
\section{Code improvements}

\subsection{Revision of handling of \enquote{no value} concept}

The commands \cs{NewDocumentCommand}, etc., introduce the idea of
differentiating an absent optional argument from one which is simply
empty.  When an argument is entirely empty, it is given the special
\enquote{no value} marker. In previous releases, this was a
deliberately-awkward set of character tokens, which are therefore hard
to input accidentally.

Whilst this allowed us to easily detect \enquote{no value}, it turns
out there are places we want to be able to add such a value. This
comes up particularly in creating templates for some parts of the
document structure as part of the wider tagging project.

We have therefore changed the approach to use a marker token,
\cs{NoValue}, and updated the \cs{IfNoValue(TF)} test and
relatives. This means you now \emph{can} type in an optional argument
that is interpreted as \enquote{not present}, but this is not likely
to happen by accident.

\subsection{Revision of \cs{protected} status of functions in templates}

As we use templates more widely, minor adjustments to the workflow are
necessary. As part of this, we have adjusted templates such that keys
declared as functions are stored with \cs{protected} status.

\section{New or improved documentation}

Adding new features to \LaTeX{} means writing new documentation. To date, each
new source has had separate documentation, for example
\texttt{lthooks-doc.pdf}. This is a convenient way for development to take
place, particularly prior to code being stable. However, it makes it
challenging to find information.

We have therefore started to collect all of this information into a single
document, currently called \texttt{latex-cmds.pdf}. The aim over time will
be to include all of new features here. We also hope to collect up existing
documentation in the longer-standing sources (going back to before \LaTeXe{}!).

This is work in progress so we expect the document to grow and its structure
(based on feedback and experience with it use) might change over over time. In
particular, the current content is made up of files that were written to be
read independently: as such, there is some duplication, suboptimal ordering and
formatting variation. That will all be addressed over time, as we aim for a
single coherent document.

\section{Bug fixes}

\subsection{Improve transparency of \cs{label}, \cs{index}, and friends}

Commands such as \cs{label} or \cs{index} are supposed to be
transparent with respect to surrounding spaces, i.e., spaces on both
sides should not lead to several spaces in typeset text. This always
worked reasonably well if there is only a single command. However, if
there are several of them in a row one could end up with a spurious
extra space. This has finally been corrected.
%
\githubissue{1910}

\subsection{Global mappings for math script font families}

The command \cs{DeclareMathScriptfontMapping} added in the previous
release declares related font families used for scriptsize and
scriptscriptsize mathematics. Previously this mapping was set locally,
therefore it could not be used in \texttt{.fd} files. This has been
corrected to apply globally like other font declarations.
%
\githubissue{1955}



\section{Changes to packages in the \pkg{amsmath} category}

\subsection{Treat \cs{dots} before \cs{xrightarrow} correctly}

If one writes \verb=$ a \to \dots \to b $= the result is $ a \to \dots
\to b $, i.e., \cs{dots} are treated as binary dots. If you replace
\cs{to} with \cs{xrightarrow} then the dots suddenly become comma dots
and you have to use \cs{bdots} to get the binary dots back. This has
now been corrected for both \cs{xrightarrow} and \cs{xleftarrow}.
%
\githubissue{263}


\subsection{Don't lose a qed symbol with \texttt{fleqn}}

The \env{proof} environment of \pkg{amsthm} automatically puts a QED
symbol at the end of a proof.  Sometimes this is not the best place
and in that situation that author can direct \LaTeX{} to place the
symbol earlier by using \cs{qedhere} in an appropriate place. However,
when the \texttt{fleqn} option was in force this didn't always work
and the symbol got dropped in some cases. This has now been corrected.
%
\githubissue{783}



%\subsection{A fix}

%% Some text
%
%%\githubissue{XXXX}


%\section{Changes to packages in the \pkg{graphics} category}

\section{Changes to packages in the \pkg{tools} category}

\subsection{Adjustment to the glue used by \pkg{longtable}}

Recent \LaTeX{} releases produce ignored warnings about infinite glue shrinkage.
The glue in \pkg{longtable} has been adjusted to only use a finite shrink component.
%
\githubissue{1907}


\subsection{Hooks for \pkg{array} and \pkg{longtable}}

We have added a number of hooks in the \pkg{array} package so that
extension packages can add code at defined places without the need to
overwrite internals of the \pkg{array} implementation. This will
improve the maintenance of such packages because they will then not
have to update when there are changes to \pkg{array} itself. The first
package to make use of this is \pkg{fcolumn}.

The same hooks are also available in \pkg{longtable} but only if
\pkg{array} is also loaded; otherwise they are suppressed.  In the
future, i.e., if \cs{DocumentMetadata} is used at the start of new
documents \pkg{array} is always loaded.


\subsection{\pkg{varioref}: Several new variants for German}

A number of options were added for German language variants, so that
one can now select \texttt{austrian}, \texttt{naustrian},
\texttt{german}, \texttt{ngerman}, \texttt{swissgerman}, or
\texttt{nswissgerman}. By default, they all lead to the same strings.
%
\githubissue{1952}

\subsection{\pkg{varioref}: Updated default strings for Hungarian}

The text strings for Hungarian have been corrected. At the same time a
second option was added to select them, i.e., it is now possible to
use either \texttt{magyar} or \texttt{hungarian} with identical
results.
%
\githubissue{1977}


%\section{Changes to files in the \pkg{cyrillic} category}

\begin{thebibliography}{9}\frenchspacing

%\fontsize{9.3}{11.3}\selectfont

\bibitem{43: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{43:ltnews} \LaTeX{} Project Team.
  \emph{\LaTeXe{} news 1--42}. November, 2025.
  \url{https://latex-project.org/news/latex2e-news/ltnews.pdf}

\end{thebibliography}

\end{document}

