LATEX News
Issue 20, June 2011 (LATEX release 2011-06-27)

Scheduled LATEX bug-fix release
This issue of LATEX News marks the first bug-fix releaseof LATEX 2ε 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 insync with TEX Live. Due to the excitement of TEX’s
25 -th birthday last year, we missed our window ofopportunity to do so for 2010. This situation has been
rectified this year!

Continued development
The LATEX 2ε program is no longer being actively
developed, as any non-negligible changes now could
have dramatic backwards compatibility issues with olddocuments. 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 LATEX 2ε there are many contributing
developers that continue to enrich LATEX 2ε byproviding 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 expl3
programming layer for future LATEX development. We
are using expl3 to build new interfaces for package
development and tools for document design. Progress
here is continuing.

Release notes
In addition to a few small documentation fixes, thefollowing changes have been made to the LATEX 2ε code;in accordance with the philosophy of minimising
forwards and backwards compatibility problems, mostof these will not be noticeable to the regular LATEX user.
Font subsets covered by Latin Modern and TEX
Gyre The Latin Modern and TEX Gyre fonts are amodern suite of families based on the well-known
Computer Modern and ‘PostScript 16’ families withmany additional characters for high-quality multilingualtypesetting.1
1 See their respective TUGboat articles for more information:
http://www.tug.org/TUGboat/tb24-1/jackowski.pdf

Information about their symbol coverage in the TS1
encoding is now included in textcomp’s default fontdefinitions.
Redefinition of \enddocument Inside the definitionof \end{document} the .aux file is read back in toresolve cross-references and build the table of contents
etc. From 2.09 days this was done using \input without
any surrounding braces which could lead to some issues
in boundary cases, especially if \input was redefined bysome package. It was therefore changed to use
LATEX 2ε ’s internal name for this function. As a result,packages that modify \enddocument other than throughthe officially provided hooks may need to get updated.
Small improvement with split footnotes inftnright If in the first column there is more than a fullcolumn 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 thealgorithm used by the package is unable to gracefully
handle it in an automated fashion (some alternatives forresolving the problem if it happens are given in the
package documentation).
Improvement in xspace and font-switching The
xspace package provides the command \xspace whichattempts to be clever about inserting spaces
automatically after user-defined control sequences. An
important bug fix has been made to this command tocorrect its behaviour when used in conjunction with
font-switching commands such as \emph and \textbf.
Previously, writing\newcommand\foo{foo\xspace}... \emph{\foo} bar baz... \emph{\foo}, bar baz
would result in an extraneous space being inserted after‘foo’ in both cases; this has now been corrected.
RTL in multicol The 1.7 release of multicol adds
support for languages that are typeset right-to-left. For
those languages the order of the columns on the pagealso needs to be reversed—something that wasn’t
possible in earlier releases.
http://www.tug.org/TUGboat/tb27-2/tb87hagen-gyre.pdf

LATEX News, and the LATEX software, are brought to you by the LATEX Project Team; Copyright 2011, all rights reserved.

The new feature is supported through the commands\RLmulticolcolumns (switching to right-to-lefttypesetting) and \LRmulticolcolumns (switching toleft-to-right typesetting) the latter being the default.
Improve French babel interaction with varioref
Extracting and saving the page number turned out tobe a source of subtle bugs. Initially it was done throughan \edef with a bunch of \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\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 \expandafter
commands and \romannumeral trickery to avoid anyexpansion other than what is absolutelyrequired—making the code in that space absolutely
unreadable.
\expandafter\def\expandafter#1\expandafter{%\romannumeral\expandafter\expandafter\expandafter\z@\expandafter \@cdr\romannumeral\expandafter\expandafter\expandafter\z@\csname r@#2\endcsname\@nil}%
Code like this nicely demonstrates the limitations in the
programming layer of LATEX 2ε and the advantages that
expl3 will offer on this level.

–2