Tidy up char 127
[latex2e.git] / trunk / doc / ltnews20.tex
blobb095411c676b869162ce437f9bb15740c8f25576
1 % \iffalse meta-comment
3 % Copyright 1993--2011
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: ltnews20.tex
31 % This is issue 20 of LaTeX News.
33 \documentclass{ltnews}
35 \usepackage[T1]{fontenc}
37 \usepackage{lmodern,url}
39 \publicationmonth{June}
40 \publicationyear{2011}
42 \publicationissue{20}
44 \begin{document}
46 \maketitle
48 \section{Scheduled \LaTeX\ bug-fix release}
50 This issue of \LaTeX~News marks the first bug-fix release of
51 \LaTeXe\ since shifting to a new build system in 2009.
52 Provided sufficient changes are made each year, we expect to
53 repeat such releases once per year to stay in sync with \TeX\ Live.
54 Due to the excitement of \TeX's $2^5$-th birthday last year,
55 we missed our window of opportunity to do so for 2010.
56 This situation has been rectified this year!
58 \section{Continued development}
60 The \LaTeXe\ program is no longer being actively developed, as any non-negligible changes now could have dramatic backwards compatibility issues with old documents. Similarly, new features cannot be added to the kernel since any new documents written now would then be incompatible with legacy versions of \LaTeX.
62 The situation on the package level is quite different though. While most of us have stopped developing packages for \LaTeXe{} there are many contributing developers that continue to enrich \LaTeXe{} by providing or extending add-on packages with new or better functionality.
64 However, the \LaTeX\ team certainly recognises that there are improvements to be made to the kernel code; over the last few years we have been working on building, expanding, and solidifying the \textsf{expl3} programming layer for future \LaTeX\ development. We are using \textsf{expl3} to build new interfaces for package development and tools for document design. Progress here is continuing.
66 \section{Release notes}
68 In addition to a few small documentation fixes, the following changes have been made to the \LaTeXe\ code; in accordance with the philosophy of minimising forwards and backwards compatibility problems, most of these will not be noticeable to the regular \LaTeX\ user.
70 \paragraph{Font subsets covered by Latin Modern and \TeX\ Gyre}
72 The Latin Modern and \TeX\ Gyre fonts are a modern suite of families based
73 on the well-known Computer Modern and `PostScript 16' families with many additional
74 characters for high-quality multilingual typesetting.%
75 \footnote{%
76 See their respective TUGboat articles for more information:\\
77 \url{http://www.tug.org/TUGboat/tb24-1/jackowski.pdf}\\
78 \url{http://www.tug.org/TUGboat/tb27-2/tb87hagen-gyre.pdf}%
81 Information about their symbol coverage in the \verb|TS1| encoding is now included
82 in \texttt{textcomp}'s default font definitions.
84 % \paragraph{Private conditional switch in italic correction}
85 % negligible improvement/only useful to LaTeX programmers: not worth documenting I think?
87 % \paragraph{Improve formatting in \texttt{doc} for filenames with some punctuation}
88 % negligible improvement, again?
90 \paragraph{Redefinition of \cs{enddocument}}
92 Inside the definition of \verb=\end{document}= the \texttt{.aux} file is read back in to resolve cross-references and build the table of contents etc. From 2.09 days this was done using \verb=\input= without any surrounding braces which could lead to some issues in boundary cases, especially if \verb=\input= was redefined by some package. It was therefore changed to use \LaTeXe{}'s internal name for this function. As a result, packages that modify \verb=\enddocument= other than through the officially provided hooks may need to get updated.
94 \paragraph{Small improvement with split footnotes in \texttt{ftnright}}
96 If in the first column there is more than a full column worth of footnote
97 material the material will be split resulting in footnotes out of
98 order. This issue is now at least detected and generates an error but the algorithm used by the package is
99 unable to gracefully handle it in an automated fashion (some alternatives for resolving the problem if it happens are given in the package documentation).
101 \paragraph{Improvement in \texttt{xspace} and font-switching}
103 The \texttt{xspace} package provides the command \verb|\xspace|
104 which attempts to be clever about inserting spaces automatically
105 after user-defined control sequences.
106 An important bug fix has been made to this command to correct its
107 behaviour when used in conjunction with font-switching commands
108 such as \verb|\emph| and \verb|\textbf|.
109 Previously, writing
110 \begin{verbatim}
111 \newcommand\foo{foo\xspace}
112 ... \emph{\foo} bar baz
113 ... \emph{\foo}, bar baz
114 \end{verbatim}
115 would result in an extraneous space being inserted after `foo' in
116 both cases; this has now been corrected.
119 \paragraph{RTL in \texttt{multicol}}
121 The 1.7 release of \texttt{multicol} adds support for languages that are typeset
122 right-to-left. For those languages the order of the columns on the page
123 also needs to be reversed---something that wasn't possible in earlier releases.
125 The new feature is supported through the
126 commands \verb|\RLmulticolcolumns| (switching to right-to-left typesetting)
127 and \verb|\LRmulticolcolumns| (switching to left-to-right typesetting) the
128 latter being the default.
130 \paragraph{Improve French \texttt{babel} interaction with \texttt{varioref}}
132 Extracting and saving the page number turned out to be a source of subtle
133 bugs. Initially it was done through an \verb"\edef" with a bunch of
134 \verb"\expandafter" commands inside. This posed a problem if the page number
135 itself contained code which needed protection (e.g., pr/4080) so this got
136 changed in the last release to use \verb"\protected@edef". However, that in turn failed with Babel
137 (bug report/4093) if the label contained active characters, e.g., a ``:'' in French. So now
138 we use (after one failed attempt pr/4159) even more \verb"\expandafter" commands and \verb"\romannumeral" trickery to avoid any expansion other
139 than what is absolutely required---making the code in that space absolutely unreadable.
140 \begin{verbatim}
141 \expandafter\def\expandafter#1\expandafter{%
142 \romannumeral
143 \expandafter\expandafter\expandafter
145 \expandafter \@cdr
146 \romannumeral
147 \expandafter\expandafter\expandafter
149 \csname r@#2\endcsname\@nil}%
150 \end{verbatim}
151 Code like this nicely demonstrates the limitations in the programming layer of \LaTeXe{} and the advantages that \textsf{expl3} will offer on this level.
153 \end{document}