LATEX News
Issue 21, May 2014 (LATEX release 2014-05-01)

Scheduled LATEX bug-fix release
This issue of LATEX News marks the second bug-fix
release of LATEX 2ε (standard LATEX) since shifting to a
new build system in 2009. Provided sufficient changes
are made, we expect to make such releases yearly or
every two years, in sync with TEX Live.
Release notes
This release makes no changes to the core code in theLATEX 2ε format but there are a small number of
documentation fixes (not listed here). In addition
several packages in the base and required areas havebeen updated as detailed below.
This has been done in accordance with thephilosophy of minimising problems in both forwards
and backwards compatibility, so most of these changes
should not be noticed by the regular LATEX user.
References in the text below of the form
“graphics/3873” are to bug reports listed at:
http://latex-project.org/cgi-bin/ltxbugs2html

New fltrace package
For years the file ltoutput.dtx contained some hidden
code to trace the detailed behaviour of the float
placement algorithm of LATEX. Prompted by questions
on StackExchange we now extract this code into a new
fltrace package. To see the float algorithm in action (orto understand why it decides to place all your floats atthe very end of the document) use\usepackage{fltrace} \tracefloats
To stop tracing somewhere in the document use\tracefloatsoff and to see the current value ofvarious float parameters use \tracefloatvals. As thepackage is identical to the kernel code with tracing
added, it may or may not work if you load any otherpackage that manipulates that part of the kernel code.
In such a case your best bet is to load fltrace first.

• Misspelled float placement specifiers such as\begin{figure}[tv] instead of tb are silently
ignored by the kernel code. Now we test for such
letters and issue an error message.

inputenc package updates
The inputenc package allows different input encodingsfor LATEX documents to be specified including theimportant utf8 option used to specify the Unicode
UTF-8 encoding. A common mistake in documents has
been to also include this option when using theUnicode-based TEX engines LuaTEX and XETEX
producing strange errors as these engines natively deal
with UTF-8 characters.
If a document stored in an 8bit encoding is processedby pdfTEX, it needs the inputenc package to work
correctly. However, if such a document is processedunchanged by LuaTEX or XETEX, then accented
characters may silently get dropped from the output.
The package has been modified so that if used withLuaTEX or XETEX, then it just issues a warning if utf8or ascii is specified, and stops with an error for anyother encoding requested.
One further improvement has been made to theencoding definition files (.def) used by inputenc: thecatcode of @ is now saved and restored when readingthem instead of always using \makeatother inside thefiles (latex/4192).

• LATEX’s float handling algorithm can get out ofsync if you mix single and double-column floats (asthey are placed independently of each other). Thiswas corrected in fixltx2e a few years ago but the fix
was not perfect as one situation using\enlargethispage generated a low-level TEX error.
This behaviour of the package is now improved.

The tools directory
In the past each of the sub-directories in the “required”
section of the LATEX distribution contained a single.ins file to generate the code files from the source files.
We have now started to provide individual .ins files foreach of those packages that are likely to require updates
outside a major LATEX release.

fixltx2e updates
There are a number of bugs and faulty design decisions
in LATEX 2ε that should have been corrected long ago in
the kernel code. However, such corrections cannot bedone as this would break backwards compatibility inthe following sense. A large number of documents exist
by now that have worked around the bug or have evenmade use of a particular misfeature. Thus changing thekernel code would break too many existing documents.
The corrections for these types of bug have therefore
been collected together in a package that can be loaded
only when needed; its name is fixltx2e. For this release
we made the following changes to this package:

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

multicol updates
Version 1.8 of multicol implements some
improvements/fixes and one extension. In the past thebalancing algorithm enlarged the column height until itfound a solution that satisfied all constraints. If there
were insufficient break points then the final column
height could have been much larger than expected andif that happened near the end of the page it resulted in
the text overflowing into the bottom margin. Thissituation is now detected and in that case a normal
page is cut and balancing is resumed on the next page.
Some overflow is still allowed and controlled via theparameter \maxbalancingoverflow.
The use of \enlargethispage is now properly
supported within the environment. Finally a newcommand \docolaction was added to allow theexecution of code depending on the column in which thecommand is executed. See the documentation fordetails.
Bug fixes: the new version fixes both a color leak that
could happen in certain situations and the problem thatmulticols could mess up the positioning of \marginpars
that followed the environment.

Standard LATEX (LATEX 2ε ) and expl3
The substantial collection of innovative code in expl3
implements a new programming language that has for awhile now been used by some writers of LATEX 2εpackages. This code has recently also been madeavailable for use on top of plain TEX or ConTEXt,
largely to support generic packages that are supposed
to work with different flavours of TEX. These uses in noway affect authors of LATEX documents and such
LATEX 2ε packages will continue to work as advertisedby their authors with standard LATEX.
This code base will also become an important
foundation for the kernel of LATEX3 and so the newprogramming language can be described as ‘The LATEX3
Programming Language’. However, if you see or hearthat a package ‘uses LATEX3’ then it remains very
unlikely (as yet) to mean that the package is part ofsome ‘new version of LATEX’.
News about the development and use of expl3 andabout other developments in the LATEX3 code base isreported regularly in the LATEX3 News series(http://latex-project.org/l3news/), the mostrecent issue of which was published in March 2014.

tabularx updates
The restrictions on embedding \tabularx\endtabularx into the definition of a new environment
have been relaxed slightly. See the package
documentation for details.
showkeys updates
The showkeys package has been updated to fix problems
if used at the start of list items, and to work if bracegroups ({ and }) are used in the optional argument of\cite. (tools/4162, tools/4173)
color updates
The \nopagecolor command suggested by Heiko
Oberdiek, available for some years in the pdftex option,
has been added to the core package as suggested ingraphics/3873. Currently this is supported in the driver
files for dvips and pdftex. Patches to support otherdrivers are welcome.
graphicx updates
The graphicx version of \rotatebox now allows \par(and blank lines) in values, to match the change madeto the graphics version some years ago. Seegraphics/4296.
keyval updates
All parsing used in the keyval package has been changed
to allow \par (and blank lines) in values. (A second
change, to parsing of brace groups in a construct suchas key={{{value}}}, was reverted in v1.15.) Seegraphics/3446.

–2