[latex3-commits] [git/LaTeX3-latex3-latex2e] ltnew33: Interim version (6b38d844)
Chris Rowley
car222222 at github.github.io
Mon May 17 12:59:05 CEST 2021
Repository : https://github.com/latex3/latex2e
On branch : ltnew33
Link : https://github.com/latex3/latex2e/commit/6b38d84429267fce85d9898d6938c6b27684b726
>---------------------------------------------------------------
commit 6b38d84429267fce85d9898d6938c6b27684b726
Author: Chris Rowley <car222222 at users.noreply.github.com>
Date: Mon May 17 17:59:05 2021 +0700
Interim version
Awaiting new section typo plus some answers.
>---------------------------------------------------------------
6b38d84429267fce85d9898d6938c6b27684b726
base/doc/ltnews33.tex | 260 +++++++++++++++++++++++---------------------------
1 file changed, 121 insertions(+), 139 deletions(-)
diff --git a/base/doc/ltnews33.tex b/base/doc/ltnews33.tex
index 3d1119ce..cf20e29f 100644
--- a/base/doc/ltnews33.tex
+++ b/base/doc/ltnews33.tex
@@ -1,5 +1,6 @@
+
%% Temporary: quick draft identification --
-%% This is Draft 3a.
+%% This is Draft 3b.
% \iffalse meta-comment
%
% Copyright 2019-2021
@@ -36,31 +37,14 @@
\documentclass{ltnews}
-\iffalse
-%%CCC For Chris' local system
+%%CCC iffalse to bottom
-\usepackage[utf8]{inputenc}
-\def\githubissue #1{\par\noindent{\small\sl
- (https://github.com/latex3/latex2e/issues/ #1)}}
-\def\gnatsissue #1#2{\par\noindent{\small\sl (https://www.latex-project.org/cgi-bin/\\
- ltxbugs2html?pr=#1\%2F #2)}}
-
-%%FMi This is the subsubsection from the class (for reference) unchanged
-\makeatletter
-% maybe not the greatest design but normally we wouldn't have subsubsections
-\renewcommand{\subsubsection}{%
- \@startsection
- {subsubsection}{2}{\leftmargini}{-1.5ex \@plus -1ex \@minus -.2ex}%
- {1sp}{\@subheadingfont}%
-}
-\makeatother
-\fi
%%CCC Do we need a cite for source2e.pdf ?
-%%CCC Chris' hyphens!
+%% NOTE: Chris' preferred hyphens!
%%\showhyphens{parameters}
\hyphenation{because para-me-ters}
@@ -124,7 +108,7 @@
\tubcommand{\input{tubltmac}}
\publicationmonth{June}
-\publicationyear{2021 --- Draft Version 3a}
+\publicationyear{2021 --- Draft Version 3b}
\publicationissue{33}
@@ -154,7 +138,7 @@ fixes that are outlined on the next pages. As usual, more detail
on individual changes can be found in the \texttt{changes.txt} files
in the distribution and, of course, in the documented
sources~\cite{33:source2e}.
-
+%%CCC Changed for new structure.
@@ -199,7 +183,7 @@ In practice, these new generic \hook{cmd} hooks, especially the
complex to be automatically patched, breaking if the hook contains any
code. These restrictions are documented in
\texttt{ltcmdhooks-doc.pdf}.
-% %%CCC
+%
However, given that these hooks are mainly meant for developers who
wish to provide better interoperability between different packages,
and between packages and the \LaTeX{} kernel, these restrictions are,
@@ -222,16 +206,12 @@ must be done in controlled and standardized ways.
In the 2020 October release, several hooks were added to control the
process of constructing and shipping out a page box: these support,
-for example,
-%%FMi
-the addition of background or foreground material to some or all
-pages.
-%%FMi
-%%FMi the addition of background or foreground material.
-%%FMi %%CCC to some or all pages. We now
+for example, the addition of background or foreground material
+to some or all pages.
+
We have now added a command,
-%%FMi currently
+%%FMi currently %%CCC ??? To be discussed elsewhere, at length!
called \cs{RawShipout}, which does not do any rebuilding of the page
box and so does not run most of these hooks. When using this new
command, essential internal book-keeping is still carried out, such as
@@ -348,8 +328,10 @@ applied to normalize robust commands within the file name.
Previously, for example, \verb|\input{\sqrt{2}}| would cause
\LaTeX\ to loop indefinitely whereas with with the new normalization
it looks for the file named \verb|sqrt {2}.tex|
-%%FMi
-(and reports a file not found failure instead).
+%%FMi (and reports a file not found failure instead).
+%%CCC :
+(and therefore very likely reports ‘file not found’).
+
%
\githubissue{481}
@@ -376,31 +358,20 @@ characters in its name. This has been fixed and now
\subsection{Improved copy\,\&\,paste support for \pdfTeX{} documents}
-When compiling with \pdfTeX{}, additional information is now added
-automatically to the PDF file in order to improve copying from, and
-searching in, text.
-
-This in particular allows the most common ligatures to be copied as
-intended from all generated PDF files without the need to explicitly
-load the package \pkg{cmap} or the file \texttt{glyphtounicode.tex}.
-
+%%CCC Changed to rectify this problem (is it correct now?):
%%FMi the above sounds as if ``in most cases things work without
%%glyphtounicode but sometimes you need it ... which is wrong
%%(sometimes you need cmap but glyphtounicode is now part of the
%%kernel!
+When compiling with \pdfTeX{}, additional information %%CCC
+(from the file \texttt{glyphtounicode.tex}
+is now added
+automatically to the PDF file in order to improve copying from, and
+searching in, text.
-%
-%%FMi \iffalse
-%%FMi %%CCC Since this has been integrated into the kernel,
-%%FMi %%CCC
-%%FMi This means that most documents %%CCC should
-%%FMi no
-%%FMi longer need to load the %%CCC
-%%FMi package \pkg{cmap} or input
-%%FMi %%CCC
-%%FMi the file
-%%FMi \texttt{glyphtounicode.tex}.
-%%FMi \fi
+This in particular allows the most common ligatures to be copied as
+intended from all generated PDF files without the need to explicitly
+load the package \pkg{cmap}.
%
\githubissue{465}
@@ -457,8 +428,6 @@ and \cs{texthorizontalbar}, respectively.
\githubissue{404}
-
-
\subsection{Poor man's \cs{textasteriskcentered}}
The \cs{textasteriskcentered} symbol, used as part of the set of
@@ -478,10 +447,8 @@ certainly better than no glyph showing up.
-
\section{New or improved commands}
-
\subsection{Adjusting \env{itemize} labels with \cs{labelitemfont}}
The command \cs{labelitemfont} was introduced already with the
@@ -493,10 +460,11 @@ that the \env{itemize} labels (e.g., the \textbullet{}) would
sometimes react to surrounding font changes and could then suddenly
change shape, for example to \textit{\textbullet}.
-This new command \cs{labelitemfont}, which defaults to
-\cs{normalfont}, is now used
+This new command \cs{labelitemfont}, which defaults to \cs{normalfont},
%%FMi to typeset
-when typesetting %%FMi to seems wrong (it is only additionally applied
+%%FMi seems wrong (it is only additionally applied
+%%CCC Added longer explanation, hope it is correct!
+can be used to provide additional control in the typesetting of
each label. Thus by choosing
different settings other effects can be achieved. Here are two
examples:
@@ -521,18 +489,14 @@ and shape but leaves the series as a variable quantity, so that an
-
\subsection{Producing several footnote marks for one footnote}
It is sometimes necessary to reference the same footnote several
times: i.e., to produce several footnote marks using the same number
-or symbol. This is now
-%%FMi always
-easily
+or symbol. This is now easily
possible by placing a \cs{label} within the referenced \cs{footnote}
and referencing
-this label %%FMi as required
-by using the new command \cs{footref}. This
+this label by using the new command \cs{footref}. This
means that footnote marks can be generated
to refer to arbitrary footnotes
(including those in \texttt{minipage}s).
@@ -556,9 +520,6 @@ if it was placed there. This command is now allowed in the preamble.
\githubissue{424}
-
-
-
\subsection{Made \cs{\textbackslash} generally robust}
In 2018 most \LaTeX{} user-level commands were made robust, including
@@ -596,13 +557,18 @@ the second column is therefore then started, which results in the
\cs{\textbackslash} being interpreted as being within that column and
hence as having its expected, within-column, meaning.
-So now both
-of the above lines %%CCC consistently %%FMi I like consistently
+We have restored consistency here: now both of the above lines
produce a single \env{tabular} row.
As before, you can
+%%CCC Unresolvd: ask B&K?
%%FMi no unnecessary quotes
%%FMi put `\cs{raggedright} \cs{arraybackslash}'
+%%FMi no unnecessary quotes
+%%FMi put `\cs{raggedright} \cs{arraybackslash}'
+%%CCC But I thought that these quotes are necessary:
+%%CCC without them it was not clear to me that this was a single ‘code snippet’
+%%CCC to be added verbatim to the preamble.
put \cs{raggedright} \cs{arraybackslash} in the \env{tabular}'s
preamble for a column to ensure that \cs{\textbackslash} is always
interpreted as a tabular row separator when used in that column. And
@@ -641,6 +607,7 @@ error message for each missing glyph.
Later, in January 2021, Petr Olšák suggested yet another extension:
a new primitive
%%FMi (avoid hyphenation)
+%%CCC OK.
\mbox{parameter}
%
\cs{tracingstacklevels} that, when both it and \cs{tracingmacros} are
@@ -651,6 +618,7 @@ the current macro nesting level
%%FMi to
within %%FMi in, as part of ?
the tracing information.
+%%CCC ??? ENAIL SENT Monday 17th
Both these changes have now been added to \LaTeX's debugging macros
\cs{tracingall} and \cs{tracingnone}, so that these two new extensions
@@ -720,6 +688,7 @@ The kernel therefore now permanently adds these \enquote{color groups}.
%%CCC All new! Maybe needs a different (url) ref.
%%FMi lots of changes -> David to review
+%%CCC Moved orginal to bottom.
\subsection{Provide the raw option list to key/value option handlers}
Before any further processing of the option list, the original
@@ -733,75 +702,32 @@ been changed.
Further details, including a related change affecting a low-level
error message in the standard processing, can be found in the
documented sources~\cite{33:source2e}.
-%%CCC
-%
-%%FMi \iffalse
-%%FMi option handler ammended to save \@raw at opt@... in addition to \opt at ...
-%%FMi so that it is available for extended option handlers
-%%FMi
-%%FMi \subsection[Providing the raw option list of packages or documentclass
-%%FMi to key/value handlers]
-%%FMi {Providing the raw option list of packages or documentclass\\
-%%FMi \mbox\quad to key/value handlers}
-%%FMi
-%%FMi \LaTeXe{} has always normalized space in option lists so\\
-%%FMi \verb|\documentclass[ a4paper , 12pt ]{article}|\\
-%%FMi processed the intended options \texttt{a4paper} and \texttt{12pt}.
-%%FMi
-%%FMi Unfortunately the mechanism used was designed for the simple option
-%%FMi names of the standard option processing. Many classes and packages
-%%FMi now use extended \emph{keyval} processing, however this white space
-%%FMi normalization makes this difficult:
-%%FMi \verb|[bb=1 2 3 4]|
-%%FMi which might be expected to pass a bounding box of four numbers is
-%%FMi normalized to \texttt{bb=1234} and
-%%FMi \verb|[bb={1 2 3 4}]|\\
-%%FMi which might be expected to quote the spaces results in low level \TeX{}
-%%FMi parsing errors.
-%%FMi
-%%FMi
-%%FMi For compatibility reasons, the standard option processing has not been
-%%FMi changed however the original un-normalized package and class option lists
-%%FMi are now saved. They are not used in the standard processing, however
-%%FMi extended package option systems may use these \enquote{raw} option list
-%%FMi macros if they are defined.
-%%FMi
-%%FMi
-%%FMi The one change affecting the standard processing is that the low level
-%%FMi error mentioned above is now avoided as values (any tokens to the
-%%FMi right of an = sign) are removed from consideration from the
-%%FMi \enquote{unused option list}. In this release \texttt{clip=true} and
-%%FMi \texttt{clip=false} both contribute \texttt{clip} to the list of
-%%FMi options that have been used.
-%%FMi \fi
%
\githubissue{85}
+\subsection{New for \pkg{latexrelease}: \cs{NewModuleRelease}}
-%%FMi \subsection{Extending \pkg{latexrelease} to declare an entire module}
-\subsection{Extend \pkg{latexrelease} to declare entire modules}
-
-To explain the need for this, we shall consider the following example:
+To explain the need for this new feature %%CCC
+we shall consider the following example:
in the 2020-10-01 release, \LaTeX's new hook management system was
added to the kernel (see \cite{33:ltnews32}) and, as with all changes
to the kernel, it was added to \pkg{latexrelease}; this made it
possible to roll back to a date where this module didn't yet exist, or
to roll forward from an older \LaTeX{} release to get the hook
-management system (by loading the \pkg{latexrelease} package).
+management system (by loading the \pkg{latexrelease} package). \cs{NewModuleRelease}
%
However, this method of rolling back from a later release to the
2020-10-01 release didn't quite work because it would try to define
-all the commands from \pkg{lthooks} again;
-and this %%FMi of
+all the commands from \pkg{lthooks} again; and this
would of course result in the expected errors from commands defined
with \cs{newcommand} or (as in the case of \pkg{lthooks})
\cs{cs\_new:Npn}.
To solve such issues, we now provide \cs{NewModuleRelease}
-so that %%FMi complete %%CCC ??
-completely
-new modules can be defined in \pkg{latexrelease} in such a way that,
+so that completely
+new modules can be defined using the facilities of %%CCC Is this ckearer?
+\pkg{latexrelease} in such a way that,
when rolling back or forward, the system will know whether the code of
the new module has to be read or completely ignored. More details on
this can be found in the \pkg{latexrelease} documentation (get this
@@ -810,7 +736,6 @@ with \verb|texdoc latexrelease|).
\githubissue{479}
-
\subsection{Small fix for rolling back prior to 2020-02-02}
Whereas the \pkg{latexrelease} package can usually emulate an older
@@ -826,12 +751,6 @@ ends.
-
-
-
-
-
-
\section{Changes to packages in the \pkg{graphics} category}
@@ -839,11 +758,13 @@ ends.
A previous release sometimes mistakenly caused a
(false) warning message
-to appear when loading a graphics
%%FMi I think this needs to be kept:
%%FMi file with an unknown extension.
%%FMi %%CCC through a generic graphics rule.
-file with an unknown extension through a generic graphics rule.
+%%CCC Try again: does this make sense now?
+to appear when using a generic graphics rule to fnd and load a graphics
+file with an unknown extension.
+%% a generic graphics rule.
%
The warning would incorrectly say that the file was not found, whereas
the file would in fact be correctly loaded. The warning now doesn't
@@ -884,9 +805,7 @@ The fix for this issue was also applied to these packages, see above.
\subsection{\pkg{longtable}: General bug fix update}
-This is a minor update to the \pkg{longtable} package that fixes
-%%FMi
-several
+This is a minor update to the \pkg{longtable} package that fixes several
reported bugs: notably the possibility of incorrect page breaks when
floats appear on the page where a \env{longtable} starts. As this may
affect page breaking in existing documents, a rollback to
@@ -896,7 +815,6 @@ affect page breaking in existing documents, a rollback to
\githubissue{133 183 464 561}
-
\subsection{\pkg{trace}: Additions to \cs{traceon}}
The \cs{tracingstacklevels} and \cs{tracinglostchars} extensions to
@@ -907,8 +825,6 @@ debugging possibilities.
\githubissue{524}
-
-
\subsection{\pkg{bm}: Better support for commands with optional arguments}
Some uses of optional arguments that were supported by \cs{bm} stopped
being supported (in 2004) when \cs{kernel at ifnextchar} was used
@@ -921,9 +837,9 @@ In addition, package options for guiding the use of \enquote{poor
%
\githubissue{554}
-\section{Changes to packages in the \pkg{amsmath} category}
-%\subsection{\pkg{amsmath}: Make \cs{\textbackslash} generally robust}
+
+\section{Changes to packages in the \pkg{amsmath} category}
The fix for issue 548 was also applied in \pkg{amsmath}, see above.
%
@@ -953,3 +869,69 @@ The fix for issue 548 was also applied in \pkg{amsmath}, see above.
\end{document}
+
+\iffalse
+%%CCC For Chris' local system
+
+\usepackage[utf8]{inputenc}
+\def\githubissue #1{\par\noindent{\small\sl
+ (https://github.com/latex3/latex2e/issues/ #1)}}
+\def\gnatsissue #1#2{\par\noindent{\small\sl (https://www.latex-project.org/cgi-bin/\\
+ ltxbugs2html?pr=#1\%2F #2)}}
+
+%%FMi This is the subsubsection from the class (for reference) unchanged
+\makeatletter
+% maybe not the greatest design but normally we wouldn't have subsubsections
+\renewcommand{\subsubsection}{%
+ \@startsection
+ {subsubsection}{2}{\leftmargini}{-1.5ex \@plus -1ex \@minus -.2ex}%
+ {1sp}{\@subheadingfont}%
+}
+\makeatother
+\fi
+
+%
+%%FMi \iffalse
+%%CCC All new! Maybe needs a different (url) ref.
+%%FMi lots of changes -> David to review
+%%CCC Good idea! If he thinks all the background needs to go back
+%%CCC in then he will have to rewrite it so that I can understand all
+%%CCC the details and how the story fits together. :-)
+%%FMi option handler ammended to save \@raw at opt@... in addition to \opt at ...
+%%FMi so that it is available for extended option handlers
+%%FMi
+%%FMi \subsection[Providing the raw option list of packages or documentclass
+%%FMi to key/value handlers]
+%%FMi {Providing the raw option list of packages or documentclass\\
+%%FMi \mbox\quad to key/value handlers}
+%%FMi
+%%FMi \LaTeXe{} has always normalized space in option lists so\\
+%%FMi \verb|\documentclass[ a4paper , 12pt ]{article}|\\
+%%FMi processed the intended options \texttt{a4paper} and \texttt{12pt}.
+%%FMi
+%%FMi Unfortunately the mechanism used was designed for the simple option
+%%FMi names of the standard option processing. Many classes and packages
+%%FMi now use extended \emph{keyval} processing, however this white space
+%%FMi normalization makes this difficult:
+%%FMi \verb|[bb=1 2 3 4]|
+%%FMi which might be expected to pass a bounding box of four numbers is
+%%FMi normalized to \texttt{bb=1234} and
+%%FMi \verb|[bb={1 2 3 4}]|\\
+%%FMi which might be expected to quote the spaces results in low level \TeX{}
+%%FMi parsing errors.
+%%FMi
+%%FMi
+%%FMi For compatibility reasons, the standard option processing has not been
+%%FMi changed however the original un-normalized package and class option lists
+%%FMi are now saved. They are not used in the standard processing, however
+%%FMi extended package option systems may use these \enquote{raw} option list
+%%FMi macros if they are defined.
+%%FMi
+%%FMi
+%%FMi The one change affecting the standard processing is that the low level
+%%FMi error mentioned above is now avoided as values (any tokens to the
+%%FMi right of an = sign) are removed from consideration from the
+%%FMi \enquote{unused option list}. In this release \texttt{clip=true} and
+%%FMi \texttt{clip=false} both contribute \texttt{clip} to the list of
+%%FMi options that have been used.
+%%FMi \fi
More information about the latex3-commits
mailing list.