% \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} \publicationyear{2026} \publicationissue{43} \begin{document} \maketitle {\hyphenpenalty=10000 \exhyphenpenalty=10000 \spaceskip=3.33pt \hbadness=10000 \tableofcontents} \setlength\rightskip{0pt plus 3em} \section{Introduction} Progress in embedding tagging code as part of a more general overhaul continues. The implementation of block structures, such as theorems, and headings (sections), has been updated. We are well on the way to providing a flexible interface that many document authors will be able to use without needing additional code or packages. This work is also an opportunity to look back at (long-standing) \LaTeX{} code and to see where there are issues. As well as refining some spacing, we have addressed a long-standing technical wrinkle: (mis)using math mode simply to align material vertically. This \enquote{fake math} is a serious tagging issue but also shows up where the user wants, for example, to apply a color change to all mathematics. With this release, the use of math mode is essentially restricted to \enquote{true math}. Working on templates has prompted us to further revise some concepts that have been added to the kernel in recent years, to align the code more closely with the most natural pathways for users. Work of course is not restricted to tagging. There are further improvements to copy--paste of symbols, several bug fixes for corner cases in \pkg{amsmath}, and more language support for \pkg{varioref}. At the lower level, work on the L3 programming layer continues; notably here, we have made adjustments to better support the up\TeX{} engine in creating programmatic strings. \section{News from the Tagged PDF project} \subsection{Setting the language in \cs{DocumentMetadata}} Until now \cs{DocumentMetadata} knew only the \texttt{lang} key to set the main language. The key was only used to set the language in the PDF catalog and the XMP metadata and didn't affect the language of the document as specified with \pkg{babel} or \pkg{polyglossia}. With this release we are now adding two more keys: \texttt{language} and \texttt{other-languages}. The \texttt{language} key takes as argument a language in BCP~47 format, so, e.g., \texttt{de-AT} or \texttt{fr} or \texttt{gsw-u-sd-chzh} (Swiss German as used in the canton of Zurich). The value is stored in the document properties and can be retrieved (expandably) with \verb+\GetDocumentProperty{document/language}+. The value of the \texttt{language} key is also used to set the language in the PDF metadata, so it is also a replacement for the \texttt{lang} key. If a different (shorter or more generic) value is wanted in the PDF metadata, an optional argument can be used: \verb+language=[de]{gsw-u-sd-chzh}+ or the \texttt{lang} key can be used after the \texttt{language} key to overwrite the value: \verb+language=gsw-u-sd-chzh,lang=de+. Just like \texttt{lang}, the \texttt{language} key does \emph{not} automatically change the language setup of a document: it doesn't change the hyphenation patterns or the fixed names and doesn't set class options. It also doesn't force the loading of a language package. The expectation is that in the future, packages that need to know the document language, like \pkg{babel} or \pkg{polyglossia}, will read the value and react accordingly. The \texttt{other-languages} key can be used to declare further languages that are used in addition to the \enquote{main} language in the document. The argument is a comma-separated list of languages in BCP~47 format: \verb+other-languages={fr,en-US,ar}+. The list is stored in the document properties too and can be retrieved with \verb+\GetDocumentProperty{document/other-languages}+. \subsection{Not setting the language in \cs{DocumentMetadata}} It is good practice to always set the main document language in \cs{DocumentMetadata} explicitly using the \texttt{lang} or the new \texttt{language} key: The value is used to set the \texttt{/Lang} key in the PDF and it can then 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 then \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 this caused concerns so now the fallback is applied silently. % \taggingissue{1115} \subsection{Using \cs{DocumentMetadata} more than once} Until now it was possible to use \cs{DocumentMetadata} more than once, the second use only executing key assignments. This was changed; similar to \cs{documentclass}, the \cs{DocumentMetadata} declaration will now cause an error if used more than once. \subsection{General revision of the block environments} We have now reviewed the implementation of the block environments and among other things consolidated the key names which were initially a bit arbitrary. The block templates are extensively documented in \texttt{blocks-doc.pdf} and the full code in \texttt{blocks-code.pdf}. \subsection{Detect if keys are not applicable to block environments} All block environments accept an optional argument in which the user can specify key settings to overwrite the values normally used for the current instance. Trying to apply an unknown key was caught in case of list environments, but with other environments, e.g., \env{quote}, such keys got silently ignored. This has now been corrected. % \taggingissue{1317} \subsection{Improve handling of consecutive display blocks} If display block environments directly follow each other (without an empty line between them), then they conceptually belong to the same semantic paragraph. This means they should be handled in the same way as if they had directly followed some horizontal text (and not add \cs{partopsep}, for example). This was already incorrect in \LaTeXe{}, e.g. \begin{verbatim} Start of paragraph ... \begin{center} text-1 \end{center} \begin{center} text-2 \end{center} more text finishing the paragraph. \end{verbatim} would result in \cs{partopsep} for the second but not the first \env{center} environment resulting in uneven spacing. While this is a contrived example, the problem is real and shows up in documents; for documents using \cs{DocumentMetadata} it has been corrected. % \taggingissue{1328} \subsection{Making the design of the \env{description} environment more flexible} In \LaTeXe{} the layout of the \env{description} environment was always identical on all nesting levels. In the new implementation, based on block templates, this has been made configurable for each nesting level by providing individual instances for all levels (\texttt{description-\meta{level}}). By default, they are all identical. \subsection{Emulating the \pkg{enumitem} package} We are in the process of providing an emulation of the \pkg{enumitem} package using the new block templates. Most keys of \pkg{enumitem} are already supported. We have also added support for \cs{newlist} and \cs{setlist}. Other aspects of the package interfaces will follow over time. This is work in progress and the current state is documented in \file{latex-lab-enumitem.pdf}. \subsection{Supporting \cs{newtheoremstyle}} The AMS classes and the \pkg{amsthm} package offered \cs{newtheoremstyle} to declare new layout styles for theorem-like environments. The new block implementation now provides an emulation of this interface\Dash at the moment still with a few restrictions. Some issues with the first implementation of \cs{newtheoremstyle} have already been corrected; remaining limitations will be addressed in later releases. % \githubissue[s]{2092,2093} \subsection{Reimplementing heading commands with templates} In this release we provide a first implementation of heading commands using the template mechanism. This includes a reimplementation of \cs{@startsection} to support legacy classes and also a (somewhat) limited reimplementation of \cs{secdef}. This will help in making legacy document classes accessible with minimal code adjustments. Over the summer we intend to add emulations for the \pkg{titlesec} package interfaces and perhaps also reimplementations of other packages using this mechanism, so stay tuned. See \texttt{latex-lab-sec-template.pdf} for some extensive documentation. \subsection{Improving the 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{Enhancing context handling in typesetting} In the 2025 November release of \LaTeX{}~\cite[p.121]{43:ltnews} we introduced a prototype implementation for handling typesetting contexts, e.g., to set up different layout for lists in the main galley and in footnotes, etc. After some experimentation we have extended this concept and now support a primary context (as before), a secondary context to sub-structure the primary context (for example, primary context \texttt{float} and secondary context current float type, e.g., \texttt{table}), and a tertiary (font size) context. For documentation see \texttt{latex-lab-context.pdf}. Going forward this is going to be used when we implement caption handling using the template mechanism. \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 desired, 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{Debugging support for templates} We have added debugging support for template use: this can be activated using \cs{DebugTemplatesOn}. Unlike template \emph{creation}, the use of templates and instances is intended to be a fast process: as a result, debugging messages use a low-level approach to ensure they can be skipped quickly in day to day use. \subsection{Optional argument for the \env{picture} environment} The tagging code extends the \env{picture} environment to take an 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} \subsection{Commands to store and restore the last skip} The package \pkg{hyperref} surrounds anchors for links with two commands that save and restore the last skip to prevent these anchors from disturbing spacing commands like \cs{addvspace}. We now provide these commands under the name \cs{SaveLastSkip} and \cs{RestoreLastSkip} directly and use them also in the kernel definition of \cs{MakeLinkTarget}. % \githubissue{2070} \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 empty. When an argument is entirely absent, it is given a special \enquote{no value} marker. In previous releases, this was a deliberately-awkward set of character tokens, which are therefore hard to input accidentally. While 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 keyval conversion for empty arguments} A second revision to \cs{NewDocumentCommand}, etc., in this release applies to conversion of classical arguments to key--value form, for example \begin{verbatim} \DeclareDocumentCommand \caption {s ={short-title} +O{#3} +m} \end{verbatim} This will convert a classical optional argument of \verb|\caption| to a keyval argument called \texttt{short-title}. In this release, if the optional argument is given but blank, the result will be an entirely empty argument rather than \verb*|short-title = |. This reflects the fact that in moving to a keyval model, the meaning of an empty argument is best thought of as an empty keyval list. For cases where a classical \verb|[]| means something is explicitly empty, adding an empty brace group (\verb|[{}]|) will work with both the new code and with older formats. \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. \subsection{Removal of \enquote{fake math} from the kernel} Internally, some text constructs in \LaTeX{} have used math mode, as this allowed use of the built-in positioning of material with limited macro effort. Historically, this was important for obtaining useful performance, but today it is more problematic. Tagging requires that such \enquote{fake math} is filtered out, and this becomes even more problematic when working with right-to-left languages. (The interaction between text and math directions in Lua\TeX{} is complex.) In this release, we have removed the internal use of \enquote{fake math} from \begin{itemize} \item \cs{textsuperscript} and \cs{textsubscript} \item \cs{parbox} and \env{minipage} \item Around \env{tabular} structures \end{itemize} To avoid as far as possible changes to existing output, the standard settings continue to use math font dimension values for placing super and subscripts.\footnote{The calculation used for placement of math mode sub- and superscripts is described in Appendix~G of \emph{The \TeX{}book}, and relies on multiple math font dimensions.} For new documents, we suggest setting the offset to a predictable offset based on text font dimensions (for example a fixed percentage of the x-height). Developers using systems which check \cs{showoutput} results, or similar, will see changes both in removal of \verb|\mathon|/\verb|\mathoff| pairs and in some box structures. \section{Formalization of L3PL (\pkg{expl3}) release requirement} In this release, we have formalized which release of the L3 programming layer (\pkg{expl3}) is required by the kernel: at least the 2023-11-27 release. This has allowed us to tidy up some places where the kernel uses L3PL, in particular where we have made improvements in the L3PL and want these to be used by the kernel. If the version of the L3PL available is too old, an error will be issued and format building will be abandoned. \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, \texttt{cmdguide.pdf}. The aim over time will be to include all of the new features here. We also hope eventually to collect the existing (relevant) documentation from all of \LaTeXe{} , so that this document can then serve as a programmer's reference manual for the kernel, similar to \texttt{interface3} for the \LaTeX{} programming layer. This is work in progress so we expect the document to grow and its structure (based on feedback and experience with its use) might change 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{Glyphs, characters \& encodings} \subsection{Improved copy\texorpdfstring{\,}{}\&\texorpdfstring{\,}{}paste for \pdfTeX{} and \LuaTeX{} documents} In 2021, additional information was added to the PDF file, when compiling with \pdfTeX{}, from the file \file{glyphtounicode.tex} in order to improve copying from, and searching in, text for, e.g., common ligatures. We now extend this support and load additionally a file \file{glyphtounicode-cmex.tex} which improves copying of mathematical symbols. Starting with version 1.24, \LuaTeX{} supports an extended syntax of \cs{pdfglyphtounicode} that makes it possible to improve copy\,\&\,paste of symbol fonts. Therefore, we load and activate the files also with this engine if PDF mode is active. Other engines do not support the extended \cs{pdfglyphtounicode} and \cs{pdfgentounicode}. Here we define the commands as no-op commands to allow packages for symbol fonts to use the commands without testing the engines first. % \githubissue{2007} \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 the 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{Set the right margin of \env{multline} to zero with \texttt{fleqn}} The \env{multline} environment of \pkg{amsmath} uses wider margins when the \texttt{fleqn} option is in force, although only the left margin is intended to change. As a result, the \env{multline} environment is typeset in a box wider than intended. Visually, this is usually unnoticeable, but it can, for example, make the page box wider than \texttt{textwidth}. If an element spans the full page box (such as \texttt{hline}), it may then appear wider than the surrounding paragraphs. This has now been corrected. % \githubissue{2025} \subsection{Correct vertical spacing above \env{multline}} In multi-line display math environments such as \env{align} and \env{gather}, the distance between lines is slightly increased (by an amount controlled by \cs{jot}) to ensure that tall mathematical symbols do not clash. It was then discovered that the \env{multline} environment failed to apply this compensation, resulting in \env{multline} displays appearing slightly further away from the preceding paragraph than other multi-line equations. This has now been corrected. As a result, more material might fit on a page, potentially changing the pagination. If that happens, an explicit \cs{pagebreak} will restore the original pagination in old documents. % \githubissue{793} \subsection{Improved column tracking and spacing in alignment environments} A few subtle inconsistencies regarding alignment environments were recently identified and fixed: \begin{itemize} \item The \env{gathered} environment did not correctly isolate its column count when nested inside other alignment structures, which could throw off the formatting of the parent environment. \item If a user omitted the final \verb=\\= line break at the very end of an \env{aligned} or \env{alignedat} environment, the final row would bypass the maximum-column checks and occasionally leave an unwanted trailing space. \item The \env{aligned} environment did not always reset its internal counter between rows, which could intermittently cause small spacing glitches at the right edge of the alignment. \end{itemize} Now, spacing is consistently applied and excessive columns are accurately detected, even on the final row or when deeply nested. % \githubissue{1609} %\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} \subsection{\pkg{varioref}: Chinese locale strings} A \texttt{chinese} option has been added to \pkg{varioref}, providing Simplified Chinese locale strings for all reference text macros and format macros. The parentheses in the format macros use full-width characters (U+FF08/U+FF09), consistent with the existing Japanese option. \section{Changes at the L3 programming layer} The L3 programming layer provides functions to convert between different encodings, which is needed for the creation of PDF metadata, for example. We have recently improved support here for the up\TeX{} engine, which uses a mixed input encoding at the engine level. This should allow more Japanese documents to work directly with standard \LaTeX{} tools for PDF metadata creation, etc. %\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}