% \iffalse meta-comment % % Copyright (C) 1993-2024 % 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 % http://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: ltnews20.tex % % This is issue 20 of LaTeX News. \documentclass{ltnews} \usepackage[T1]{fontenc} \usepackage{lmodern,url} \publicationday{27} \publicationmonth{June} \publicationyear{2011} \publicationissue{20} \providecommand\pkg[1]{\texttt{#1}} \providecommand\cls[1]{\texttt{#1}} \providecommand\option[1]{\texttt{#1}} \providecommand\env[1]{\texttt{#1}} \providecommand\file[1]{\texttt{#1}} \begin{document} \maketitle \section{Scheduled \LaTeX\ bug-fix release} This issue of \LaTeX~News marks the first bug-fix release of \LaTeXe\ since shifting to a new build system in 2009. Provided sufficient changes are made each year, we expect to repeat such releases once per year to stay in sync with \TeX\ Live. Due to the excitement of \TeX's $2^5$-th birthday last year, we missed our window of opportunity to do so for 2010. This situation has been rectified this year! \section{Continued development} The \LaTeXe\ program is no longer being actively developed, as any non-negligible changes now could have dramatic backwards compatibility issues with old documents. Similarly, new features cannot be added to the kernel since any new documents written now would then be incompatible with legacy versions of \LaTeX. The situation on the package level is quite different though. While most of us have stopped developing packages for \LaTeXe{} there are many contributing developers that continue to enrich \LaTeXe{} by providing or extending add-on packages with new or better functionality. However, the \LaTeX\ team certainly recognises that there are improvements to be made to the kernel code; over the last few years we have been working on building, expanding, and solidifying the \textsf{expl3} programming layer for future \LaTeX\ development. We are using \textsf{expl3} to build new interfaces for package development and tools for document design. Progress here is continuing. \section{Release notes} In addition to a few small documentation fixes, the following changes have been made to the \LaTeXe\ code; in accordance with the philosophy of minimising forwards and backwards compatibility problems, most of these will not be noticeable to the regular \LaTeX\ user. \paragraph{Font subsets covered by Latin Modern and \TeX\ Gyre} The Latin Modern and \TeX\ Gyre fonts are a modern suite of families based on the well-known Computer Modern and `PostScript 16' families with many additional characters for high-quality multilingual typesetting.% \footnote{% See their respective TUGboat articles for more information:\\ \url{http://www.tug.org/TUGboat/tb24-1/jackowski.pdf}\\ \url{http://www.tug.org/TUGboat/tb27-2/tb87hagen-gyre.pdf}% } Information about their symbol coverage in the \verb|TS1| encoding is now included in \pkg{textcomp}'s default font definitions. \paragraph{Redefinition of \cs{enddocument}} Inside the definition of \verb=\end{document}= the \texttt{.aux} file is read back in to resolve cross-references and build the table of contents etc. From 2.09 days this was done using \verb=\input= without any surrounding braces which could lead to some issues in boundary cases, especially if \verb=\input= was redefined by some package. It was therefore changed to use \LaTeXe{}'s internal name for this function. As a result, packages that modify \verb=\enddocument= other than through the officially provided hooks may need to get updated. \paragraph{Small improvement with split footnotes in \pkg{ftnright}} If in the first column there is more than a full column worth of footnote material the material will be split resulting in footnotes out of order. This issue is now at least detected and generates an error but the algorithm used by the package is unable to gracefully handle it in an automated fashion (some alternatives for resolving the problem if it happens are given in the package documentation). \paragraph{Improvement in \file{xspace} and font-switching} The \file{xspace} package provides the command \verb|\xspace| which attempts to be clever about inserting spaces automatically after user-defined control sequences. An important bug fix has been made to this command to correct its behaviour when used in conjunction with font-switching commands such as \verb|\emph| and \verb|\textbf|. Previously, writing \begin{verbatim} \newcommand\foo{foo\xspace} ... \emph{\foo} bar baz ... \emph{\foo}, bar baz \end{verbatim} would result in an extraneous space being inserted after `foo' in both cases; this has now been corrected. \paragraph{RTL in \file{multicol}} The 1.7 release of \file{multicol} adds support for languages that are typeset right-to-left. For those languages the order of the columns on the page also needs to be reversed---something that wasn't possible in earlier releases. The new feature is supported through the commands \verb|\RLmulticolcolumns| (switching to right-to-left typesetting) and \verb|\LRmulticolcolumns| (switching to left-to-right typesetting) the latter being the default. \paragraph{Improve French \file{babel} interaction with \file{varioref}} Extracting and saving the page number turned out to be a source of subtle bugs. Initially it was done through an \verb"\edef" with a bunch of \verb"\expandafter" commands inside. This posed a problem if the page number itself contained code which needed protection (e.g., pr/4080) so this got changed in the last release to use \verb"\protected@edef". However, that in turn failed with Babel (bug report/4093) if the label contained active characters, e.g., a ``:'' in French. So now we use (after one failed attempt pr/4159) even more \verb"\expandafter" commands and \verb"\romannumeral" trickery to avoid any expansion other than what is absolutely required---making the code in that space absolutely unreadable. \begin{verbatim} \expandafter\def\expandafter#1\expandafter{% \romannumeral \expandafter\expandafter\expandafter \z@ \expandafter \@cdr \romannumeral \expandafter\expandafter\expandafter \z@ \csname r@#2\endcsname\@nil}% \end{verbatim} Code like this nicely demonstrates the limitations in the programming layer of \LaTeXe{} and the advantages that \textsf{expl3} will offer on this level. \end{document}