tl2017 luatex discretionaries
[latex2e.git] / latex2e-20170101 / doc / ltnews21.tex
blobb7c87d6f3240f032d9231942c5ce8196e509a7c0
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 \section{Scheduled \LaTeX\ bug-fix release}
50 This issue of \LaTeX~News marks the second bug-fix release of
51 \LaTeXe\ (standard \LaTeX) since shifting to a new build system in 2009.
52 Provided sufficient changes are made, we expect to
53 make such releases yearly or every two years, in sync with \TeX\ Live.
57 \subsection{Release notes}
59 This release makes no changes to the core code in the \LaTeXe\ format
60 but there are a small number of documentation fixes (not listed
61 here). In addition several packages in the \textsf{base} and
62 \textsf{required} areas have been updated as detailed below.
65 This has been done in accordance with the philosophy of minimising
66 problems in both forwards and backwards compatibility, so most of
67 these changes should not be noticed by the regular \LaTeX\ user.
69 References in the text below of the form ``graphics/3873'' are to
70 bug reports listed
71 at:\\ \url{http://latex-project.org/cgi-bin/ltxbugs2html}
74 \let\paragraph\subsubsection
76 \paragraph{\textsf{fixltx2e} updates}
80 There are a number of bugs and faulty design decisions in \LaTeXe{}
81 that should have been corrected long ago in the kernel code. However,
82 such corrections cannot be done as this would break backwards
83 compatibility in the following sense. A large number of documents
84 exist by now that have worked around the bug or have even made use of
85 a particular misfeature. Thus changing the kernel code would break
86 too many existing documents.
88 The corrections for these types of bug have therefore been collected together
89 in a package that can be loaded only when needed; its name is \textsf{fixltx2e}.
90 For this release we made the following changes to this package:
91 \begin{itemize}
92 \item
93 Misspelled float placement specifiers such as
94 \verb=\begin{figure}[tv]= instead of \texttt{tb} are silently
95 ignored by the kernel code. Now we test for such letters and issue
96 an error message.
97 \item
98 \LaTeX's float handling algorithm can get out of sync if you mix
99 single and double-column floats (as they are placed independently
100 of each other). This was corrected in \textsf{fixltx2e} a few years ago
101 but the fix was not perfect as one situation using
102 \verb=\enlargethispage= generated a low-level \TeX{} error.
103 This behaviour of the package is now improved.
104 \end{itemize}
109 \paragraph{New \textsf{fltrace} package}
111 For years the file \texttt{ltoutput.dtx} contained some hidden code to
112 trace the detailed behaviour of the float placement algorithm of
113 \LaTeX. Prompted by questions on StackExchange we now extract this
114 code into a new \textsf{fltrace} package. To see the float algorithm
115 in action (or to understand why it decides to place all your floats at
116 the very end of the document) use
117 \begin{verbatim}
118 \usepackage{fltrace} \tracefloats
119 \end{verbatim}
120 To stop tracing somewhere in the document use
121 \verb=\tracefloatsoff= and to see the current value of various float
122 parameters use \verb=\tracefloatvals=. As the package is identical to
123 the kernel code with tracing added, it may or may not work if you load any
124 other package that manipulates that part of the kernel code. In such a
125 case your best bet is to load \textsf{fltrace} first.
127 \paragraph{\textsf{inputenc} package updates}
129 The \textsf{inputenc} package allows different input encodings for
130 \LaTeX\ documents to be specified including the important
131 \texttt{utf8} option used to specify the Unicode UTF-8 encoding. A
132 common mistake in documents has been to also include this option when
133 using the Unicode-based \TeX\ engines \hologo{LuaTeX} and \hologo{XeTeX}
134 producing strange errors as these engines natively deal with UTF-8
135 characters.
137 If a document stored in an 8bit encoding is processed by
138 \hologo{pdfTeX}, it needs the \textsf{inputenc} package to work
139 correctly. However, if such a document is processed unchanged by
140 \hologo{LuaTeX} or \hologo{XeTeX}, then accented characters may
141 silently get dropped from the output.
143 The package has been modified so that if used with \hologo{LuaTeX} or
144 \hologo{XeTeX}, then it just issues a warning if \texttt{utf8} or
145 \texttt{ascii} is specified, and stops with an error for any other
146 encoding requested.
150 One further improvement has been made to the encoding definition files
151 (\texttt{.def}) used by \textsf{inputenc}: the catcode of \texttt{@}
152 is now saved and restored when reading them instead of always using
153 \verb=\makeatother= inside the files (latex/4192).
157 \paragraph{The tools directory}
159 In the past each of the sub-directories in the ``required'' section of
160 the \LaTeX{} distribution contained a single \texttt{.ins} file to
161 generate the code files from the source files. We have now
162 started to provide individual \texttt{.ins} files for each of those
163 packages that are likely to require updates outside a major
164 \LaTeX{} release.
166 \paragraph{\textsf{multicol} updates}
168 Version 1.8 of \textsf{multicol} implements some improvements/fixes
169 and one extension. In the past the balancing algorithm enlarged the
170 column height until it found a solution that satisfied all
171 constraints. If there were insufficient break points then the final
172 column height could have been much larger than expected and if that
173 happened near the end of the page it resulted in the text overflowing
174 into the bottom margin. This situation is now detected and in that
175 case a normal page is cut and balancing is resumed on the next
176 page. Some overflow is still allowed and controlled via the parameter
177 \verb=\maxbalancingoverflow=.
179 The use of \verb=\enlargethispage= is now properly supported within
180 the environment. Finally a new command \verb=\docolaction= was added
181 to allow the execution of code depending on the column in which the
182 command is executed. See the documentation for details.
184 Bug fixes: the new version fixes both a color leak that could happen
185 in certain situations and the problem that \texttt{multicols} could
186 mess up the positioning of \verb=\marginpar=s that followed the
187 environment.
190 \paragraph{\textsf{tabularx} updates}
192 The restrictions on embedding \verb|\tabularx| \verb|\endtabularx|
193 into the definition of a new environment have been relaxed
194 slightly. See the package documentation for details.
196 \paragraph{\textsf{showkeys} updates}
198 The \textsf{showkeys} package has been updated to fix problems if used
199 at the start of list items, and to work if brace groups (\verb|{| and
200 \verb|}|) are used in the optional argument of
201 \verb|\cite|. (tools/4162, tools/4173)
204 \paragraph{\textsf{color} updates}
206 The \verb|\nopagecolor| command suggested by Heiko Oberdiek,
207 available for some years in the \textsf{pdftex} option, has been
208 added to the core package as suggested in graphics/3873. Currently
209 this is supported in the driver files for \textsf{dvips} and
210 \textsf{pdftex}. Patches to support other drivers are welcome.
212 \paragraph{\textsf{graphicx} updates}
214 The \textsf{graphicx} version of \verb|\rotatebox| now allows
215 \verb|\par| (and blank lines) in values, to match the change made
216 to the \textsf{graphics} version some years ago. See graphics/4296.
219 \paragraph{\textsf{keyval} updates}
221 All parsing used in the \textsf{keyval} package has been changed
222 to allow \verb|\par| (and blank lines) in values.
223 (A second change, to parsing of brace groups
224 in a construct such as \texttt{key=\{\{\{value\}\}\}}, was reverted in v1.15.)
225 See graphics/3446.
230 \vfill
232 \section{Standard \LaTeX\ (\LaTeXe) and \textsf{expl3}}
234 The substantial collection of innovative code in \textsf{expl3}
235 implements a new programming language that has for a while now been
236 used by some writers of \LaTeXe\ packages. This code has recently
237 also been made available for use on top of plain \TeX\ or {\ConTeXt},
238 largely to support generic packages that are supposed to work with
239 different flavours of \TeX. These uses in no way affect authors of
240 \LaTeX\ documents and such \LaTeXe\ packages will continue to work as
241 advertised by their authors with standard \LaTeX.
243 This code base will also become an important foundation for the kernel
244 of \LaTeX3 and so the new programming language can be described as
245 `The \LaTeX3 Programming Language'. However, if you see or hear that a
246 package `uses \LaTeX3' then it remains very unlikely (as yet) to mean
247 that the package is part of some `new version of \LaTeX'.
249 News about the development and use of \textsf{expl3} and about other
250 developments in the \LaTeX3 code base is reported regularly in the
251 \LaTeX3~News series (\url{http://latex-project.org/l3news/}), the most
252 recent issue of which was published in March 2014.
255 \end{document}