summaryrefslogtreecommitdiff
path: root/macros/latex-dev/base/ltnews26.tex
blob: 9fbb6716b184a002b472ea1daf39c1d8ce8e4596 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
% \iffalse meta-comment
%
% Copyright (C) 2017-2023
% 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: ltnews26.tex
%
% This is issue 26 of LaTeX News.

\documentclass{ltnews}
\usepackage[T1]{fontenc}

\usepackage{lmodern,url,hologo}

\publicationmonth{January}
\publicationyear{2017}

\publicationissue{26}

\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
\tableofcontents

\setlength\rightskip{0pt plus 3em}
\section{\eTeX{}}

In \LaTeX{} News~16 (December 2003) the team announced
\begin{quotation}
We expect that within the next two years, releases of \LaTeX{} will
change modestly in order to run best under an extended \TeX{} engine
that contains the \eTeX{} primitives, e.g., \eTeX{} or pdf\TeX{}.
\end{quotation}
and also said
\begin{quotation}
Although the current release does not \emph{require} \eTeX{} features, we
certainly recommend using an extended \TeX{}, especially if you need to debug
macros.
\end{quotation}

For many years the team have worked on the basis that users will have \eTeX{}
available but had not revisited the above statements formally. As of the
January 2017 release of \LaTeXe{}, \eTeX{} is \emph{required} to build the
format, and attempting to build a format without the extensions will fail.

Practically, modern \TeX{} distributions provide the extensions in all engines
other than the ``pure'' Knuth \texttt{tex}, and indeed parts of the
format-building process already require \eTeX{}, most notably some of the UTF-8
hyphenation patterns. As such, there should be no noticeable effect on users of
this change.

The team expect to make wider use of \eTeX{} within the kernel in future;
details will be announced where they impact on end users in a visible way.

\section{Default encodings in \hologo{XeLaTeX} and \hologo{LuaLaTeX}}
The default encoding in \LaTeX\ has always been the original
128-character encoding \texttt{OT1}.  For Unicode based \TeX\ engines, this
is not really suitable, and is especially problematic with
\hologo{XeLaTeX} as in the major distributions this is built with
Unicode based hyphenation patterns in the format.  In practice this has
not been a major problem as documents use the contributed
\pkg{fontspec} package in order to switch to a
Unicode encoded font.

In this release we are adding \texttt{TU} as a new supported
encoding in addition to the previously supported encodings such as \texttt{OT1}
and \texttt{T1}. This denotes a Unicode based font encoding. It is essentially
the same as the \texttt{TU} encoding that has been on trial with the
experimental \option{tuenc} option to \pkg{fontspec} for the past
year.

The \hologo{XeLaTeX} and \hologo{LuaLaTeX} formats will now default
to \texttt{TU} encoding and \texttt{lmr} (Latin Modern) family. In the
case of \hologo{LuaLaTeX} the contributed \texttt{luaotfload} Lua
module will be loaded at the start of each run to enable the loading
of OpenType fonts.

The \pkg{fontspec} package is being adjusted in a companion release
to recognise the new encoding default arrangements.

Note that in practice no font supports the full Unicode range, and so
\texttt{TU} encoded fonts, unlike fonts specified for \texttt{T1}, may be
expected to be incomplete in various ways. In the current release the file
\file{tuenc.def} that implements the \texttt{TU} encoding-specific commands
has made some basic assumptions for (for example) default handling of
accent commands, and the set of command names is derived from the
command names used for the UTF-8 support in the \pkg{inputenc} package,
restricted roughly to the character ranges classically provided by
the \texttt{T1} and \texttt{TS1} encodings, but is part of a longer term plan
seen over recent releases to increase support for Unicode based \TeX\ engines
into the core \LaTeX\ support.



If for any reason you need to process a document with the previous
default \texttt{OT1} encoding, you may switch encoding in the usual ways, for
example
\begin{verbatim}
\usepackage[OT1]{fontenc}
\end{verbatim}
or you may roll back all the changes for this release by starting the
document with
\begin{verbatim}
\RequirePackage[2016/12/31]{latexrelease}
\end{verbatim}

\section{\cs{showhyphens} in \hologo{XeLaTeX}}
Due to the way \hologo{XeLaTeX} interfaces to font libraries, the
standard definition of \cs{showhyphens} does not work.  A variant
definition has been available in the contributed \pkg{xltxtra}
package, however a (slightly different) definition for \cs{showhyphens}
is now included in \hologo{XeLaTeX} by default. As usual
this change will be undone if an earlier
release is specified using the \pkg{latexrelease} package.

