summaryrefslogtreecommitdiff
path: root/macros/latex-dev/doc/ltnews30.tex
blob: 7b4b282cc9e4c53d8260166a1b9700f7c370639d (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
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
% \iffalse meta-comment
%
% Copyright 2019
% The LaTeX3 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 2005/12/01 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: ltnews30.tex
%
% This is issue 30 of LaTeX News.

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

\usepackage{lmodern,url,hologo}

\usepackage{csquotes}

\providecommand\acro[1]{\textsc{#1}}
\providecommand\meta[1]{$\langle$\textit{#1}$\rangle$}


\providecommand\XeTeX{\hologo{XeTeX}}
\providecommand\LuaTeX{\hologo{LuaTeX}}
\providecommand\pdfTeX{\hologo{pdfTeX}}

\providecommand\githubissue[2][]{\ifhmode\unskip\fi
     \quad\penalty500\strut\nobreak\hfill
     \mbox{\small\slshape(%
       \href{https://github.com/latex3/latex2e/issues/\getfirstgithubissue#2 \relax}%
          	    {github issue#1 #2}%
           )}%
     \par}

% simple solution right now (just link to the first issue if there are more)
\def\getfirstgithubissue#1 #2\relax{#1}

\providecommand\sxissue[1]{\ifhmode\unskip\fi
     \quad\penalty500\strut\nobreak\hfill
     \mbox{\small\slshape(\url{https://tex.stackexchange.com/#1})}\par}

\providecommand\gnatsissue[2]{\ifhmode\unskip\fi
     \quad\penalty500\strut\nobreak\hfill
     \mbox{\small\slshape(%
       \href{https://www.latex-project.org/cgi-bin/ltxbugs2html?pr=#1\%2F#2}%
          	    {gnats issue #1/#2}%
           )}%
     \par}

\let\cls\pkg
\providecommand\env[1]{\texttt{#1}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\iffalse % only for TUB production
\usepackage{graphicx}
\makeatletter
% Xe\TeX{} requires reflecting the first E, hence we complain if the
% graphics package is not present.  (For plain documents, this can be
% loaded via Eplain.)  Also, at Barbara's suggestion, if the current
% font is slanted, we rotate by 180 instead of reflecting so there is at
% least a chance to look ok.  (The magic values here seem more or less
% ok for \texttt{cmsl} and \texttt{cmti}.)
%
%    \begin{macrocode}
\def\tubreflect#1{%
  \@ifundefined{reflectbox}{%
    \TBerror{A graphics package must be loaded for \string\XeTeX}%
  }{%
    \ifdim \fontdimen1\font>0pt
      \raise 1.6ex \hbox{\kern.1em\rotatebox{180}{#1}}\kern-.1em
    \else
      \reflectbox{#1}%
    \fi
  }%
}
\def\tubhideheight#1{\setbox0=\hbox{#1}\ht0=0pt \dp0=0pt \box0 }
\def\XekernbeforeE{-.125em}
\def\XekernafterE{-.1667em}
\DeclareRobustCommand{\Xe}{\leavevmode
  \tubhideheight{\hbox{X%
    \setbox0=\hbox{\TeX}\setbox1=\hbox{E}%
    \ifdim \fontdimen1\font>0pt \def\XekernbeforeE{0em}\fi
    \lower\dp0\hbox{\raise\dp1\hbox{\kern\XekernbeforeE\tubreflect{E}}}%
    \kern\XekernafterE}}}
\def\XeTeX{\Xe\TeX}
\def\XeLaTeX{\Xe{\kern.11em \LaTeX}}
\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\publicationmonth{Pre-release Version --- unfinished}
\publicationyear{2019}

\publicationissue{30}

\begin{document}

%\addtolength\textheight{4.2pc}   % only for TUB

\maketitle
\tableofcontents

\setlength\rightskip{0pt plus 3em}

\bigskip

\section{Introduction}

This document is under construction \ldots


\section{Improving Unicode handling in \pdfTeX{}}

The perhaps most important improvement in this release is an even
better support for UTF-8 characters when using \pdfTeX{}.\footnote{The
  Japanese engines e-p\TeX{} and e-up\TeX{} can't use these features
  yet as they don't support the primitive \cs{ifincsname}. Work is
  under way to resolve this in the engines.}

In Unicode engines any Unicode character (that is not acting as a
command, i.e., is \enquote{active}) can be used as part of the
\cs{label}/\cs{ref} mechanism or can be displayed in a message or
written to a file. In 8-bit engines, however, this was severely
restricted, essentially you had to limit yourself to using
\acro{ascii} letters, digits and a few punctuation symbols.  With the
new release most of these restrictions have been removed and you now
can write labels such as
\begin{verbatim}
  \label{eq:größer}
\end{verbatim}
or use accented characters, etc.\ as part of a \cs{typeout} message.
The only requirement remaining is that only those UTF-8 characters
that are also available for typesetting can be used, i.e., only those
which which adequate font support is loaded. Otherwise you will get an
error message stating that a particular Unicode character is not set
up for use with \LaTeX{}.

What is not possible with an 8-bit engine such as \pdfTeX{} is to use
characters other than \acro{ascii} letters as part of a command
name. This is due to the fact that all other characters in such
engines are not single character tokens, but in fact consist of a
sequence of bytes and this is not supported in command names.

\section{Improving file name handling in \pdfTeX{}}

A related change is that file names used as part of \cs{input},  \cs{includegraphics}, etc.\ can now contain Unicode characters as well as spaces. In this case even characters that can't be typeset because of missing font support can be used.




\section{Other changes to the \LaTeX{} kernel}


\subsection{Guard against \cs{unskip} at the start of a tabular cell}

If a \env{tabular} or \env{array} cell started with command that
issued an \cs{unskip} as its first action centering the column got
broken because the space on the left got removed. This got corrected
by adding a minuscule additional space after the stretching space that
could be safely removed in such a case without being noticeable.

This change was also applied in the \pkg{array} package.

\githubissue{102}


\subsection{Fixes to Unicode table data}

\texttt{U+012F} which is \enquote{i with ogonek} should produce an
\enquote{i} and not a\enquote{dotless i}. This has been corrected.

\githubissue{122}

The Unicode slots \texttt{27E8} and \texttt{27E9} have been mapped to
\cs{textlangle} and \cs{textrangle} which is the recommended mapping.

\githubissue{110}

When doing cut-and-paste from other documents f-ligatures might show
up as Unicode characters. In the past those got rejected.  We now
translate them back to individual characters so that they get
accepted. If supported by the font (which is normally the case) they
are then reconstructed as ligatures and thus come out as
desired. Otherwise they will come out as individual characters which
is fine too.

\githubissue{154}


\subsection{Improve \cs{InputIfFileExists}'s handling of file names}

In rare circumstances it was possible that \cs{InputIfFileExists}
would work incorrectly, e.g., a construction such as
\begin{verbatim}
\InputIfFileExists{foo}{\input{bar}}{}
\end{verbatim}
Would not load the files \texttt{foo.tex} and \texttt{bar.tex} but
would load \texttt{foo.tex} twice. This has been corrected.

\githubissue{109}


\subsection{Improve wording of a warning message}

\emph{write}

\githubissue{107}


\subsection{Avoid \cs{DeclareErrorFont} side effects}

\emph{write}

\gnatsissue{latex}{4399}



\subsection{\pkg{nfssfont}: Generate a font table as the default action}

With the small file \texttt{nfssfont.tex} it is possible to produce
font tables and other font tests in the style set up by Don Knuth. As
in nearly all cases producing a font table is the desired action this
action has been made the default so that one can simply hit enter
instead of having to write \verb=\table\bye=.





        
\section{Changes to packages in the \pkg{tools} category}

\subsection{\pkg{multicol}: Introduce \texttt{minrows} counter for balancing}

When there are only a few lines of text on a page at the end of a
\env{multicols} environment balancing them looks rather odd, e.g., if
you then end up with three columns each containing a single line. This
can now be controlled through the counter \texttt{minrows} (default is
1) which requires at least that many lines in the first column during
balancing. Thus, if you set it to \texttt{2} one would get a
distribution of \texttt{2+1+0} lines and if set it to three, the result
would have been \texttt{3+0+0} instead of the default \texttt{1+1+1}.

What is most appropriate really depends on the circumstances, but this
now gives you the tools to make local or global adjustments.


        
\section{Changes to packages in the \pkg{amsmath} category}

\subsection{\pkg{amsmath}: Introduce \texttt{overunderset} command}

\emph{describe}



\section{Documentation updates}

\subsection{High-lighting the standard NFSS codes for series}
      
\emph{describe}


\begin{thebibliography}{9}
  
\bibitem{29:site-doc} 
  \emph{\LaTeX{} documentation on the \LaTeX{} Project Website}.\\  
  \url{https://latex-project.org/documentation/}

\bibitem{29:site-pub} 
  \emph{\LaTeX{} Project publications on the \LaTeX{} Project Website}.\\
  \url{https://latex-project.org/publications/}

\end{thebibliography}

\end{document}