% \iffalse meta-comment % % Copyright (C) 2019-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: ltnews21.tex % % This is issue 21 of LaTeX News. \documentclass{ltnews} \def\ConTeXt{C\kern-.0333emon\-\kern-.0667em\TeX\kern-.0333emt} \usepackage[T1]{fontenc} \usepackage{lmodern,url,hologo} \publicationmonth{May} \publicationyear{2014} \publicationissue{21} \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 second bug-fix release of \LaTeXe\ (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. \subsection{Release notes} This release makes no changes to the core code in the \LaTeXe\ format but there are a small number of documentation fixes (not listed here). In addition several packages in the \textsf{base} and \textsf{required} areas have been updated as detailed below. This has been done in accordance with the philosophy 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:\\ \url{http://latex-project.org/cgi-bin/ltxbugs2html} \let\paragraph\subsubsection \paragraph{\pkg{fixltx2e} updates} There are a number of bugs and faulty design decisions in \LaTeXe{} that should have been corrected long ago in the kernel code. However, such corrections cannot be done as this would break backwards compatibility in the following sense. A large number of documents exist by now that have worked around the bug or have even made use of a particular misfeature. Thus changing the kernel 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 \pkg{fixltx2e}. For this release we made the following changes to this package: \begin{itemize} \item Misspelled float placement specifiers such as \verb=\begin{figure}[tv]= instead of \texttt{tb} are silently ignored by the kernel code. Now we test for such letters and issue an error message. \item \LaTeX's float handling algorithm can get out of sync if you mix single and double-column floats (as they are placed independently of each other). This was corrected in \pkg{fixltx2e} a few years ago but the fix was not perfect as one situation using \verb=\enlargethispage= generated a low-level \TeX{} error. This behaviour of the package is now improved. \end{itemize} \paragraph{New \pkg{fltrace} package} For years the file \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 \pkg{fltrace} package. To see the float algorithm in action (or to understand why it decides to place all your floats at the very end of the document) use \begin{verbatim} \usepackage{fltrace} \tracefloats \end{verbatim} To stop tracing somewhere in the document use \verb=\tracefloatsoff= and to see the current value of various float parameters use \verb=\tracefloatvals=. As the package is identical to the kernel code with tracing added, it may or may not work if you load any other package that manipulates that part of the kernel code. In such a case your best bet is to load \pkg{fltrace} first. \paragraph{\pkg{inputenc} package updates} The \pkg{inputenc} package allows different input encodings for \LaTeX\ documents to be specified including the important \option{utf8} option used to specify the Unicode UTF-8 encoding. A common mistake in documents has been to also include this option when using the Unicode-based \TeX\ engines \hologo{LuaTeX} and \hologo{XeTeX} producing strange errors as these engines natively deal with UTF-8 characters. If a document stored in an 8bit encoding is processed by \hologo{pdfTeX}, it needs the \pkg{inputenc} package to work correctly. However, if such a document is processed unchanged by \hologo{LuaTeX} or \hologo{XeTeX}, then accented characters may silently get dropped from the output. The package has been modified so that if used with \hologo{LuaTeX} or \hologo{XeTeX}, then it just issues a warning if \option{utf8} or \option{ascii} is specified, and stops with an error for any other encoding requested. One further improvement has been made to the encoding definition files (\texttt{.def}) used by \pkg{inputenc}: the catcode of \texttt{@} is now saved and restored when reading them instead of always using \verb=\makeatother= inside the files (latex/4192). \paragraph{The tools directory} In the past each of the sub-directories in the ``required'' section of the \LaTeX{} distribution contained a single \texttt{.ins} file to generate the code files from the source files. We have now started to provide individual \texttt{.ins} files for each of those packages that are likely to require updates outside a major \LaTeX{} release. \paragraph{\pkg{multicol} updates} Version 1.8 of \pkg{multicol} implements some improvements/fixes and one extension. In the past the balancing algorithm enlarged the column height until it found a solution that satisfied all constraints. If there were insufficient break points then the final column height could have been much larger than expected and if that happened near the end of the page it resulted in the text overflowing into the bottom margin. This situation 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 the parameter \verb=\maxbalancingoverflow=. The use of \verb=\enlargethispage= is now properly supported within the environment. Finally a new command \verb=\docolaction= was added to allow the execution of code depending on the column in which the command is executed. See the documentation for details. Bug fixes: the new version fixes both a color leak that could happen in certain situations and the problem that \pkg{multicols} could mess up the positioning of \verb=\marginpar=s that followed the environment. \paragraph{\pkg{tabularx} updates} The restrictions on embedding \verb|\tabularx| \verb|\endtabularx| into the definition of a new environment have been relaxed slightly. See the package documentation for details. \paragraph{\pkg{showkeys} updates} The \pkg{showkeys} package has been updated to fix problems if used at the start of list items, and to work if brace groups (\verb|{| and \verb|}|) are used in the optional argument of \verb|\cite|. (tools/4162, tools/4173) \paragraph{\pkg{color} updates} The \verb|\nopagecolor| command suggested by Heiko Oberdiek, available for some years in the \option{pdftex} option, has been added to the core package as suggested in graphics/3873. Currently this is supported in the driver files for \textsf{dvips} and \textsf{pdftex}. Patches to support other drivers are welcome. \paragraph{\pkg{graphicx} updates} The \pkg{graphicx} version of \verb|\rotatebox| now allows \verb|\par| (and blank lines) in values, to match the change made to the \pkg{graphics} version some years ago. See graphics/4296. \paragraph{\pkg{keyval} updates} All parsing used in the \pkg{keyval} package has been changed to allow \verb|\par| (and blank lines) in values. (A second change, to parsing of brace groups in a construct such as \texttt{key=\{\{\{value\}\}\}}, was reverted in v1.15.) See graphics/3446. \vfill \section{Standard \LaTeX\ (\LaTeXe) and \textsf{expl3}} The substantial collection of innovative code in \textsf{expl3} implements a new programming language that has for a while now been used by some writers of \LaTeXe\ packages. This code has recently also been made available 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 no way affect authors of \LaTeX\ documents and such \LaTeXe\ packages will continue to work as advertised by their authors with standard \LaTeX. This code base will also become an important foundation for the kernel of \LaTeX3 and so the new programming language can be described as `The \LaTeX3 Programming Language'. However, if you see or hear that a package `uses \LaTeX3' then it remains very unlikely (as yet) to mean that the package is part of some `new version of \LaTeX'. News about the development and use of \textsf{expl3} and about other developments in the \LaTeX3 code base is reported regularly in the \LaTeX3~News series (\url{http://latex-project.org/l3news/}), the most recent issue of which was published in March 2014. \end{document}