% \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}