\section{The \pkg{fixltx2e} package}
As described in \LaTeX{} News~22, the \pkg{fixltx2e} package has become
obsolete with the new update policy. Since 2015 it has just made a
warning and exited.  In this release we have re-introduced all
the code from the original fixes in the 2014 \LaTeX\ but guarded by
\verb|\IncludeInRelease{2015/01/01}|.
So for current releases \pkg{fixltx2e} still just displays a warning
but for old releases, whether that is an old format, or a format with
the version date reset via  the \pkg{latexrelease} package, the
fixes in the original \pkg{fixltx2e} will be applied.

This improves the ability to run old documents in a way that is compatible
with contemporary formats. If you have a 2014 document that used
\verb|\usepackage{fixltx2e}| and you add
\verb|\RequirePackage[2014/01/01]{latexrelease}| and process it with the
current format then \pkg{latexrelease} will undo most changes made
since 2014, but now when the document includes \pkg{fixltx2e} it
will act like a 2014 version of the package and apply the code fixes,
not just give a warning that the package is obsolete.

\section{The \pkg{latexbug} package}

As explained in more detail
at the \LaTeX\ Project
  website\footnote{\url{https://www.latex-project.org/bugs/}}
a new package, \pkg{latexbug}, has been produced to help produce
test files to accompany bug reports on the core \LaTeX\ distribution.
This is being published separately to CTAN at the same time as this
release. By using the \pkg{latexbug} package you can easily check
that the packages involved in the test are all part of the core
release. The \LaTeX\ project cannot handle bug reports on contributed
packages, which should be directed to the package maintainer as given
in the package documentation.

\section{Updates to \pkg{amsmath}}
The \pkg{amsmath} package has two updates at this release.
\begin{itemize}
\item The spacing to the left of the \env{aligned} and
  \env{gathered} environments has been fixed: the spurious thin
  space is no longer added by default. Package options control this
  to revert to the original behaviour where required; see the
  \file{amsldoc} guide for further details.
\item The large delimiters around generalised fractions (for example
  in the \cs{binom} construct) did not work in previous releases if
  using \hologo{LuaTeX} or \hologo{XeTeX} with OpenType math fonts. This is
  related to the lack of specific metrics for this use in the OpenType Math
  table. In principle \hologo{LuaTeX} has two additional named metrics
  to control the delimiters but these are not initialised by default,
  and in \hologo{XeTeX} it does not seem possible to make them work at all.
  So for Unicode \TeX\ systems, a new implementation of
  \cs{genfrac} is used at this release that uses \verb|\left\right|
  internally but parameterised to give spacing as close to the
  original as possible. The implementation in (pdf)\TeX\ is
  unaffected.
\end{itemize}

\section{Updates to \textsf{tools}}
The \pkg{array} package has been updated to fix a longstanding but
previously unreported issue with unwanted interactions between tables
in the page head or foot and the body of the page, as reported in
\href{http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=tools/4488}{PR
  tools/4488}.
There is also an update to the \hologo{LuaTeX} support in \pkg{bm}.

\section{An addendum to the release changes in 2015:  page breaks and vertical spacing}

In 2015 we announced the introduction of the roll-back\slash
roll-forward concept to manage bug fixes and additions to core
\LaTeX{} in a manageable way. We also announced at that time
that we now incorporate all fixes from \pkg{fixltx2e} into the
kernel (as the old mechanism produced problems instead of improving
the situation). Refer to
\href{https://www.latex-project.org/news/latex2e-news/ltnews22.pdf}{\file{ltnews22.pdf}}
for details.

One of the fixes from \pkg{fixltx2e} was for a glaring bug in
\cs{addvspace} that was originally detected in the mid-nineties and
back then added to the \pkg{fixltx2e} support package. In certain
situations \cs{addvspace} would result in a page/column break below
the baseline of the last line. As a result documents using
\cs{flushbottom} would show a clear misalignment (even more prominent
when typesetting in two-column mode).

Starting with release 2015/01/01 this is now finally corrected already
in the kernel and not only in \pkg{fixltx2e}.  In nearly all
circumstances this will either make no difference to existing
documents, or it will locally improve the visual appearance of that
document without changing anything on other pages.  However, by the
nature of the change it is also possible that there are further
non-local changes to the page breaks due to the different break
positions introduced by the fix.

Thus, for documents that have been written before 2015 and that should
be preserved unchanged at all costs you may have to add
\begin{verbatim}
\RequirePackage[2014/01/01]{latexrelease}
\end{verbatim}
at the top of the document, to roll back the format to a date before
the policy change.

\end{document}