diff options
Diffstat (limited to 'macros/latex-dev/base/ltnews37.tex')
-rw-r--r-- | macros/latex-dev/base/ltnews37.tex | 378 |
1 files changed, 378 insertions, 0 deletions
diff --git a/macros/latex-dev/base/ltnews37.tex b/macros/latex-dev/base/ltnews37.tex new file mode 100644 index 0000000000..4ce8fcccc9 --- /dev/null +++ b/macros/latex-dev/base/ltnews37.tex @@ -0,0 +1,378 @@ +% \iffalse meta-comment +% +% Copyright 2021-2023 +% The LaTeX 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: ltnews37.tex +% +% This is issue 37 of LaTeX News. + +\NeedsTeXFormat{LaTeX2e}[2020-02-02] + +\documentclass{ltnews} + +%% Maybe needed only for Chris' inadequate system: +\providecommand\Dash {\unskip \textemdash} + +%% NOTE: Chris' preferred hyphens! +%%\showhyphens{parameters} +%% \hyphenation{because parameters parameter} + +\usepackage[T1]{fontenc} + +\usepackage{lmodern,url,hologo} + +\usepackage{csquotes} +\usepackage{multicol} +\usepackage{color} + +\providecommand\hook[1]{\texttt{#1}} + +\providecommand\meta[1]{$\langle$\textrm{\itshape#1}$\rangle$} +\providecommand\option[1]{\texttt{#1}} +\providecommand\env[1]{\texttt{#1}} +\providecommand\Arg[1]{\texttt\{\meta{#1}\texttt\}} + + +\providecommand\eTeX{\hologo{eTeX}} +\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} +%% But Chris has to mostly disable \href for his TEXPAD app: +%% \def\href #1{} % Only For Chris' deficient TeX engine + +% 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 + \else + % githubissue preceding + \vskip-\smallskipamount + \vskip-\parskip + \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\getfirstgithubissue#2 \relax}% + {gnats issue #1/#2}% + )}% + \par} + +\let\cls\pkg +\providecommand\env[1]{\texttt{#1}} +\providecommand\acro[1]{\textsc{#1}} + +\vbadness=1400 % accept slightly empty columns + + +\makeatletter +% maybe not the greatest design but normally we wouldn't have subsubsections +\renewcommand{\subsubsection}{% + \@startsection {subsubsection}{2}{0pt}{1.5ex \@plus 1ex \@minus .2ex}% + {-1em}{\@subheadingfont\colonize}% +} +\providecommand\colonize[1]{#1:} +\makeatother + +\let\finalvspace\vspace % for document layout fixes + +% Undo ltnews's \verbatim@font with active < and > +\makeatletter +\def\verbatim@font{% + \normalsize\ttfamily} +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\providecommand\tubcommand[1]{} +\tubcommand{\input{tubltmac}} + +\publicationmonth{June} +\publicationyear{2023 --- DRAFT version for upcoming release} + +\publicationissue{37} + +\begin{document} + +\tubcommand{\addtolength\textheight{4.2pc}} % only for TUB + +\maketitle +{\hyphenpenalty=10000 \exhyphenpenalty=10000 \spaceskip=3.33pt \hbadness=10000 +\tableofcontents} + +\setlength\rightskip{0pt plus 3em} + + +\medskip + + +\section{Introduction} + + +\section{New or improved commands} + + + +\subsection{Providing copy and show functions for environments} + +To copy a command definition we have introduced \cs{NewCommandCopy} in +2022. This even allows you to copy commands that consist of several internal +components, such as robust commands or those with a complex signature. +To do the same with environments, e.g., to define the environment +\env{myitemize} to be equivalent to \env{itemize}, you can now write +\begin{verbatim} + \NewEnvironmentCopy{myitemize}{itemize} +\end{verbatim} +There are also \cs{Renew...}\ and \cs{Declare...}, which may be useful +depending on the circumstances. + +In addition, we offer a \cs{ShowEnvironment} command, which displays the +\cs{begin} and \cs{end} code of the environment passed as an +argument. E.g., \verb=\ShowEnvironment{center}= results in the +following output: +\begin{verbatim} + > \begin{center}=environment: + > ->\trivlist \centering \item \relax . + <recently read> } + l. ...\ShowEnvironment{center} + > \end{center}: + > ->\endtrivlist . + <recently read> } + l. ...\ShowEnvironment{center} +\end{verbatim} +% +\githubissue{963} + + + + +\section{Code improvements} + +\subsection{\pkg{doc}: Index \texttt{\textbackslash\textvisiblespace} correctly} + +\emph{to write} +% +\githubissue{943} + + +\subsection{\pkg{doc}: Support the \pkg{upquote} package} + +The default quote and backquote characters in typewriter fonts are +typographical quotes, e.g., the input +\begin{verbatim} + \verb*/`prog 'my input'`/ +\end{verbatim} + is rendered as \verb*/`prog 'my input'`/ and not as +% +\begingroup % code to mimic upquote.sty +\catcode`'=\active +\catcode``=\active +\makeatletter +\g@addto@macro\@noligs + {\let'\textquotesingle + \let`\textasciigrave + \ifx\encodingdefault\upquote@OTone + \ifx\ttdefault\upquote@cmtt + \def'{\char13 }% + \def`{\char18 }% + \fi\fi} +\endgroup +% +\verb*/`prog 'my input'`/ as preferred by many programmers. + +This can be adjusted, for example, with the \pkg{upquote} package, +which results in the second output. However, for historical reasons +\pkg{doc} had its own definition of \cs{verb} and \env{verbatim} and +as a consequence the two packages did not cooperate. This has now +been fixed and loading \pkg{upquote} together with \pkg{doc} has the +desired effect. +% +\githubissue{953} + + +\subsection{New key for \env{filecontents}} + +The \env{filecontents} environment warns on the terminal if a file +gets overwritten even if that is intentional, +e.g., when you write a temporary file over and over again. To make +the warning less noisy in this case we added a new \texttt{nowarn} key +that redirects the overwriting warning to the transcript file. We +think that some record of the action is still required to help with +debugging, thus it is not completely silenced. The warning that +nothing gets written, because the file aready exists (and the +\texttt{force} key was not used), is not altered and still shows up on +the terminal. +% +\githubissue{958} + + + +\subsection{A further hook for shipping out pages} + +Since October 2020 the shipout process offers a number of hooks to +adjust what is happening before, during, and after the +\cs{shipout}. For example, with the \hook{shipout/before} hook, packages +can reset code they have altered (e.g., \cs{catcode}s during +verbatim-like processing) and with \hook{shipout/background} and +\hook{shipout/foreground} material can be added to the pages. +Details are given in \cite{37:ltshipout-doc}. However, what was +missing was a hook that allows a package writer to manipulate the +completed page (with foreground and background attached) just before +the actual shipout happens. + +For this we now provide the additional hook \hook{shipout}. One +use case (sometimes needed in print production) is to mirror the +whole page via \cs{reflectbox} including all the extra data that may +have been added into the fore- or background. +% +\githubissue{920} + + + +\subsection{Displaying release information in the \texttt{.log}} + +\LaTeX{} displays its release information at the very beginning of the +\LaTeX{} run on the terminal and also writes it to the transcript file +if that is already opened at this point. While this is normally true, +it is not the case if the \LaTeX{} run was started passing additional +\TeX{} code on the command line, e.g., +\begin{verbatim} +pdflatex '\PassOptionsToClass{11pt}{article} + \input{myarticle}' +\end{verbatim} +In this case the release information is displayed when +\cs{PassOptionsToClass} is processed but the transcript file is only +opened when the output file name is known, i.e., after \cs{input} has +been seen, and as a result the release information is only shown on +the terminal. + +To account for this scenario, we now repeat the release information +also at the very end of the transcript file where we can be sure that +it is open and ready to receive material. +% +\githubissue{944} + + + + + +\section{Bug fixes} + +\subsection{Incompatibility between \pkg{doc} and \pkg{unicode-math}} + +The \pkg{unicode-math} package alters the catcode of \verb=|= but does +not adjust its value for use in \pkg{doc}, with the result that +\enquote{or} module, i.e., $\langle A | B \rangle$ are displayed in a +strange way. This is now fixed with some firstaid code that will +eventually be moved into \pkg{unicode-math}. +% +\githubissue{820} + + +\subsection{A fix for \cs{hspace}} + +The change to \cs{hspace}, done in 2020 to make it \pkg{calc} aware, +had the unfortunate side effect that starting a paragraph with +\cs{hspace} would result in the execution of \cs{everypar} inside a +group (i.e., any local changes would immediately be revoked, breaking, +for example, \pkg{wrapfig} in that special situation). +% +This got fixed with the 2022-11 PL1 hotfix, so was already corrected in +the previous release, but only now documented in a newletter. +% +\githubissue{967} + + + +\section{Changes to packages in the \pkg{amsmath} category} + +\section{Changes to packages in the \pkg{graphics} category} + +\section{Changes to packages in the \pkg{tools} category} + + +%\medskip + +\begin{thebibliography}{9} + +\fontsize{9.3}{11.3}\selectfont + +\bibitem{37:ltshipout-doc} Frank Mittelbach, \LaTeX{}~Project~Team: + \emph{The \texttt{\upshape ltshipout} documentation}.\\ + Run \texttt{texdoc} \texttt{ltshipout-doc} to view. + +%\bibitem{37:blueprint} Frank Mittelbach and Chris Rowley: +% \emph{\LaTeX{} Tagged PDF \Dash A blueprint for a large project}.\\ +% \url{https://latex-project.org/publications/indexbyyear/2020/} + +%\bibitem{37:source2e} +% \emph{\LaTeX{} documentation on the \LaTeX{} Project Website}.\\ +% \url{https://latex-project.org/help/documentation/} + +%\bibitem{37:Lamport} +%Leslie Lamport. +%\newblock {\LaTeX}: {A} Document Preparation System: User's Guide and Reference +% Manual. +%\newblock \mbox{Addison}-Wesley, Reading, MA, USA, 2nd edition, 1994. +%\newblock ISBN 0-201-52983-1. +%\newblock Reprinted with corrections in 1996. +% +%\bibitem{37:ltnews32} \LaTeX{} Project Team: +% \emph{\LaTeXe{} news 32}.\\ +% \url{https://latex-project.org/news/latex2e-news/ltnews32.pdf} +% +%\bibitem{37:ltnews34} \LaTeX{} Project Team: +% \emph{\LaTeXe{} news 34}.\\ +% \url{https://latex-project.org/news/latex2e-news/ltnews34.pdf} +% +%\bibitem{37:ltnews35} \LaTeX{} Project Team: +% \emph{\LaTeXe{} news 35}.\\ +% \url{https://latex-project.org/news/latex2e-news/ltnews35.pdf} +% +%\bibitem{37:fntguide} \LaTeX{} Project Team: +% \emph{\LaTeXe{} font selection}.\\ +% \url{https://latex-project.org/help/documentation/} +% +%\bibitem{37:ltfilehook-doc} Frank Mittelbach, Phelype Oleinik, \LaTeX{}~Project~Team: +% \emph{The \texttt{\upshape ltfilehook} documentation}.\\ +% Run \texttt{texdoc} \texttt{ltfilehook-doc} to view. +\end{thebibliography} + + + +\end{document} |