Add David's first draft for LaTeX News 22
[latex2e.git] / doc / ltnews21.tex
blob28192c1a1a07be94b9bd4105a37593eeb47b259b
1 % \iffalse meta-comment
3 % Copyright 2014
4 % The LaTeX3 Project and any individual authors listed elsewhere
5 % in this file.
7 % This file is part of the LaTeX base system.
8 % -------------------------------------------
10 % It may be distributed and/or modified under the
11 % conditions of the LaTeX Project Public License, either version 1.3c
12 % of this license or (at your option) any later version.
13 % The latest version of this license is in
14 % http://www.latex-project.org/lppl.txt
15 % and version 1.3c or later is part of all distributions of LaTeX
16 % version 2005/12/01 or later.
18 % This file has the LPPL maintenance status "maintained".
20 % The list of all files belonging to the LaTeX base distribution is
21 % given in the file `manifest.txt'. See also `legal.txt' for additional
22 % information.
24 % The list of derived (unpacked) files belonging to the distribution
25 % and covered by LPPL is defined by the unpacking scripts (with
26 % extension .ins) which are part of the distribution.
28 % \fi
29 % Filename: ltnews21.tex
31 % This is issue 21 of LaTeX News.
33 \documentclass{ltnews}
34 \def\ConTeXt{C\kern-.0333emon\-\kern-.0667em\TeX\kern-.0333emt}
35 \usepackage[T1]{fontenc}
37 \usepackage{lmodern,url,hologo}
39 \publicationmonth{May}
40 \publicationyear{2014}
42 \publicationissue{21}
44 \begin{document}
46 \maketitle
48 \tableofcontents
50 \bigskip
52 \section{Scheduled \LaTeX\ bug-fix release}
54 This issue of \LaTeX~News marks the second bug-fix release of
55 \LaTeXe\ (standard \LaTeX) since shifting to a new build system in 2009.
56 Provided sufficient changes are made, we expect to
57 make such releases yearly or every two years, in sync with \TeX\ Live.
61 \subsection{Release notes}
63 This release makes no changes to the core code in the \LaTeXe\ format
64 but there are a small number of documentation fixes (not listed
65 here). In addition several packages in the \textsf{base} and
66 \textsf{required} areas have been updated as detailed below.
69 This has been done in accordance with the philosophy of minimising
70 problems in both forwards and backwards compatibility, so most of
71 these changes should not be noticed by the regular \LaTeX\ user.
73 References in the text below of the form ``graphics/3873'' are to
74 bug reports listed
75 at:\\ \url{http://latex-project.org/cgi-bin/ltxbugs2html}
78 \let\paragraph\subsubsection
80 \paragraph{\textsf{fixltx2e} updates}
84 There are a number of bugs and faulty design decisions in \LaTeXe{}
85 that should have been corrected long ago in the kernel code. However,
86 such corrections cannot be done as this would break backwards
87 compatibility in the following sense. A large number of documents
88 exist by now that have worked around the bug or have even made use of
89 a particular misfeature. Thus changing the kernel code would break
90 too many existing documents.
92 The corrections for these types of bug have therefore been collected together
93 in a package that can be loaded only when needed; its name is \textsf{fixltx2e}.
94 For this release we made the following changes to this package:
95 \begin{itemize}
96 \item
97 Misspelled float placement specifiers such as
98 \verb=\begin{figure}[tv]= instead of \texttt{tb} are silently
99 ignored by the kernel code. Now we test for such letters and issue
100 an error message.
101 \item
102 \LaTeX's float handling algorithm can get out of sync if you mix
103 single and double-column floats (as they are placed independently
104 of each other). This was corrected in \textsf{fixltx2e} a few years ago
105 but the fix was not perfect as one situation using
106 \verb=\enlargethispage= generated a low-level \TeX{} error.
107 This behaviour of the package is now improved.
108 \end{itemize}
113 \paragraph{New \textsf{fltrace} package}
115 For years the file \texttt{ltoutput.dtx} contained some hidden code to
116 trace the detailed behaviour of the float placement algorithm of
117 \LaTeX. Prompted by questions on StackExchange we now extract this
118 code into a new \textsf{fltrace} package. To see the float algorithm
119 in action (or to understand why it decides to place all your floats at
120 the very end of the document) use
121 \begin{verbatim}
122 \usepackage{fltrace} \tracefloats
123 \end{verbatim}
124 To stop tracing somewhere in the document use
125 \verb=\tracefloatsoff= and to see the current value of various float
126 parameters use \verb=\tracefloatvals=. As the package is identical to
127 the kernel code with tracing added, it may or may not work if you load any
128 other package that manipulates that part of the kernel code. In such a
129 case your best bet is to load \textsf{fltrace} first.
131 \paragraph{\textsf{inputenc} package updates}
133 The \textsf{inputenc} package allows different input encodings for
134 \LaTeX\ documents to be specified including the important
135 \texttt{utf8} option used to specify the Unicode UTF-8 encoding. A
136 common mistake in documents has been to also include this option when
137 using the Unicode-based \TeX\ engines \hologo{LuaTeX} and \hologo{XeTeX}
138 producing strange errors as these engines natively deal with UTF-8
139 characters.
141 If a document stored in an 8bit encoding is processed by
142 \hologo{pdfTeX}, it needs the \textsf{inputenc} package to work
143 correctly. However, if such a document is processed unchanged by
144 \hologo{LuaTeX} or \hologo{XeTeX}, then accented characters may
145 silently get dropped from the output.
147 The package has been modified so that if used with \hologo{LuaTeX} or
148 \hologo{XeTeX}, then it just issues a warning if \texttt{utf8} or
149 \texttt{ascii} is specified, and stops with an error for any other
150 encoding requested.
154 One further improvement has been made to the encoding definition files
155 (\texttt{.def}) used by \textsf{inputenc}: the catcode of \texttt{@}
156 is now saved and restored when reading them instead of always using
157 \verb=\makeatother= inside the files (latex/4192).
161 \paragraph{The tools directory}
163 In the past each of the sub-directories in the ``required'' section of
164 the \LaTeX{} distribution contained a single \texttt{.ins} file to
165 generate the code files from the source files. We have now
166 started to provide individual \texttt{.ins} files for each of those
167 packages that are likely to require updates outside a major
168 \LaTeX{} release.
170 \paragraph{\textsf{multicol} updates}
172 Version 1.8 of \textsf{multicol} implements some improvements/fixes
173 and one extension. In the past the balancing algorithm enlarged the
174 column height until it found a solution that satisfied all
175 constraints. If there were insufficient break points then the final
176 column height could have been much larger than expected and if that
177 happened near the end of the page it resulted in the text overflowing
178 into the bottom margin. This situation is now detected and in that
179 case a normal page is cut and balancing is resumed on the next
180 page. Some overflow is still allowed and controlled via the parameter
181 \verb=\maxbalancingoverflow=.
183 The use of \verb=\enlargethispage= is now properly supported within
184 the environment. Finally a new command \verb=\docolaction= was added
185 to allow the execution of code depending on the column in which the
186 command is executed. See the documentation for details.
188 Bug fixes: the new version fixes both a color leak that could happen
189 in certain situations and the problem that \texttt{multicols} could
190 mess up the positioning of \verb=\marginpar=s that followed the
191 environment.
194 \paragraph{\textsf{tabularx} updates}
196 The restrictions on embedding \verb|\tabularx| \verb|\endtabularx|
197 into the definition of a new environment have been relaxed
198 slightly. See the package documentation for details.
200 \paragraph{\textsf{showkeys} updates}
202 The \textsf{showkeys} package has been updated to fix problems if used
203 at the start of list items, and to work if brace groups (\verb|{| and
204 \verb|}|) are used in the optional argument of
205 \verb|\cite|. (tools/4162, tools/4173)
208 \paragraph{\textsf{color} updates}
210 The \verb|\nopagecolor| command suggested by Heiko Oberdiek,
211 available for some years in the \textsf{pdftex} option, has been
212 added to the core package as suggested in graphics/3873. Currently
213 this is supported in the driver files for \textsf{dvips} and
214 \textsf{pdftex}. Patches to support other drivers are welcome.
216 \paragraph{\textsf{graphicx} updates}
218 The \textsf{graphicx} version of \verb|\rotatebox| now allows
219 \verb|\par| (and blank lines) in values, to match the change made
220 to the \textsf{graphics} version some years ago. See graphics/4296.
223 \paragraph{\textsf{keyval} updates}
225 All parsing used in the \textsf{keyval} package has been changed
226 to allow \verb|\par| (and blank lines) in values.
227 (A second change, to parsing of brace groups
228 in a construct such as \texttt{key=\{\{\{value\}\}\}}, was reverted in v1.15.)
229 See graphics/3446.
234 \vfill
236 \section{Standard \LaTeX\ (\LaTeXe) and \textsf{expl3}}
238 The substantial collection of innovative code in \textsf{expl3}
239 implements a new programming language that has for a while now been
240 used by some writers of \LaTeXe\ packages. This code has recently
241 also been made available for use on top of plain \TeX\ or {\ConTeXt},
242 largely to support generic packages that are supposed to work with
243 different flavours of \TeX. These uses in no way affect authors of
244 \LaTeX\ documents and such \LaTeXe\ packages will continue to work as
245 advertised by their authors with standard \LaTeX.
247 This code base will also become an important foundation for the kernel
248 of \LaTeX3 and so the new programming language can be described as
249 `The \LaTeX3 Programming Language'. However, if you see or hear that a
250 package `uses \LaTeX3' then it remains very unlikely (as yet) to mean
251 that the package is part of some `new version of \LaTeX'.
253 News about the development and use of \textsf{expl3} and about other
254 developments in the \LaTeX3 code base is reported regularly in the
255 \LaTeX3~News series (\url{http://latex-project.org/l3news/}), the most
256 recent issue of which was published in March 2014.
259 \end{document}