diff options
Diffstat (limited to 'macros/latex-dev/base/ltnews31.tex')
-rw-r--r-- | macros/latex-dev/base/ltnews31.tex | 270 |
1 files changed, 270 insertions, 0 deletions
diff --git a/macros/latex-dev/base/ltnews31.tex b/macros/latex-dev/base/ltnews31.tex new file mode 100644 index 0000000000..69f8dd3cd1 --- /dev/null +++ b/macros/latex-dev/base/ltnews31.tex @@ -0,0 +1,270 @@ +% \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 +% https://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: ltnews31.tex +% +% This is issue 31 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\option[1]{\texttt{#1}} +\providecommand\env[1]{\texttt{#1}} + + +\providecommand\XeTeX{\hologo{XeTeX}} +\providecommand\LuaTeX{\hologo{LuaTeX}} +\providecommand\pdfTeX{\hologo{pdfTeX}} +\providecommand\MiKTeX{\hologo{MiKTeX}} +\providecommand\CTAN{\textsc{ctan}} +\providecommand\TL{\TeX\,Live} +\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\smallskip} + +% 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{February} +\publicationyear{2020} + +\publicationissue{31} + +\begin{document} + +%\addtolength\textheight{4.2pc} % only for TUB + +\maketitle +\tableofcontents + +\setlength\rightskip{0pt plus 3em} + +%\newpage + +\medskip + + +\section{Introduction} + +This document is under construction \ldots + + +\section{Primitive requirements} + +Since the finalisation of \eTeX{} in 1999, a number of additional `utility' +primitives have been added to \pdfTeX{}. Several of these are broadly useful +and have been requirements for \pkg{expl3} for some time, most notably +\cs{pdfstrcmp}. Over time, a common set of these `post-\eTeX{}' primitives have +been incorporated into \XeTeX{} and (u)p-\TeX{}; they were available in +\LuaTeX{} already. + +A number of the additional primitives are needed to support new or improved +functionality in \LaTeX{}. This is seen for example in improved UTF-8 handling, +which uses \cs{ifincsname}. The following primitive functionality (which in +\LuaTeX{} may be achieved using Lua code) will therefore be \emph{required} by +the \LaTeX{} kernel after [INSERT DATE HERE]: +\begin{itemize} + \item \cs{expanded} + \item \cs{ifincsname} + \item \cs{ifpdfprimitive} + \item \cs{pdfcreationdate} + \item \cs{pdfelapsedtime} + \item \cs{pdffiledump} + \item \cs{pdffilemoddate} + \item \cs{pdffilesize} + \item \cs{pdflastxpos} + \item \cs{pdflastypos} + \item \cs{pdfmdfivesum} + \item \cs{pdfnormaldeviate} + \item \cs{pdfpageheight} + \item \cs{pdfpagewidth} + \item \cs{pdfprimitive} + \item \cs{pdfrandomseed} + \item \cs{pdfresettimer} + \item \cs{pdfsavepos} + \item \cs{pdfsetrandomseed} + \item \cs{pdfshellescape} + \item \cs{pdfstrcmp} + \item \cs{pdfuniformdeviate} +\end{itemize} +For ease of reference, these primitives will be referred to as the +`\pdfTeX{} utilities'. + +Engines which are fully Unicode-capable must all provide the following +primitives +\begin{itemize} + \item \cs{Uchar} + \item \cs{Ucharcat} + \item \cs{Umathcode} +\end{itemize} +In particular, note that \cs{Umathcode} is used as a marker primitive for +this capability. + +\section{Experiences with the \LaTeX\texttt{-dev} formats} + +\emph{write} + +In TeXLive 2020 the Lua\LaTeX{} format will use the new LuaHB\TeX{} engine, which is Lua\TeX{} with an embedded HarfBuzz library. +HarfBuzz can be used by setting a suitable renderer in the font declaration. An interface for that is provided by \pkg{fontspec}. +This additional font renderer will greatly improve the shaping of various scripts, which are currently handled correctly only by \XeTeX{}. +To simplify the testing of the new engine, binaries have been added to MiKTeX and TeXLive 2019 and both have changed the Lua\LaTeX-dev format to use it. + +\section{Improved load-times for \pkg{expl3}} + +The \LaTeX3 programming layer, \pkg{expl3}, has over the past decade moved from +being largely experimental to broadly stable. It is now used in a significant +number of third-party packages, most notably \pkg{xparse} for defining +interfaces in cases where no \pkg{expl3} code is \enquote{visible}. Most +\LaTeX{} documents compiled using \XeTeX{} or \LuaTeX{} load \pkg{fontspec}, +which is written using \pkg{expl3}. + +The \pkg{expl3} layer contains a non-trivial number of macros, and when used +with the \XeTeX{} and \LuaTeX{} engines, it loads a large body of Unicode data. +This means that even on a fast computer, there is a relatively large load time for +using \pkg{expl3}. + +For this release, the team have made adjustments in the \LaTeXe{} kernel to +pre-load a significant portion of \pkg{expl3} as the format is built. This is +transparent at the user level, other than the significant decrease in document +processing time: there will be no \enquote{pause} for loading Unicode data +files. Loading of \pkg{expl3} in documents and packages can be done as usual; +eventually, it will be possible to omit +\begin{verbatim} +\RequirePackage{expl3} +\end{verbatim} +entirely, but to support older formats, this is still recommended at present. + +\section{Other changes to the \LaTeX{} kernel} + +\emph{fixed gh198} + + +\section{Changes to packages in the \pkg{tools} category} + +\emph{fixed gh190} + + + +\section{Changes to packages in the \pkg{amsmath} category} + + + + +\section{Documentation updates} + + + + + +\begin{thebibliography}{9} + +%\fontsize{9.3}{11.3}\selectfont + +\bibitem{31:devformat} Frank Mittelbach: + \emph{The + \LaTeX{} release workflow and the \LaTeX{} dev formats}. + In: TUGboat, 40\#2, 2019. + \url{https://latex-project.org/publications/} + +\bibitem{31:fntguide} \LaTeX{} Project Team: + \emph{\LaTeXe{} font selection}.\\ + \url{https://latex-project.org/documentation/} + +\bibitem{31:site-doc} + \emph{\LaTeX{} documentation on the \LaTeX{} Project Website}.\\ + \url{https://latex-project.org/documentation/} + +%\bibitem{31:site-pub} +% \emph{\LaTeX{} Project publications on the \LaTeX{} Project Website}.\\ +% \url{https://latex-project.org/publications/} + +\end{thebibliography} + +\end{document} |