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