diff options
author | Karl Berry <karl@freefriends.org> | 2020-08-07 21:37:39 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-08-07 21:37:39 +0000 |
commit | d6a7e0e5536b4924edec286797ed38021b94509d (patch) | |
tree | 04407161e6a03a0698d3029183d3959a762a0bb2 /Master/texmf-dist/source/latex/l3kernel | |
parent | 5a14bab00bc59f46bdb92dcfc08ca2d331e3c3ec (diff) |
l3 (7aug20)
git-svn-id: svn://tug.org/texlive/trunk@56067 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel')
59 files changed, 628 insertions, 1560 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx index e1a36c6db56..85284e594ac 100644 --- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx @@ -24,7 +24,7 @@ % %<*driver|generic|package|2ekernel> %</driver|generic|package|2ekernel> -\def\ExplFileDate{2020-07-17}% +\def\ExplFileDate{2020-08-07}% %<*driver> \documentclass[full]{l3doc} \usepackage{graphicx} @@ -51,7 +51,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -798,16 +798,14 @@ % % \section{The distribution} % -% At present, the \pkg{expl3} modules are designed to be loaded on top -% of \LaTeXe{}. In time, a \LaTeX3 format may be produced based on this -% code. +% The \pkg{expl3} modules are designed to be loaded on top of \LaTeXe{}. % % \begin{bfseries} -% While \pkg{expl3} is still experimental, the bundle is now regarded -% as broadly stable. The syntax conventions and functions provided +% The core \pkg{expl3} language is broadly stable, and thus +% the syntax conventions and functions provided % are now ready for wider use. There may still be changes to some % functions, but these will be minor when compared to the scope of -% \pkg{expl3}. +% \pkg{expl3}. A robust mechanism is in place for such deprecations. % \end{bfseries} % % The distribution of \pkg{expl3} is split up into three packages on @@ -821,7 +819,9 @@ % and any changes in this code are very limited. This material is % therefore suitable for use in third-party packages without concern % about changes in support. All of this code is documented in -% \texttt{interface3.pdf}. +% \texttt{interface3.pdf}. With an up-to-date \LaTeXe{} kernel, this +% code is built into the format file and therefore can be used +% without any further steps. % % The material in \pkg{l3packages} is also stable, but is not always % at a programming level: most notably, \pkg{xparse} is stable and @@ -834,9 +834,9 @@ % in terms of interface and functionality detail. Feedback on these % modules is extremely valuable. % -% \section{Moving from \LaTeXe{} to \LaTeX3} +% \section{Moving from \LaTeXe{} to \pkg{expl3}} % -% To help programmers to use \LaTeX3 code in existing \LaTeXe{} package, +% To help programmers to use \pkg{expl3} code in existing \LaTeXe{} package, % some short notes on making the change are probably desirable. % Suggestions for inclusion here are welcome! Some of the following % is concerned with code, and some with coding style. @@ -845,11 +845,10 @@ % \item \pkg{expl3} is mainly focused on programming. This means that % some areas still require the use of \LaTeXe{} internal macros. % For example, you may well need \tn{@ifpackageloaded}, as there -% is currently no native \LaTeX3 package loading module. +% is currently no native \pkg{expl3} package loading module. % \item User level macros should be generated using the mechanism % available in the \pkg{xparse} package, which is part of the -% \texttt{l3package} bundle, available from CTAN or the \LaTeX3 SVN -% repository. +% \texttt{l3package} bundle. % \item At an internal level, most functions should be generated % \tn{long} (using \cs{cs_new:Npn}) rather than \enquote{short} (using % \cs{cs_new_nopar:Npn}). @@ -894,7 +893,7 @@ % updated in time. % % \DescribeOption{check-declarations} -% All variables used in \LaTeX3 code should be declared. This is enforced +% All variables used in \pkg{expl3} code should be declared. This is enforced % by \TeX{} for variable types based on \TeX{} registers, but not for those % which are constructed using macros as the underlying storage system. The % \texttt{check-declarations} option enables checking for all variable @@ -907,7 +906,7 @@ % function name in the \texttt{.log} file. This is useful for debugging % purposes, as it means that there is a complete list of all functions % created by each module loaded (with the exceptions of a very small number -% required by the bootstrap code for \LaTeX3). See also \cs{debug_on:n} +% required by the bootstrap code). See also \cs{debug_on:n} % \texttt{\{log-functions\}} in \pkg{l3candidates} for finer control. % % \DescribeOption{enable-debug} @@ -936,6 +935,12 @@ % This option is available to support DVI-based routes that do not % support the |header| line used by \texttt{dvips}. % +% The debugging options may also be given using +% \verb|\keys_set:nn { sys } { ... }|; the \texttt{backend} option can be +% given in this way \emph{only} if a backend has not already been loaded. +% This method of setting options is useful where \pkg{expl3} is pre-loaded +% by the \LaTeXe{} format. +% % \section{Using \pkg{expl3} with formats other than \LaTeXe{}} % % As well as the \LaTeXe{} package \pkg{expl3}, there is also a @@ -1047,6 +1052,24 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\c__kernel_expl_date_tl} +% The \LaTeXe{} loader stores a private copy of \cs{ExplFileDate}, +% which is fixed when the format is build and cannot be changed later. +% While \cs{ExplFileDate} ensures that the loader (either +% \texttt{2ekernel} or \texttt{package}) version matches the version +% of \file{expl3-code.tex}, this one ensures that the version of an +% eventual |\usepackage{expl3}| matches the version from the format. +% It seems to be common to have stray format files in the user tree +% which trigger errors due to mismatched versions (\emph{e.g.} +% \url{https://github.com/latex3/latex3/issues/781}). +% \begin{macrocode} +%<*2ekernel> +\global\expandafter\let\csname\detokenize + {c__kernel_expl_date_tl}\endcsname\ExplFileDate +%</2ekernel> +% \end{macrocode} +% \end{macro} +% % The interlock test itself is simple: \cs{ExplLoaderFileDate} must be % defined and identical to \cs{ExplFileDate}. As this has to work for % both \LaTeXe{} and other formats, there is some auto-detection involved. @@ -1220,6 +1243,88 @@ %<@@=expl> % \end{macrocode} % +% Several times users reported this error when loading \pkg{expl3}: +% \begin{verbatim} +% ! Undefined control sequence. +% l.67 \bool +% _new:N \g__expl_reload_bool +% \end{verbatim} +% raised in the reload block below. This happens because the reload +% check below assumes that if the boolean \cs{g_@@_reload_bool} doesn't +% exist, this file is being loaded for the first time, and \pkg{expl3} +% syntax is on. This is a bit of a stretch for assumptions, but it's +% valid as long as everything's in sync. However the problem reported +% happened because of a stray format file in the user tree which didn't +% have the reload code defined here (commit \texttt{1d16336}), so the +% \cs{g_@@_reload_bool} doesn't exist, but \pkg{expl3} syntax is off, +% thus the error. +% +% At this point, if we have \cs{c__kernel_expl_date_tl} defined, the +% situation is straightforward: if it matches \cs{ExplLoaderFileDate}, +% then everything's as expected, so no need to worry. If it doesn't, +% then the current version of \pkg{expl3} differs from the one in the +% format, so raise a fatal error: the bahaviour is too unpredictable to +% continue safely. Also, if the error is to be raised, then we're +% reloading, which means that \pkg{expl3} syntax is off, so we turn it +% on for the message. +% \begin{macrocode} +\ifcsname\detokenize{c__kernel_expl_date_tl}\endcsname + \expandafter\ifx\csname\detokenize + {c__kernel_expl_date_tl}\endcsname\ExplLoaderFileDate + \else + \ExplSyntaxOn + \__kernel_msg_set:nnn { kernel } { mismatched-expl3 } + { + Mismatched~expl3~detected!~Loading~expl3~will~abort. + \\ \\ + The~version~of~expl3~preloaded~in~LaTeX~is~ + \c__kernel_expl_date_tl,~but~the~version~of~expl3~you~are~ + trying~to~load~is~dated~\ExplLoaderFileDate.~This~is~most~ + likely~due~to~a~stray~format~file~in~the~user~tree.~Please~ + make~sure~that~your~LaTeX~format~is~updated. + } + \exp_after:wN \ExplSyntaxOff \use:n + { + \__kernel_msg_critical:nn { kernel } { mismatched-expl3 } + \use:c { fi: } \use:c { fi: } + } + \fi +% \end{macrocode} +% If \cs{c__kernel_expl_date_tl} does \emph{not} exist, then we're on +% uncharted lands (that is, any time prior to the version that +% introduced this token list :-). Two cases might be here, depending +% whether \pkg{expl3} is loaded into the kernel or not. If we're loading +% \pkg{expl3} \enquote{normally} as a package, \pkg{expl3} syntax is on. +% Otherwise it's already loaded in the kernel and we're reloading +% \file{expl3.sty} so (\file{expl3-code.tex} doesn't load again and) +% \pkg{expl3} syntax is off. +% \begin{macrocode} +\else + \ifodd\csname\detokenize{l__kernel_expl_bool}\endcsname +% \end{macrocode} +% Package mode; all should be fine, since \file{expl3.sty} and +% \file{expl3-code.tex} are both loaded in one go, so versions should +% match (if they don't, it's detected above). +% Also, we've just tested that \pkg{expl3} syntax is on, so the reload +% test below will return false and \cs{bool_new:N} will run correctly. +% \begin{macrocode} + \else +% \end{macrocode} +% In this branch we're reloading, but there are still two cases to +% consider (sigh\ldots); whether the version preloaded in the format +% is recent enough to have \cs{g_@@_reload_bool} (2020-06-18 and +% later) or not. If the boolean is there, we have to do nothing +% because right ahead we deal with this case. +% If it is not, we just have to create it: +% \begin{macrocode} + \ExplSyntaxOn + \bool_if_exist:NF \g_@@_reload_bool + { \bool_new:N \g_@@_reload_bool } + \ExplSyntaxOff + \fi +\fi +% \end{macrocode} +% % Here we can also detect whether we're reloading. This code goes into % \texttt{expl3.ltx} and \texttt{expl3.sty}, the former loaded into the % \LaTeXe{} format. When this code is loaded for the first time, the diff --git a/Master/texmf-dist/source/latex/l3kernel/l3.ins b/Master/texmf-dist/source/latex/l3kernel/l3.ins index e54fe0cb51c..5e7d1bfff91 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3.ins +++ b/Master/texmf-dist/source/latex/l3kernel/l3.ins @@ -58,9 +58,7 @@ and all files in that bundle must be distributed together. { \file{expl3-code.tex} { - % ======== PACKAGE ONLY ======== \from{expl3.dtx} {package} - % ============================== \from{l3bootstrap.dtx} {package} \from{l3names.dtx} {package} \from{l3basics.dtx} {package} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx deleted file mode 100644 index 8f60b563f75..00000000000 --- a/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx +++ /dev/null @@ -1,195 +0,0 @@ -% \iffalse meta-comment -% -%% File: l3alloc.dtx -% -% Copyright (C) 1990-2012,2014-2020 The LaTeX3 Project -% -% It may be distributed and/or modified under the conditions of the -% LaTeX Project Public License (LPPL), either version 1.3c of this -% license or (at your option) any later version. The latest version -% of this license is in the file -% -% https://www.latex-project.org/lppl.txt -% -% This file is part of the "l3kernel bundle" (The Work in LPPL) -% and all files in that bundle must be distributed together. -% -% ----------------------------------------------------------------------- -% -% The development version of the bundle can be found at -% -% https://github.com/latex3/latex3 -% -% for those people who are interested. -% -%<*driver> -\documentclass[full,kernel]{l3doc} -\begin{document} - \DocInput{\jobname.dtx} -\end{document} -%</driver> -% \fi -% -% \title{^^A -% The \pkg{l3alloc} package\\ Register allocation^^A -% } -% -% \author{^^A -% The \LaTeX3 Project\thanks -% {^^A -% E-mail: -% \href{mailto:latex-team@latex-project.org} -% {latex-team@latex-project.org}^^A -% }^^A -% } -% -% \date{Released 2020-07-17} -% -% \maketitle -% -% \begin{documentation} -% -% This module provides the basic mechanism for allocating \TeX{}'s -% registers when operating in format mode. When loaded as a package on -% an existing format, the mechanisms from the latter are used. -% -% The approach used here is informed by the mechanisms used in plain -% \TeX{}/\LaTeX{} but noting that newer engines provide us much more -% flexibility. In addition to this, we do not need allocators for all -% register types: for example \texttt{toks} are not used by \LaTeX3 whilst -% reads/writes are handled using a pool and thus do not need a classical -% allocator. -% -% In classical (non-\LuaTeX{}) engines, there are various restriction on -% registers, for example |\box255| is hard-coded as the output box and -% inserts have to be allocated below this (not in the extended pool). Rather -% than worry about this, allocations for the registers affected (\TeX{} -% |box|, |count|, |dimen| and |skip| types) are simply made only from the -% extended pool. (There is a performance impact in engines other than -% \LuaTeX{} but the free use of registers in \pkg{expl3} means that code -% cannot be sure of obtaining a low-numbered register in any case.) -% -% \end{documentation} -% -% \begin{implementation} -% -% \section{\pkg{l3alloc} implementation} -% -% \begin{macrocode} -%<*initex> -% \end{macrocode} -% -% \begin{macrocode} -%<@@=alloc> -% \end{macrocode} -% -% \begin{variable} -% { -% \g_@@_int_int , -% \g_@@_dim_int , -% \g_@@_muskip_int , -% \g_@@_int_int , -% \g_@@_box_int -% } -% The core register tracking is done using the same raw \TeX{} count -% registers as reserved by plain \TeX{} and \LaTeXe{}, as there may be the -% odd piece of generic code that needs to work by number. However, as not -% all of our variables work the same way, some of the older registers are -% simply ignored. For the same reason, there is no special status for the -% low-numbers registers other than counts. To avoid having to worry about -% inserts and reflecting the register availability in \eTeX{}, the lower -% register space is unused here (though is available for hard-coded -% use). -% \begin{macrocode} -\tex_countdef:D \g_@@_int_int = 10 ~ -\tex_countdef:D \g_@@_dim_int = 11 ~ -\tex_countdef:D \g_@@_skip_int = 12 ~ -\tex_countdef:D \g_@@_muskip_int = 13 ~ -\tex_countdef:D \g_@@_box_int = 14 ~ -\g_@@_int_int = 255 ~ -\g_@@_dim_int = 255 ~ -\g_@@_skip_int = 255 ~ -\g_@@_muskip_int = 0 ~ -\g_@@_box_int = 255 ~ -% \end{macrocode} -% \end{variable} -% -% \begin{variable} -% { -% \g_@@_attribute_int , -% \g_@@_bytecode_int , -% \g_@@_chunkname_int , -% \g_@@_whatsit_int -% } -% To allow \LuaTeX{} to load |ltluatex.lua| for generic \Lua{} support, a -% small number of counts have to be correctly named at the \TeX{} level. -% At present there are no \pkg{expl3} allocators for these concepts so the -% names and numbers of the tracking variables may change. -% \begin{macrocode} -\tex_ifdefined:D \tex_luatexversion:D - \tex_global:D \tex_countdef:D \g_@@_attribute_int = 21 ~ - \tex_global:D \tex_countdef:D \g_@@_bytecode_int = 22 ~ - \tex_global:D \tex_countdef:D \g_@@_chunkname_int = 23 ~ - \tex_global:D \tex_countdef:D \g_@@_whatsit_int = 24 ~ -\tex_fi:D -% \end{macrocode} -% \end{variable} -% -% \begin{macro} -% {\box_new:N, \dim_new:N, \int_new:N, \muskip_new:N \skip_new:N} -% Each of the public allocators is a wrapper around the one internal -% function needed here. -% \begin{macrocode} -\cs_new_protected:Npx \box_new:N #1 - { - \exp_not:N \@@_reg:nNnN { box } - \cs_if_exist:NTF \tex_luatexversion:D - { \tex_chardef:D } - { - \cs_if_exist:NTF \tex_omathchardef:D - { \tex_omathchardef:D } - { \tex_mathchardef:D } - } - \c_max_register_int - #1 - } -\cs_new_protected:Npn \dim_new:N #1 - { \@@_reg:nNnN { dim } \tex_dimendef:D \c_max_register_int #1 } -\cs_new_protected:Npn \int_new:N #1 - { \@@_reg:nNnN { int } \tex_countdef:D \c_max_register_int #1 } -\cs_new_protected:Npn \muskip_new:N #1 - { \@@_reg:nNnN { muskip } \tex_muskipdef:D \c_max_register_int #1 } -\cs_new_protected:Npn \skip_new:N #1 - { \@@_reg:nNnN { skip } \tex_skipdef:D \c_max_register_int #1 } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@@_reg:nNNN} -% The allocator itself is modelled somewhat on \LaTeXe{}'s \tn{e@alloc}, -% though there is no need to set \tn{allocationnumber}. -% \begin{macrocode} -\cs_new_protected:Npn \@@_reg:nNnN #1#2#3#4 - { - \__kernel_chk_if_free_cs:N #4 - \int_compare:nNnTF { \int_use:c { g_@@_ #1 _int } } < {#3} - { - \int_gincr:c { g_@@_ #1 _int } - \tex_global:D #2 #4 \int_use:c { g_@@_ #1 _int } - \iow_log:x - { - \token_to_str:N #4 ~=~ #1 ~register~ - \int_use:c { g_@@_ #1 _int } - } - } - { \__kernel_msg_fatal:nnx { kernel } { out-of-registers } {#1} } - } -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -%</initex> -% \end{macrocode} -% -% \end{implementation} -% -% \PrintIndex diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx index 3cee7e2e9e0..ba422a79612 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -1339,7 +1339,7 @@ % \section{\pkg{l3basics} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \subsection{Renaming some \TeX{} primitives (again)} @@ -3277,7 +3277,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx index 5043d39d569..cf749116d62 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -53,9 +53,7 @@ % % The modules documented in \file{source3} are designed to be used on top of % \LaTeXe{} and are loaded all as one with the usual |\usepackage{expl3}| or -% |\RequirePackage{expl3}| instructions. These modules will also form the -% basis of the \LaTeX3 format, but work in this area is incomplete and not -% included in this documentation at present. +% |\RequirePackage{expl3}| instructions. % % As the modules use a coding syntax different from standard % \LaTeXe{} it provides a few functions for setting it up. @@ -123,43 +121,11 @@ % \section{\pkg{l3bootstrap} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> %<@@=kernel> % \end{macrocode} % -% \subsection{Format-specific code} -% -% The very first thing to do is to bootstrap the \IniTeX{} system so -% that everything else will actually work. \TeX{} does not start with -% some pretty basic character codes set up. -% \begin{macrocode} -%<*initex> -\catcode `\{ = 1 % -\catcode `\} = 2 % -\catcode `\# = 6 % -\catcode `\^ = 7 % -%</initex> -% \end{macrocode} -% -% Tab characters should not show up in the code, but to be on the -% safe side. -% \begin{macrocode} -%<*initex> -\catcode `\^^I = 10 % -%</initex> -% \end{macrocode} -% -% For \LuaTeX{}, the extra primitives need to be enabled. This is not needed -% in package mode: common formats have the primitives enabled. -% \begin{macrocode} -%<*initex> -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname directlua\endcsname\relax -\else - \directlua{tex.enableprimitives("", tex.extraprimitives())}% -\fi -%</initex> -% \end{macrocode} +% \subsection{\LuaTeX{}-specific code} % % Depending on the versions available, the \LaTeX{} format may not have % the raw |\Umath| primitive names available. We fix that globally: @@ -169,7 +135,6 @@ % a newer format anyway and as they all start |\U| this should be % reasonably safe. % \begin{macrocode} -%<*package> \begingroup \expandafter\ifx\csname directlua\endcsname\relax \else @@ -187,7 +152,6 @@ }% \fi \endgroup -%</package> % \end{macrocode} % % \subsection{The \tn{pdfstrcmp} primitive in \XeTeX{}} @@ -215,15 +179,13 @@ \ifnum\luatexversion<95 % \else % \end{macrocode} -% In package mode for \LuaTeX{} we make sure the basic support is loaded: +% For \LuaTeX{} we make sure the basic support is loaded: % this is only necessary in plain. % \begin{macrocode} -%<*package> \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname newcatcodetable\endcsname\relax \input{ltluatex}% \fi -%</package> \directlua{require("expl3")}% % \end{macrocode} % As the user might be making a custom format, no assumption is made about @@ -289,24 +251,6 @@ \fi =0 % \newlinechar`\^^J % -%<*initex> - \def\LineBreak{^^J}% - \edef\next - {% - \errhelp - {% - \LongText - For pdfTeX and XeTeX the '-etex' command-line switch is also - needed.\LineBreak - \LineBreak - Format building will abort!\LineBreak - }% - \errmessage{\ShortText}% - \endgroup - \noexpand\end - }% -%</initex> -%<*package> \def\LineBreak{\noexpand\MessageBreak}% \expandafter\ifx\csname PackageError\endcsname\relax \def\LineBreak{^^J}% @@ -323,18 +267,14 @@ \endgroup \noexpand\endinput }% -%</package> \fi \next % \end{macrocode} % % \subsection{Extending allocators} % -% In format mode, allocating registers is handled by \pkg{l3alloc}. However, in -% package mode it's much safer to rely on more general code. For example, -% the ability to extend \TeX{}'s allocation routine to allow for \eTeX{} has +% The ability to extend \TeX{}'s allocation routine to allow for \eTeX{} has % been around since 1997 in the \pkg{etex} package. -% % Loading this support is delayed until here as we are now sure that the % \eTeX{} extensions and \tn{pdfstrcmp} or equivalent are available. Thus % there is no danger of an \enquote{uncontrolled} error if the engine @@ -353,7 +293,6 @@ % here is done using a group and \tn{ifx} test as we are not quite in the % position to have a single name for \tn{pdfstrcmp} just yet. % \begin{macrocode} -%<*package> \begingroup \def\@tempa{LaTeX2e}% \def\next{}% @@ -368,98 +307,6 @@ \fi \expandafter\endgroup \next -%</package> -% \end{macrocode} -% -% \subsection{Character data} -% -% \TeX{} needs various pieces of data to be set about characters, in particular -% which ones to treat as letters and which \tn{lccode} values apply as these -% affect hyphenation. It makes most sense to set this and related information -% up in one place. Whilst for \LuaTeX{} hyphenation patterns can be read -% anywhere, other engines have to build them into the format and so we -% \emph{must} do this set up before reading the patterns. For the Unicode -% engines, there are shared loaders available to obtain the relevant -% information directly from the Unicode Consortium data files. These need -% standard (Ini)\TeX{} category codes and primitive availability and must -% therefore loaded \emph{very} early. This has a knock-on effect on the -% $8$-bit set up: it makes sense to do the definitions for those here as -% well so it is all in one place. -% -% For \XeTeX{} and \LuaTeX{}, which are natively Unicode engines, simply -% load the Unicode data. -% \begin{macrocode} -%<*initex> -\ifdefined\Umathcode - \input load-unicode-data % - \input load-unicode-math-classes % -\else -% \end{macrocode} -% For the $8$-bit engines a font encoding scheme must be chosen. At present, -% this is the EC (|T1|) scheme, with the assumption that languages for which -% this is not appropriate will be used with one of the Unicode engines. -% \begin{macrocode} - \begingroup -% \end{macrocode} -% Lower case chars: map to themselves when lower casing and down by |"20| when -% upper casing. (The characters |a|--|z| are set up correctly by \IniTeX{}.) -% \begin{macrocode} - \def\temp{% - \ifnum\count0>\count2 % - \else - \global\lccode\count0 = \count0 % - \global\uccode\count0 = \numexpr\count0 - "20\relax - \advance\count0 by 1 % - \expandafter\temp - \fi - } - \count0 = "A0 % - \count2 = "BC % - \temp - \count0 = "E0 % - \count2 = "FF % - \temp -% \end{macrocode} -% Upper case chars: map up by |"20| when lower casing, to themselves when upper -% casing and require an \tn{sfcode} of $999$. (The characters |A|--|Z| are set -% up correctly by \IniTeX{}.) -% \begin{macrocode} - \def\temp{% - \ifnum\count0>\count2 % - \else - \global\lccode\count0 = \numexpr\count0 + "20\relax - \global\uccode\count0 = \count0 % - \global\sfcode\count0 = 999 % - \advance\count0 by 1 % - \expandafter\temp - \fi - } - \count0 = "80 % - \count2 = "9C % - \temp - \count0 = "C0 % - \count2 = "DF % - \temp -% \end{macrocode} -% A few special cases where things are not as one might expect using the above -% pattern: dotless-I, dotless-J, dotted-I and d-bar. -% \begin{macrocode} - \global\lccode`\^^Y = `\^^Y % - \global\uccode`\^^Y = `\I % - \global\lccode`\^^Z = `\^^Z % - \global\uccode`\^^Y = `\J % - \global\lccode"9D = `\i % - \global\uccode"9D = "9D % - \global\lccode"9E = "9E % - \global\uccode"9E = "D0 % -% \end{macrocode} -% Allow hyphenation at a zero-width glyph (used to break up ligatures or -% to place accents between characters). -% \begin{macrocode} - \global\lccode23 = 23 % - \endgroup -\fi -%</initex> % \end{macrocode} % % \subsection{The \LaTeX3 code environment} @@ -470,14 +317,11 @@ % Before changing any category codes, in package mode we need to save % the situation before loading. Note the set up here means that once applied % \cs{ExplSyntaxOff} becomes a \enquote{do nothing} command until -% \cs{ExplSyntaxOn} is used. For format mode, there is no need to save -% category codes so that step is skipped. +% \cs{ExplSyntaxOn} is used. % \begin{macrocode} -\protected\def\ExplSyntaxOff{}% -%<*package> \protected\edef\ExplSyntaxOff {% - \protected\def\ExplSyntaxOff{}% + \protected\def\noexpand\ExplSyntaxOff{}% \catcode 9 = \the\catcode 9\relax \catcode 32 = \the\catcode 32\relax \catcode 34 = \the\catcode 34\relax @@ -490,7 +334,6 @@ \endlinechar = \the\endlinechar\relax \chardef\csname\detokenize{l_@@_expl_bool}\endcsname = 0\relax }% -%</package> % \end{macrocode} % \end{macro} % @@ -560,7 +403,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx index e604fe5e4f8..8adeb3fb6d4 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -887,7 +887,7 @@ % \section{\pkg{l3box} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -917,13 +917,11 @@ % Defining a new \meta{box} register: remember that box $255$ is not % generally available. % \begin{macrocode} -%<*package> \cs_new_protected:Npn \box_new:N #1 { \__kernel_chk_if_free_cs:N #1 \cs:w newbox \cs_end: #1 } -%</package> \cs_generate_variant:Nn \box_new:N { c } % \end{macrocode} % @@ -2238,7 +2236,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx index d8d6bf68086..7e2cf8df90d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -690,7 +690,7 @@ % \section{\pkg{l3candidates} Implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \subsection{Additions to \pkg{l3box}} @@ -1638,7 +1638,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx index 25becd59fd2..a8c063b944f 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -169,7 +169,7 @@ % \section{\pkg{l3cctab} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -242,6 +242,8 @@ % % First, the \LuaTeX{} case. % Creating a new category code table is done like other registers. +% In Con\TeX{}t, \tn{newcatcodetable} does not include the initialisation, +% so that is added explicitly. % \begin{macrocode} \sys_if_engine_luatex:TF { @@ -250,25 +252,11 @@ \__kernel_chk_if_free_cs:N #1 \@@_new:N #1 } -%<*initex> \cs_new_protected:Npn \@@_new:N #1 { - \int_gincr:N \g_@@_allocate_int - \int_compare:nNnTF - \g_@@_allocate_int > \c_max_register_int - { - \__kernel_msg_fatal:nnx - { kernel } { out-of-registers } { cctab } - } - { - \tex_global:D \tex_chardef:D #1 \g_@@_allocate_int - \tex_initcatcodetable:D #1 - } + \newcatcodetable #1 + \tex_initcatcodetable:D #1 } -%</initex> -%<*package> - \cs_new_eq:NN \@@_new:N \newcatcodetable -%</package> } % \end{macrocode} % Now the case for other engines. Here, each table is an integer @@ -716,14 +704,14 @@ { \cs_new_protected:Npn \@@_chk_if_valid_aux:NTF #1 { -%<*initex> - \bool_lazy_and:nnTF - { \int_if_odd_p:n {#1} } - { \int_compare_p:nNn {#1-1} < { \g_@@_allocate_int } } -%</initex> -%<*package> \int_compare:nNnTF {#1-1} < { \e@alloc@ccodetable@count } -%</package> + } + \cs_if_exist:NT \c_syst_catcodes_n + { + \cs_gset_protected:Npn \@@_chk_if_valid_aux:NTF #1 + { + \int_compare:nTF { #1 <= \c_syst_catcodes_n } + } } } { @@ -883,7 +871,7 @@ % \end{macrocode} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx index da18711b6ea..f32ad49748b 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -762,7 +762,7 @@ % \TestFiles{m3clist002} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -2058,7 +2058,7 @@ % \end{variable} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx index 8c9f29e93b1..f828834daf4 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -408,7 +408,7 @@ % \section{\pkg{l3coffins} Implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -667,6 +667,7 @@ % \vcoffin_gset:Nnn, \vcoffin_gset:cnn % } % \begin{macro}{\@@_set_vertical:NnnNN} +% \begin{macro}{\@@_set_vertical_aux:} % Setting vertical coffins is more complex. First, the material is % typeset with a given width. The default handles and poles are set as % for a horizontal coffin, before finding the top baseline using a @@ -694,10 +695,7 @@ #4 #1 { \dim_set:Nn \tex_hsize:D {#2} -%<*package> - \dim_set_eq:NN \linewidth \tex_hsize:D - \dim_set_eq:NN \columnwidth \tex_hsize:D -%</package> + \@@_set_vertical_aux: #3 } #5 #1 @@ -715,9 +713,17 @@ \box_clear:N \l_@@_internal_box } } +\cs_new_protected:Npx \@@_set_vertical_aux: + { + \cs_if_exist:NT \linewidth + { \dim_set_eq:NN \linewidth \tex_hsize:D } + \cs_if_exist:NT \columnwidth + { \dim_set_eq:NN \columnwidth \tex_hsize:D } + } % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro} % {\hcoffin_set:Nw, \hcoffin_set:cw, \hcoffin_gset:Nw, \hcoffin_gset:cw} @@ -783,10 +789,7 @@ { #3 #1 \dim_set:Nn \tex_hsize:D {#2} -%<*package> - \dim_set_eq:NN \linewidth \tex_hsize:D - \dim_set_eq:NN \columnwidth \tex_hsize:D -%</package> + \@@_set_vertical_aux: \cs_set_protected:Npn #4 { #5 @@ -2233,17 +2236,48 @@ % flexible. % \begin{macrocode} \tl_new:N \l_@@_display_font_tl -%<*package> -\tl_set:Nn \l_@@_display_font_tl { \sffamily \tiny } -%</package> +\cs_if_exist:NTF \AtBeginDocument + { \AtBeginDocument } + { \use:n } + { + \tl_set:Nx \l_@@_display_font_tl + { + \cs_if_exist:NT \sffamily { \exp_not:N \sffamily } + \cs_if_exist:NT \tiny { \exp_not:N \tiny } + } + } % \end{macrocode} % \end{variable} % % \begin{macro}{\@@_color:n} % Calls \tn{color}, and otherwise does nothing if \tn{color} is not defined. % \begin{macrocode} -\cs_new_protected:Npn \@@_color:n #1 - { \cs_if_exist:NT \color { \color {#1} } } +\cs_if_exist:NTF \AtBeginDocument + { \AtBeginDocument } + { \use:n } + { + \cs_new_protected:Npx \@@_color:n #1 + { + \cs_if_exist:NTF \color_select:n + { \color_select:n {#1} } + { + \cs_if_exist:NT \color + { \exp_not:N \color {#1} } + } + } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@_rule:nn} +% Abstract out creation of rules here until there is a higher-level interface. +% \begin{macrocode} +\cs_new_protected:Npx \@@_rule:nn #1#2 + { + \cs_if_exist:NTF \rule + { \exp_not:N \rule {#1} {#2} } + { \hbox:n { \tex_vrule:D width #1 height #2 \scan_stop: } } + } % \end{macrocode} % \end{macro} % @@ -2259,21 +2293,14 @@ { \hcoffin_set:Nn \l_@@_display_pole_coffin { -%<*initex> - \hbox:n { \tex_vrule:D width 1pt height 1pt \scan_stop: } -%</initex> -%<*package> \@@_color:n {#4} - \rule { 1pt } { 1pt } -%</package> + \@@_rule:nn { 1pt } { 1pt } } \@@_attach_mark:NnnNnnnn #1 {#2} {#3} \l_@@_display_pole_coffin { hc } { vc } { 0pt } { 0pt } \hcoffin_set:Nn \l_@@_display_coord_coffin { -%<*package> \@@_color:n {#4} -%</package> \l_@@_display_font_tl ( \tl_to_str:n { #2 , #3 } ) } @@ -2325,13 +2352,8 @@ { \hcoffin_set:Nn \l_@@_display_pole_coffin { -%<*initex> - \hbox:n { \tex_vrule:D width 1pt height 1pt \scan_stop: } -%</initex> -%<*package> \@@_color:n {#2} - \rule { 1pt } { 1pt } -%</package> + \@@_rule:nn { 1pt } { 1pt } } \prop_set_eq:Nc \l_@@_display_poles_prop { coffin ~ \@@_to_value:N #1 ~ poles } @@ -2371,9 +2393,7 @@ { 0pt } { 0pt } \hcoffin_set:Nn \l_@@_display_coord_coffin { -%<*package> \@@_color:n {#6} -%</package> \l_@@_display_font_tl ( \tl_to_str:n { #1 , ##1 } ) } @@ -2511,7 +2531,7 @@ % \end{macrocode} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx index a01acb8fa1c..628a4c6f230 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -85,7 +85,7 @@ % \section{\pkg{l3color-base} Implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -138,9 +138,7 @@ % \begin{macrocode} \cs_new_protected:Npn \color_ensure_current: { -%<*package> \@@_backend_pickup:N \l_@@_current_tl -%</package> \@@_select:N \l_@@_current_tl } % \end{macrocode} @@ -162,7 +160,7 @@ \cs_new_protected:Npn \@@_select:N #1 { \exp_after:wN \@@_select:nn #1 } \cs_new_protected:Npn \@@_select:nn #1#2 - { \use:c { @@_backend_ #1 :n } {#2} } + { \use:c { @@_backend_select_ #1 :n } {#2} } % \end{macrocode} % \end{macro} % \end{macro} @@ -176,7 +174,7 @@ % \end{variable} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx index 632e62e58be..5f8f0b93e9f 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -119,7 +119,7 @@ % \section{\pkg{l3debug} Implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -1476,7 +1476,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx index 8faf8635049..10dae76668e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -86,7 +86,7 @@ % \section{\pkg{l3deprecation} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -836,7 +836,7 @@ % \end{macrocode} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx index 0954108c963..9e7498e265f 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx @@ -79,7 +79,7 @@ and all files in that bundle must be distributed together. % % \title{The \cls{l3doc} class} % \author{\Team} -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % \maketitle % \tableofcontents % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx index bf56cdd54f9..24a061d1925 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx index e9020851488..d2ef71dac4e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -937,7 +937,7 @@ % \section{\pkg{l3expan} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -2909,7 +2909,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx index 7ee7df53475..553c5419cbc 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -910,7 +910,7 @@ % \TestFiles{m3file001} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \subsection{Input operations} @@ -939,16 +939,9 @@ % % \begin{variable}{\g_@@_streams_seq} % A list of the currently-available input streams to be used as a -% stack. In format mode, all streams (from $0$ to~$15$) are -% available, while the package requests streams to \LaTeXe{} as they -% are needed (initially none are needed), so the starting point -% varies! +% stack. % \begin{macrocode} \seq_new:N \g_@@_streams_seq -%<*initex> -\seq_gset_split:Nnn \g_@@_streams_seq { , } - { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 } -%</initex> % \end{macrocode} % \end{variable} % @@ -970,7 +963,6 @@ % it holds the value of the \emph{last} stream allocated. % \begin{macrocode} \prop_new:N \g_@@_streams_prop -%<*package> \int_step_inline:nnn { 0 } { @@ -984,7 +976,6 @@ { \prop_gput:Nnn \g_@@_streams_prop {#1} { Reserved~by~format } } -%</package> % \end{macrocode} % \end{variable} % @@ -1043,7 +1034,7 @@ % \end{macro} % % \begin{macro}{\@@_new:N} -% In package mode, streams are reserved using \tn{newread} before they +% Streams are reserved using \tn{newread} before they % can be managed by \pkg{ior}. To prevent \pkg{ior} from being % affected by redefinitions of \tn{newread} (such as done by the % third-party package \pkg{morewrites}), this macro is saved here @@ -1053,7 +1044,6 @@ % that \tn{newread} works like our own: it actually checks before % altering definition. % \begin{macrocode} -%<*package> \exp_args:NNf \cs_new_protected:Npn \@@_new:N { \exp_args:NNc \exp_after:wN \exp_stop_f: { newread } } \cs_if_exist:NT \normalend @@ -1065,15 +1055,13 @@ \@@_new_aux:N #1 } } -%</package> % \end{macrocode} % \end{macro} % % \begin{macro}{\__kernel_ior_open:Nn, \__kernel_ior_open:No} % \begin{macro}{\@@_open_stream:Nn} % The stream allocation itself uses the fact that there is a list of all of -% those available, so allocation is simply a question of using the number at -% the top of the list. In package mode, life gets more complex as it's +% those available. Life gets more complex as it's % important to keep things in sync. That is done using a two-part approach: % any streams that have already been taken up by \pkg{ior} but are now free % are tracked, so we first try those. If that fails, ask plain \TeX{} or \LaTeXe{} @@ -1084,16 +1072,11 @@ \ior_close:N #1 \seq_gpop:NNTF \g_@@_streams_seq \l_@@_stream_tl { \@@_open_stream:Nn #1 {#2} } -%<*initex> - { \__kernel_msg_fatal:nn { kernel } { input-streams-exhausted } } -%</initex> -%<*package> { \@@_new:N #1 \tl_set:Nx \l_@@_stream_tl { \int_eval:n {#1} } \@@_open_stream:Nn #1 {#2} } -%</package> } \cs_generate_variant:Nn \__kernel_ior_open:Nn { No } % \end{macrocode} @@ -1392,20 +1375,9 @@ % % \begin{variable}{\g_@@_streams_seq} % A list of the currently-available output streams to be used as a -% stack. The stream $18$ is special, as \tn{write}18 is used to -% denote commands to be sent to the OS\@. +% stack. % \begin{macrocode} \seq_new:N \g_@@_streams_seq -%<*initex> -\exp_args:Nnx \use:n - { \seq_gset_split:Nnn \g_@@_streams_seq { } } - { - \int_step_function:nnN { 0 } { \c_term_iow } - \prg_do_nothing: - } -\int_compare:nNnF \c_term_iow < { 18 } - { \seq_gremove_all:Nn \g_@@_streams_seq { 18 } } -%</initex> % \end{macrocode} % \end{variable} % @@ -1421,7 +1393,6 @@ % check on. % \begin{macrocode} \prop_new:N \g_@@_streams_prop -%<*package> \int_step_inline:nnn { 0 } { @@ -1435,7 +1406,6 @@ { \prop_gput:Nnn \g_@@_streams_prop {#1} { Reserved~by~format } } -%</package> % \end{macrocode} % \end{variable} % @@ -1483,13 +1453,11 @@ % \end{variable} % % \begin{macro}{\@@_new:N} -% As for read streams, copy \tn{newwrite} in package mode, making sure +% As for read streams, copy \tn{newwrite}, making sure % that it is not \tn{outer}. % \begin{macrocode} -%<*package> \exp_args:NNf \cs_new_protected:Npn \@@_new:N { \exp_args:NNc \exp_after:wN \exp_stop_f: { newwrite } } -%</package> % \end{macrocode} % \end{macro} % @@ -1512,16 +1480,11 @@ \iow_close:N #1 \seq_gpop:NNTF \g_@@_streams_seq \l_@@_stream_tl { \@@_open_stream:NV #1 \l_@@_file_name_tl } -%<*initex> - { \__kernel_msg_fatal:nn { kernel } { output-streams-exhausted } } -%</initex> -%<*package> { \@@_new:N #1 \tl_set:Nx \l_@@_stream_tl { \int_eval:n {#1} } \@@_open_stream:NV #1 \l_@@_file_name_tl } -%</package> } \cs_generate_variant:Nn \iow_open:Nn { c } \cs_new_protected:Npn \@@_open_stream:Nn #1#2 @@ -1876,7 +1839,7 @@ \cs_new_protected:Npn \iow_wrap:nnnN #1#2#3#4 { \group_begin: -%<package> \cs_if_exist_use:N \conditionally@traceoff + \cs_if_exist_use:N \conditionally@traceoff \int_set:Nn \tex_escapechar:D { -1 } \cs_set:Npx \{ { \token_to_str:N \{ } \cs_set:Npx \# { \token_to_str:N \# } @@ -1897,7 +1860,7 @@ % definition: it only works in the first argument of % \cs{iow_wrap:nnnN}. % \begin{macrocode} -%<package> \cs_set_eq:NN \protect \token_to_str:N + \cs_set_eq:NN \protect \token_to_str:N \tl_set:Nx \l_@@_wrap_tl {#1} \cs_set_eq:NN \iow_allow_break: \@@_allow_break_error: \cs_set_eq:NN \iow_indent:n \@@_indent_error:n @@ -2351,7 +2314,6 @@ % \tn{@currnamestack} is empty so is skipped. % \begin{macrocode} \seq_new:N \g_@@_stack_seq -%<*package> \group_begin: \cs_set_protected:Npn \@@_tmp:w #1#2#3 { @@ -2376,25 +2338,16 @@ { \exp_after:wN \@@_tmp:w \@currnamestack } } \group_end: -%</package> % \end{macrocode} % \end{variable} % % \begin{variable}{\g_@@_record_seq} % The total list of files used is recorded separately from the current % file stack, as nothing is ever popped from this list. The current -% file name should be included in the file list! In format mode, this -% is done at the very start of the \TeX{} run. In package mode we +% file name should be included in the file list! We % will eventually copy the contents of \cs{@filelist}. % \begin{macrocode} \seq_new:N \g_@@_record_seq -%<*initex> -\tex_everyjob:D \exp_after:wN - { - \tex_the:D \tex_everyjob:D - \seq_gput_right:NV \g_@@_record_seq \g_file_curr_name_str - } -%</initex> % \end{macrocode} % \end{variable} % @@ -2424,11 +2377,9 @@ % \end{variable} % % \begin{variable}{\l_@@_tmp_seq} -% Scratch space for comma list conversion in package mode. +% Scratch space for comma list conversion. % \begin{macrocode} -%<*package> \seq_new:N \l_@@_tmp_seq -%</package> % \end{macrocode} % \end{variable} % @@ -2734,13 +2685,11 @@ { \seq_map_tokens:Nn \l_file_search_path_seq { \@@_full_name_aux:Nnn \seq_map_break:n {#1} } -%<*package> \cs_if_exist:NT \input@path { \tl_map_tokens:Nn \input@path { \@@_full_name_aux:Nnn \tl_map_break:n {#1} } } -%</package> \@@_name_end: } { \@@_ext_check:n {#1} } @@ -2879,13 +2828,11 @@ \@@_get_full_name_search:nN { } \use:n \seq_map_inline:Nn \l_file_search_path_seq { \@@_get_full_name_search:nN { ##1 / } \seq_map_break:n } -%<*package> \cs_if_exist:NT \input@path { \tl_map_inline:Nn \input@path { \@@_get_full_name_search:nN { ##1 } \tl_map_break:n } } -%</package> \tl_set:Nn \l_@@_full_name_tl { \q_no_value } \prg_break_point: \quark_if_no_value:NTF \l_@@_full_name_tl @@ -3319,14 +3266,9 @@ } \cs_new_protected:Npx \@@_input:n #1 { -%<*initex> - \seq_gput_right:Nn \exp_not:N \g_@@_record_seq {#1} -%</initex> -%<*package> \exp_not:N \clist_if_exist:NTF \exp_not:N \@filelist { \exp_not:N \@addtofilelist {#1} } { \seq_gput_right:Nn \exp_not:N \g_@@_record_seq {#1} } -%</package> \exp_not:N \@@_input_push:n {#1} \exp_not:N \tex_input:D \sys_if_engine_luatex:TF @@ -3353,17 +3295,13 @@ \str_gset_eq:NN \g_file_curr_name_str \l_@@_name_str \str_gset_eq:NN \g_file_curr_ext_str \l_@@_ext_str } -%<*package> \cs_new_eq:NN \__kernel_file_input_push:n \@@_input_push:n -%</package> \cs_new_protected:Npn \@@_input_pop: { \seq_gpop:NN \g_@@_stack_seq \l_@@_internal_tl \exp_after:wN \@@_input_pop:nnn \l_@@_internal_tl } -%<*package> \cs_new_eq:NN \__kernel_file_input_pop: \@@_input_pop: -%</package> \cs_new_protected:Npn \@@_input_pop:nnn #1#2#3 { \str_gset:Nn \g_file_curr_dir_str {#1} @@ -3498,13 +3436,11 @@ \cs_new_protected:Npn \@@_list:N #1 { \seq_clear:N \l_@@_tmp_seq -%<*package> \clist_if_exist:NT \@filelist { \exp_args:NNx \seq_set_from_clist:Nn \l_@@_tmp_seq { \tl_to_str:N \@filelist } } -%</package> \seq_concat:NNN \l_@@_tmp_seq \l_@@_tmp_seq \g_@@_record_seq \seq_remove_duplicates:N \l_@@_tmp_seq #1 { LaTeX/kernel } { file-list } @@ -3521,7 +3457,6 @@ % \cs{@filelist} must be turned to strings before being added to % \cs{g_@@_record_seq}. % \begin{macrocode} -%<*package> \cs_if_exist:NT \@filelist { \AtBeginDocument @@ -3534,7 +3469,6 @@ \l_@@_tmp_seq } } -%</package> % \end{macrocode} % % \subsection{GetIfInfo} @@ -3626,20 +3560,6 @@ #1 \\ ............. } -\__kernel_msg_new:nnnn { kernel } { input-streams-exhausted } - { Input~streams~exhausted } - { - TeX~can~only~open~up~to~16~input~streams~at~one~time.\\ - All~16~are~currently~in~use,~and~something~wanted~to~open~ - another~one. - } -\__kernel_msg_new:nnnn { kernel } { output-streams-exhausted } - { Output~streams~exhausted } - { - TeX~can~only~open~up~to~16~output~streams~at~one~time.\\ - All~16~are~currently~in~use,~and~something~wanted~to~open~ - another~one. - } \__kernel_msg_new:nnnn { kernel } { unbalanced-quote-in-filename } { Unbalanced~quotes~in~file~name~'#1'. } { @@ -3699,7 +3619,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx deleted file mode 100644 index 809850d1a52..00000000000 --- a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx +++ /dev/null @@ -1,389 +0,0 @@ -% \iffalse meta-comment -% -%% File: l3final.dtx -% -% Copyright (C) 1990-2020 The LaTeX3 Project -% -% It may be distributed and/or modified under the conditions of the -% LaTeX Project Public License (LPPL), either version 1.3c of this -% license or (at your option) any later version. The latest version -% of this license is in the file -% -% https://www.latex-project.org/lppl.txt -% -% This file is part of the "l3kernel bundle" (The Work in LPPL) -% and all files in that bundle must be distributed together. -% -% ----------------------------------------------------------------------- -% -% The development version of the bundle can be found at -% -% https://github.com/latex3/latex3 -% -% for those people who are interested. -% -%<*driver> -\documentclass[full,kernel]{l3doc} -\begin{document} - \DocInput{\jobname.dtx} -\end{document} -%</driver> -% \fi -% -% \title{^^A -% The \pkg{l3final} package\\ Format finalisation^^A -% } -% -% \author{^^A -% The \LaTeX3 Project\thanks -% {^^A -% E-mail: -% \href{mailto:latex-team@latex-project.org} -% {latex-team@latex-project.org}^^A -% }^^A -% } -% -% \date{Released 2020-07-17} -% -% \maketitle -% -% \begin{documentation} -% -% This module is the end of the \LaTeX3 format file. Currently, a lot of this -% is copy-pasted from the \LaTeXe{} format or is highly unstable (essentially -% hacks which need revisiting later). -% -% \end{documentation} -% -% \begin{implementation} -% -% \section{\pkg{l3final} Implementation} -% -% \begin{macrocode} -%<*initex> -% \end{macrocode} -% -% \subsection{Input encoding} -% -% \begin{macrocode} -%<@@=char> -% \end{macrocode} -% -% The letters |a|--|z| and |A|--|Z| have the correct catcode directly from \IniTeX{} -% while for Unicode engines (almost) all characters to be treated as letters -% are defined by the automatic data parsing. Thus the changes here are to -% deal with the additional cases. -% -% All the characters in the range $0$--$31$ \emph{except} tab (|^^I|), nl -% (|^^J|), ff (|^^L|) and cr (|^^M|). -% \begin{macrocode} -\int_step_inline:nnn { 0 } { `\^^H } - { \char_set_catcode_invalid:n {#1} } -\char_set_catcode_invalid:n { `\^^K } -\int_step_inline:nnn { `\^^N } { 31 } - { \char_set_catcode_invalid:n {#1} } -% \end{macrocode} -% The same is true for the top of the $7$-bit range. -% \begin{macrocode} -\char_set_catcode_invalid:n { 127 } -% \end{macrocode} -% For the $8$-bit engines dotless-I and dotless-J need to be valid, -% and these therefore appear in some following code. To avoid an issue -% when those lines are read, the chars are made valid here and that is -% reversed for Unicode engines below. -% \begin{macrocode} -\char_set_catcode_letter:n { `\^^Y } -\char_set_catcode_letter:n { `\^^Z } -% \end{macrocode} -% -% For non-Unicode engine we now need to convert from UTF-$8$ to $8$-bit -% for pattern reading and document use. The set up here is copied from -% the file |conv-utf8-ec.tex| maintained by \textsc{tug} for hyphenation -% pattern use. As some of the relevant primitives have been moved and to -% allow for self-contained code that is copied here with minor adjustments. -% (The primitives have to be available at point of use not just at point of -% definition so a compatibility layer is hard to arrange here.) -% \begin{macrocode} -\bool_lazy_or:nnTF - { \sys_if_engine_luatex_p: } - { \sys_if_engine_xetex_p: } -% \end{macrocode} -% Unicode engines: make these two invalid (this happens after \TeX{} -% has read and thrown away their use in the following). -% \begin{macrocode} - { - \char_set_catcode_invalid:n { `\^^Y } - \char_set_catcode_invalid:n { `\^^Z } - } -% \end{macrocode} -% Now for $8$-bit engines. -% \begin{macrocode} - { -% \end{macrocode} -% At least for the present, make \upTeX{} behave like \pdfTeX{} so -% the set up is easier. -% \begin{macrocode} - \sys_if_engine_uptex:T - { \tex_disablecjktoken:D } -% \end{macrocode} -% The actual mappings: these are kept low-level for performance reasons. -% \begin{macrocode} - \cs_new:cpn { @@_active_C3:N } #1 - { - \if_meaning:w #1 ^^9f ^^ff \else: % ß - U+00DF - germandbls - \if_meaning:w #1 ^^a0 ^^e0 \else: % à - U+00E0 - agrave - \if_meaning:w #1 ^^a1 ^^e1 \else: % á - U+00E1 - aacute - \if_meaning:w #1 ^^a2 ^^e2 \else: % â - U+00E2 - acircumflex - \if_meaning:w #1 ^^a3 ^^e3 \else: % ã - U+00E3 - atilde - \if_meaning:w #1 ^^a4 ^^e4 \else: % ä - U+00E4 - adieresis - \if_meaning:w #1 ^^a5 ^^e5 \else: % å - U+00E5 - aring - \if_meaning:w #1 ^^a6 ^^e6 \else: % æ - U+00E6 - ae - \if_meaning:w #1 ^^a7 ^^e7 \else: % ç - U+00E7 - ccedilla - \if_meaning:w #1 ^^a8 ^^e8 \else: % è - U+00E8 - egrave - \if_meaning:w #1 ^^a9 ^^e9 \else: % é - U+00E9 - eacute - \if_meaning:w #1 ^^aa ^^ea \else: % ê - U+00EA - ecircumflex - \if_meaning:w #1 ^^ab ^^eb \else: % ë - U+00EB - edieresis - \if_meaning:w #1 ^^ac ^^ec \else: % ì - U+00EC - igrave - \if_meaning:w #1 ^^ad ^^ed \else: % í - U+00ED - iacute - \if_meaning:w #1 ^^ae ^^ee \else: % î - U+00EE - icircumflex - \if_meaning:w #1 ^^af ^^ef \else: % ï - U+00EF - idieresis - \if_meaning:w #1 ^^b0 ^^f0 \else: % ð - U+00F0 - eth - \if_meaning:w #1 ^^b1 ^^f1 \else: % ñ - U+00F1 - ntilde - \if_meaning:w #1 ^^b2 ^^f2 \else: % ò - U+00F2 - ograve - \if_meaning:w #1 ^^b3 ^^f3 \else: % ó - U+00F3 - oacute - \if_meaning:w #1 ^^b4 ^^f4 \else: % ô - U+00F4 - ocircumflex - \if_meaning:w #1 ^^b5 ^^f5 \else: % õ - U+00F5 - otilde - \if_meaning:w #1 ^^b6 ^^f6 \else: % ö - U+00F6 - odieresis - \if_meaning:w #1 ^^b8 ^^f8 \else: % ø - U+00F8 - oslash - \if_meaning:w #1 ^^b9 ^^f9 \else: % ù - U+00F9 - ugrave - \if_meaning:w #1 ^^ba ^^fa \else: % ú - U+00FA - uacute - \if_meaning:w #1 ^^bb ^^fb \else: % û - U+00FB - ucircumflex - \if_meaning:w #1 ^^bc ^^fc \else: % ü - U+00FC - udieresis - \if_meaning:w #1 ^^bd ^^fd \else: % ý - U+00FD - yacute - \if_meaning:w #1 ^^be ^^fe \else: % þ - U+00FE - thorn - \if_meaning:w #1 ^^bf ^^b8 \else: % ÿ - U+00FF - ydieresis - \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: - \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: - \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: - } - \cs_new:cpn { @@_active_C4:N } #1 - { - \if_meaning:w #1 ^^83 ^^a0 \else: % ă - U+0103 - abreve - \if_meaning:w #1 ^^85 ^^a1 \else: % ą - U+0105 - aogonek - \if_meaning:w #1 ^^87 ^^a2 \else: % ć - U+0107 - cacute - \if_meaning:w #1 ^^8d ^^a3 \else: % č - U+010D - ccaron - \if_meaning:w #1 ^^8f ^^a4 \else: % ď - U+010F - dcaron - \if_meaning:w #1 ^^91 ^^9e \else: % đ - U+0111 - dcroat - \if_meaning:w #1 ^^99 ^^a6 \else: % ę - U+0119 - eogonek - \if_meaning:w #1 ^^9b ^^a5 \else: % ě - U+011B - ecaron - \if_meaning:w #1 ^^9f ^^a7 \else: % ğ - U+011F - gbreve - \if_meaning:w #1 ^^b1 ^^19 \else: % ı - U+0131 - dotlessi - \if_meaning:w #1 ^^b3 ^^bc \else: % ij - U+0133 - ij - \if_meaning:w #1 ^^ba ^^a8 \else: % ĺ - U+013A - lacute - \if_meaning:w #1 ^^be ^^a9 \else: % ľ - U+013E - lcaron - \__kernel_msg_expandable_error:nn { kernel } { encoding-failure } - \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: - } - \cs_new:cpn { @@_active_C5:N } #1 - { - \if_meaning:w #1 ^^82 ^^aa \else: % ł - U+0142 - lslash - \if_meaning:w #1 ^^84 ^^ab \else: % ń - U+0144 - nacute - \if_meaning:w #1 ^^88 ^^ac \else: % ň - U+0148 - ncaron - \if_meaning:w #1 ^^8b ^^ad \else: % ŋ - U+014B - eng - \if_meaning:w #1 ^^91 ^^ae \else: % ő - U+0151 - ohungarumlaut - \if_meaning:w #1 ^^93 ^^f7 \else: % œ - U+0153 - oe - \if_meaning:w #1 ^^95 ^^af \else: % ŕ - U+0155 - racute - \if_meaning:w #1 ^^99 ^^b0 \else: % ř - U+0159 - rcaron - \if_meaning:w #1 ^^9b ^^b1 \else: % ś - U+015B - sacute - \if_meaning:w #1 ^^9f ^^b3 \else: % ş - U+015F - scedilla - \if_meaning:w #1 ^^a1 ^^b2 \else: % š - U+0161 - scaron - \if_meaning:w #1 ^^a5 ^^b4 \else: % ť - U+0165 - tcaron - \if_meaning:w #1 ^^af ^^b7 \else: % ů - U+016F - uring - \if_meaning:w #1 ^^b1 ^^b6 \else: % ű - U+0171 - uhungarumlaut - \if_meaning:w #1 ^^ba ^^b9 \else: % ź - U+017A - zacute - \if_meaning:w #1 ^^bc ^^bb \else: % ż - U+017C - zdotaccent - \if_meaning:w #1 ^^be ^^ba \else: % ž - U+017E - zcaron - \__kernel_msg_expandable_error:nn { kernel } { encoding-failure } - \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: - \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: - } - \cs_new:cpn { @@_active_C8:N } #1 - { - \if_meaning:w #1 ^^99 ^^b3 \else: % ș - U+0219 - scommaaccent - \if_meaning:w #1 ^^9b ^^b5 \else: % ț - U+021B - tcommaaccent - \if_meaning:w #1 ^^b7 ^^1a \else: % ȷ - U+0237 - dotlessj - \__kernel_msg_expandable_error:nn { kernel } { encoding-failure } - \fi: \fi: \fi: - } -% \end{macrocode} -% Install and record the active characters. -% \begin{macrocode} - \clist_map_inline:nn { C3 , C4 , C5 , C8 } - { - \char_set_catcode_active:n { "#1 } - \char_set_active_eq:nc { "#1 } { @@_active_ #1 :N } - \seq_put_right:Nx \l_char_special_seq - { \exp_not:c { \char_generate:nn { "#1 } { 12 } } } - \seq_put_right:Nx \l_char_active_seq - { \exp_not:c { \char_generate:nn { "#1 } { 12 } } } - } - \__kernel_msg_new:nnn { kernel } { encoding-failure } - { Unknown~UTF-8~char } -% \end{macrocode} -% All of the chars are lower case so give them the correct \tn{lccode} -% values. -% \begin{macrocode} - \clist_map_inline:nn - { - 19 , 1A , 9E , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , - AA , AB , AC , AD , AE , AF , B0 , B1 , B2 , B3 , B3 , B4 , B5 , - B6 , B7 , B8 , B9 , BA , BB , BC , E0 , E1 , E2 , E3 , E4 , E5 , - E6 , E7 , E8 , E9 , EA , EB , EC , ED , EE , EF , F0 , F1 , F2 , - F3 , F4 , F5 , F6 , F7 , F8 , F9 , FA , FB , FC , FD , FE , FF - } - { \char_set_lccode:nn { "#1 } { "#1 } } - } -% \end{macrocode} -% -% \subsection{Temporary hacks} -% -% \begin{macro}{\T1/lmr/m/n/10, \TU/lmr/m/n/10} -% For \emph{testing only} provide some kind of output: for that we -% need a font. At present, select Latin Modern Roman at 10\,pt: -% entirely arbitrary but at least usable. -% \begin{macrocode} -\sys_if_engine_luatex:T - { - \tex_everyjob:D \exp_after:wN - { - \tex_the:D \tex_everyjob:D - \lua_now:n { require("l3format.lua") } - } - } -\use:x - { - \tex_everyjob:D - { - \tex_the:D \tex_everyjob:D - \bool_lazy_or:nnTF - { \sys_if_engine_luatex_p: } - { \sys_if_engine_xetex_p: } - { - \tex_font:D \exp_not:c { TU/lmr/m/n/10 } - = "[lmroman10-regular.otf]/OT" \scan_stop: - \exp_not:c { TU/lmr/m/n/10 } - \tex_font:D \exp_not:c { TU/lmm/m/n/10 } - = "[latinmodern-math.otf]/OT:mode=base;script=math;" \scan_stop: - \tex_font:D \exp_not:c { TU/lmm/m/n/7 } - = "[latinmodern-math.otf]/OT:mode=base;script=math;+ssty=0;"~at~7pt \scan_stop: - \tex_font:D \exp_not:c { TU/lmm/m/n/5 } - = "[latinmodern-math.otf]/OT:mode=base;script=math;+ssty=1;"~at~5pt \scan_stop: - \exp_not:N \int_step_inline:nnn { 0 } { 3 } - { - \tex_textfont:D ##1 = \exp_not:c { TU/lmm/m/n/10 } - \tex_scriptfont:D ##1 = \exp_not:c { TU/lmm/m/n/7 } - \tex_scriptscriptfont:D ##1 = \exp_not:c { TU/lmm/m/n/5 } - } - } - { - \tex_font:D \exp_not:c { T1/lmr/m/n/10 } - = ec-lmr10 \scan_stop: - \exp_not:c { T1/lmr/m/n/10 } - \tex_font:D \exp_not:c { OT1/lmr/m/n/10 } - = rm-lmr10 \scan_stop: - \tex_font:D \exp_not:c { OML/lmm/m/it/10 } - = lmmi10 \scan_stop: - \tex_font:D \exp_not:c { OMS/lmsy/m/n/10 } - = lmsy10 \scan_stop: - \tex_font:D \exp_not:c { OMX/lmex/m/n/10 } - = lmex10 \scan_stop: - \tex_font:D \exp_not:c { OT1/lmr/m/n/7 } - = rm-lmr7 \scan_stop: - \tex_font:D \exp_not:c { OML/lmm/m/it/7 } - = lmmi7 \scan_stop: - \tex_font:D \exp_not:c { OMS/lmsy/m/n/7 } - = lmsy7 \scan_stop: - \tex_font:D \exp_not:c { OMX/lmex/m/n/7 } - = lmex10~at~7pt \scan_stop: - \tex_font:D \exp_not:c { OT1/lmr/m/n/5 } - = rm-lmr5 \scan_stop: - \tex_font:D \exp_not:c { OML/lmm/m/it/5 } - = lmmi5 \scan_stop: - \tex_font:D \exp_not:c { OMS/lmsy/m/n/5 } - = lmsy5 \scan_stop: - \tex_font:D \exp_not:c { OMX/lmex/m/n/5 } - = lmex10~at~5pt \scan_stop: - \tex_textfont:D 0 = \exp_not:c { OT1/lmr/m/n/10 } - \tex_textfont:D 1 = \exp_not:c { OML/lmm/m/it/10 } - \tex_textfont:D 2 = \exp_not:c { OMS/lmsy/m/n/10 } - \tex_textfont:D 3 = \exp_not:c { OMX/lmex/m/n/10 } - \tex_scriptfont:D 0 = \exp_not:c { OT1/lmr/m/n/7 } - \tex_scriptfont:D 1 = \exp_not:c { OML/lmm/m/it/7 } - \tex_scriptfont:D 2 = \exp_not:c { OMS/lmsy/m/n/7 } - \tex_scriptfont:D 3 = \exp_not:c { OMX/lmex/m/n/7 } - \tex_scriptscriptfont:D 0 = \exp_not:c { OT1/lmr/m/n/5 } - \tex_scriptscriptfont:D 1 = \exp_not:c { OML/lmm/m/it/5 } - \tex_scriptscriptfont:D 2 = \exp_not:c { OMS/lmsy/m/n/5 } - \tex_scriptscriptfont:D 3 = \exp_not:c { OMX/lmex/m/n/5 } - } - } - } -% \end{macrocode} -% \end{macro} -% -% Produce PDF output if possible (easier testing) and set some kind of -% horizontal width: the one here is the \LaTeXe{} default. A parfill is -% also useful so we get some kind of sensible paragraphs. -% \begin{macrocode} -\dim_set:Nn \tex_hsize:D { 345pt } -\skip_set:Nn \tex_parfillskip:D { 0pt plus 1fil } -\cs_if_exist:NT \tex_pdfoutput:D - { \int_set:Nn \tex_pdfoutput:D { 1 } } -% \end{macrocode} -% -% \begin{macro}{\stop} -% A way out of the run without needing to switch to the code environment. -% \begin{macrocode} -\cs_set_eq:NN \stop \tex_end:D -% \end{macrocode} -% \end{macro} -% -% \subsection{Final tasks} -% -% \begin{macro}{\par} -% \TeX{} has a nasty habit of inserting a command with the name \cs{par} -% so we had better make sure that \cs{par} has a definition. -% \begin{macrocode} -\cs_set_eq:NN \par \tex_par:D -% \end{macrocode} -% \end{macro} -% -% The very last job is to dump the format, taking care to first leave -% the code environment and set the appropriate flag. -% \begin{macrocode} -\use:n - { - \bool_set_false:N \l__kernel_expl_bool - \char_set_catcode_space:n { 9 } % tab - \char_set_catcode_space:n { 32 } % space - \char_set_catcode_active:n { 34 } % double quote - \char_set_catcode_active:n { 36 } % dollar - \char_set_catcode_active:n { 38 } % ampersand - \char_set_catcode_other:n { 58 } % colon - \char_set_catcode_active:n { 94 } % circumflex - \char_set_catcode_active:n { 95 } % underscore - \char_set_catcode_other:n { 124 } % pipe - \char_set_catcode_active:n { 126 } % tilde - \tex_endlinechar:D = 13 \scan_stop: - \tex_newlinechar:D = 10 \scan_stop: - \tex_dump:D - } -% \end{macrocode} -% -% \begin{macrocode} -%</initex> -% \end{macrocode} -% -% \end{implementation} -% -%\PrintIndex diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx index 0d68f05eeec..9bc6f9de6f8 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -159,7 +159,7 @@ % \section{\pkg{l3flag} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -300,7 +300,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3format.ins b/Master/texmf-dist/source/latex/l3kernel/l3format.ins deleted file mode 100644 index 0671ed9ee67..00000000000 --- a/Master/texmf-dist/source/latex/l3kernel/l3format.ins +++ /dev/null @@ -1,164 +0,0 @@ -\iffalse meta-comment - -File l3format.ins - -Copyright (C) 2011,2012,2014-2020 The LaTeX3 Project - -It may be distributed and/or modified under the conditions of the -LaTeX Project Public License (LPPL), either version 1.3c of this -license or (at your option) any later version. The latest version -of this license is in the file - - https://www.latex-project.org/lppl.txt - -This file is part of the "l3kernel bundle" (The Work in LPPL) -and all files in that bundle must be distributed together. - ------------------------------------------------------------------------ - -The development version of the bundle can be found at - - https://github.com/latex3/latex3 - -for those people who are interested. - ------------------------------------------------------------------------ - -Any modification of this file should ensure that the copyright and -license information is placed in the derived files. - -\fi - -\let\jobname\relax -\input l3docstrip.dtx -\askforoverwritefalse - -\preamble - -Copyright (C) 1990-2020 The LaTeX3 Project - -It may be distributed and/or modified under the conditions of -the LaTeX Project Public License (LPPL), either version 1.3c of -this license or (at your option) any later version. The latest -version of this license is in the file: - - https://www.latex-project.org/lppl.txt - -This file is part of the "l3kernel bundle" (The Work in LPPL) -and all files in that bundle must be distributed together. - -\endpreamble -% stop docstrip adding \endinput -\postamble -\endpostamble - -\keepsilent - -\generate - { - \file{l3format.ltx} - { - \from{l3bootstrap.dtx} {initex} - \from{l3names.dtx} {initex} - \from{l3basics.dtx} {initex} - \from{l3expan.dtx} {initex} - \from{l3quark.dtx} {initex} - \from{l3tl.dtx} {initex} - \from{l3str.dtx} {initex} - \from{l3seq.dtx} {initex} - % ======== FORMAT ONLY ========= - \from{l3alloc.dtx} {initex} - % ============================== - \from{l3int.dtx} {initex} - \from{l3flag.dtx} {initex} - \from{l3prg.dtx} {initex} - \from{l3sys.dtx} {initex} - \from{l3clist.dtx} {initex} - \from{l3token.dtx} {initex} - \from{l3prop.dtx} {initex} - \from{l3msg.dtx} {initex} - \from{l3file.dtx} {initex} - \from{l3skip.dtx} {initex} - \from{l3keys.dtx} {initex} - \from{l3intarray.dtx} {initex} - \from{l3fp.dtx} {initex} - \from{l3fp-aux.dtx} {initex} - \from{l3fp-traps.dtx} {initex} - \from{l3fp-round.dtx} {initex} - \from{l3fp-parse.dtx} {initex} - \from{l3fp-assign.dtx} {initex} - \from{l3fp-logic.dtx} {initex} - \from{l3fp-basics.dtx} {initex} - \from{l3fp-extended.dtx}{initex} - \from{l3fp-expo.dtx} {initex} - \from{l3fp-trig.dtx} {initex} - \from{l3fp-convert.dtx} {initex} - \from{l3fp-random.dtx} {initex} - \from{l3fparray.dtx} {initex} - \from{l3cctab.dtx} {initex} - \from{l3sort.dtx} {initex} - \from{l3str-convert.dtx}{initex} - \from{l3tl-analysis.dtx}{initex} - \from{l3regex.dtx} {initex} - \from{l3box.dtx} {initex} - \from{l3color-base.dtx} {initex} - \from{l3coffins.dtx} {initex} - \from{l3luatex.dtx} {initex,tex} - \from{l3unicode.dtx} {initex} - \from{l3text.dtx} {initex} - \from{l3text-case.dtx} {initex} - \from{l3text-purify.dtx}{initex} - \from{l3candidates.dtx} {initex} - % ======== FORMAT ONLY ========= - \from{l3final.dtx} {initex} - % ============================== - } - } - -% ISO-8859 encodings. -\generate{% - \file{l3str-enc-iso88591.def} {\from{l3str-convert.dtx}{iso88591}}% - \file{l3str-enc-iso88592.def} {\from{l3str-convert.dtx}{iso88592}}% - \file{l3str-enc-iso88593.def} {\from{l3str-convert.dtx}{iso88593}}% - \file{l3str-enc-iso88594.def} {\from{l3str-convert.dtx}{iso88594}}% - \file{l3str-enc-iso88595.def} {\from{l3str-convert.dtx}{iso88595}}% - \file{l3str-enc-iso88596.def} {\from{l3str-convert.dtx}{iso88596}}% - \file{l3str-enc-iso88597.def} {\from{l3str-convert.dtx}{iso88597}}% - \file{l3str-enc-iso88598.def} {\from{l3str-convert.dtx}{iso88598}}% - \file{l3str-enc-iso88599.def} {\from{l3str-convert.dtx}{iso88599}}% - \file{l3str-enc-iso885910.def} {\from{l3str-convert.dtx}{iso885910}}% - \file{l3str-enc-iso885911.def} {\from{l3str-convert.dtx}{iso885911}}% - \file{l3str-enc-iso885913.def} {\from{l3str-convert.dtx}{iso885913}}% - \file{l3str-enc-iso885914.def} {\from{l3str-convert.dtx}{iso885914}}% - \file{l3str-enc-iso885915.def} {\from{l3str-convert.dtx}{iso885915}}% - \file{l3str-enc-iso885916.def} {\from{l3str-convert.dtx}{iso885916}}% -} - -\generate{\file{l3debug.def}{\from{l3debug.dtx}{initex}}} -\generate{\file{l3deprecation.def}{\from{l3deprecation.dtx}{initex,patches}}} - -\generate{\file{l3docstrip.tex}{\from{l3docstrip.dtx}{program}}} - -% Lua code (currently identical to the package-mode version) - -\def\MetaPrefix{--} -\preamble - -Copyright (C) 1990-2020 The LaTeX3 Project - -It may be distributed and/or modified under the conditions of -the LaTeX Project Public License (LPPL), either version 1.3c of -this license or (at your option) any later version. The latest -version of this license is in the file: - - https://www.latex-project.org/lppl.txt - -This file is part of the "l3kernel bundle" (The Work in LPPL) -and all files in that bundle must be distributed together. - -\endpreamble -\nopostamble -\generate{\file{expl3.lua} {\from{l3luatex.dtx}{lua,package}}} -\generate{\file{l3format.lua}{\from{l3luatex.dtx}{lua,initex}}} - -\endbatchfile diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx index 73e28d4b3f1..8f06b76ea40 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % \maketitle % % \begin{documentation} @@ -52,7 +52,7 @@ % \section{\pkg{l3fp-assign} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -219,7 +219,7 @@ % \end{variable} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx index 09a876ee8dd..38fd8b13668 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -56,7 +56,7 @@ % \section{\pkg{l3fp-aux} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -1296,7 +1296,7 @@ % \end{macrocode} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx index 68cb42369d2..ae77fc4be2e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -53,7 +53,7 @@ % \section{\pkg{l3fp-basics} Implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -2168,7 +2168,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx index a07e4fb9824..e16a947e6c7 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -56,7 +56,7 @@ % \section{\texttt{l3fp-convert} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -620,7 +620,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx index aafc77e1a61..fc8789101d9 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -53,7 +53,7 @@ % \section{\pkg{l3fp-expo} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -1369,7 +1369,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx index 498da7895c9..f7566ff062e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -53,7 +53,7 @@ % \section{\pkg{l3fp-extended} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -1263,7 +1263,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx index 13457604be0..d36cbb30035 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -53,7 +53,7 @@ % \section{\pkg{l3fp-logic} Implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -727,7 +727,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx index c3125a8478c..e56abc6bb17 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -53,7 +53,7 @@ % \section{\pkg{l3fp-parse} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -800,7 +800,6 @@ {#2} \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w #1 } -%<*package> \cs_set_protected:Npn \@@_tmp:w #1 { \cs_if_exist:NT #1 @@ -824,7 +823,6 @@ } } \exp_args:Nc \@@_tmp:w { @unexpandable@protect } -%</package> % \end{macrocode} % \end{macro} % @@ -2889,17 +2887,15 @@ { Arguments~in~#1#2~are~invalid. } \__kernel_msg_new:nnn { kernel } { fp-infty-pi } { Math~command~#1 is~not~an~fp } -%<*package> \cs_if_exist:cT { @unexpandable@protect } { \__kernel_msg_new:nnn { kernel } { fp-robust-cmd } { Robust~command~#1 invalid~in~fp~expression! } } -%</package> % \end{macrocode} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx index 062f0d59b48..6dd9a63d701 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -53,7 +53,7 @@ % \section{\pkg{l3fp-random} Implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -654,7 +654,7 @@ % \end{macrocode} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx index ef2092959be..487f48fa7cd 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -56,7 +56,7 @@ % \section{\pkg{l3fp-round} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -582,7 +582,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx index 40332fc340a..8f7ef9afdc0 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % \maketitle % % \begin{documentation} @@ -52,7 +52,7 @@ % \section{\pkg{l3fp-traps} Implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -390,7 +390,7 @@ % \end{macrocode} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx index a9c96002443..c5c85d20a3d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -53,7 +53,7 @@ % \section{\pkg{l3fp-trig} Implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -1688,7 +1688,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx index b76089b5c60..f1743be720b 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx index be62eac38b9..1a2775935b8 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -115,7 +115,7 @@ % \section{\pkg{l3fparray} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -388,7 +388,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx index 7384a5f257f..ac08971cd0d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -1010,7 +1010,7 @@ % \section{\pkg{l3int} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -1272,13 +1272,11 @@ % this is therefore accessed by name. (The same applies to \cs{newbox}, % \cs{newdimen} and so on.) % \begin{macrocode} -%<*package> \cs_new_protected:Npn \int_new:N #1 { \__kernel_chk_if_free_cs:N #1 \cs:w newcount \cs_end: #1 } -%</package> \cs_generate_variant:Nn \int_new:N { c } % \end{macrocode} % \end{macro} @@ -2581,7 +2579,7 @@ % \end{variable} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx index 7a96ed28739..208ec1cfe53 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -166,7 +166,7 @@ % \section{\pkg{l3intarray} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -579,7 +579,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx index c73b661cfc5..793ea280316 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -265,6 +265,27 @@ % % \begin{function} % { +% \__kernel_msg_critical:nnnnnn , +% \__kernel_msg_critical:nnnnn , +% \__kernel_msg_critical:nnnn , +% \__kernel_msg_critical:nnn , +% \__kernel_msg_critical:nn , +% \__kernel_msg_critical:nnxxxx , +% \__kernel_msg_critical:nnxxx , +% \__kernel_msg_critical:nnxx , +% \__kernel_msg_critical:nnx +% } +% \begin{syntax} +% \cs{__kernel_msg_critical:nnnnnn} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four} +% \end{syntax} +% Issues kernel \meta{module} error \meta{message}, passing \meta{arg one} +% to \meta{arg four} to the text-creating functions. After issuing a +% critical error, \TeX{} stops reading the current input file. +% Cannot be redirected. +% \end{function} +% +% \begin{function} +% { % \__kernel_msg_error:nnnnnn , % \__kernel_msg_error:nnnnn , % \__kernel_msg_error:nnnn , diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx index 77fa7d1aff1..9c5216ceb6a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -934,7 +934,7 @@ % \section{\pkg{l3keys} Implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \subsection{Low-level interface} @@ -1493,44 +1493,29 @@ % % \subsubsection{Internal auxiliaries} % -% \begin{variable}{\s_@@_stop} +% \begin{variable}{\s_@@_nil,\s_@@_mark,\s_@@_stop} % Internal scan marks. % \begin{macrocode} +\scan_new:N \s_@@_nil +\scan_new:N \s_@@_mark \scan_new:N \s_@@_stop % \end{macrocode} % \end{variable} % -% \begin{variable}{\q_@@_nil,\q_@@_no_value} +% \begin{variable}{\q_@@_no_value} % Internal quarks. % \begin{macrocode} -\quark_new:N \q_@@_nil \quark_new:N \q_@@_no_value % \end{macrocode} % \end{variable} % -% \begin{macro}[pTF]{\@@_quark_if_nil:n} +% \begin{macro}[pTF]{\@@_quark_if_no_value:N} % Branching quark conditional. % \begin{macrocode} -\__kernel_quark_new_conditional:Nn \@@_quark_if_nil:n { TF } \__kernel_quark_new_conditional:Nn \@@_quark_if_no_value:N { TF } % \end{macrocode} % \end{macro} % -% \begin{variable}{\q_@@_recursion_tail,\q_@@_recursion_stop} -% Internal recursion quarks. -% \begin{macrocode} -\quark_new:N \q_@@_recursion_tail -\quark_new:N \q_@@_recursion_stop -% \end{macrocode} -% \end{variable} -% -% \begin{macro}[EXP]{\@@_if_recursion_tail_stop:n} -% Functions to query recursion quarks. -% \begin{macrocode} -\__kernel_quark_new_test:N \@@_if_recursion_tail_stop:n -% \end{macrocode} -% \end{macro} -% % \subsection{The key defining mechanism} % % \begin{macro}{\keys_define:nn} @@ -1580,7 +1565,7 @@ \str_if_empty:NF \l_@@_property_str { \__kernel_msg_error:nnxx { kernel } { key-property-unknown } - { \l_@@_property_str } { \l_keys_path_str } + \l_@@_property_str \l_keys_path_str } } } @@ -1590,53 +1575,59 @@ % \end{macro} % % \begin{macro}{\@@_property_find:n} -% \begin{macro}{\@@_property_find:w} +% \begin{macro} +% { +% \@@_property_find_auxi:w , +% \@@_property_find_auxii:w , +% \@@_property_find_auxiii:w , +% \@@_property_find_auxiv:w +% } % Searching for a property means finding the last |.| in the input, % and storing the text before and after it. Everything is turned into -% strings, so there is no problem using an \texttt{x}-type expansion. +% strings, so there is no problem using an \texttt{x}-type expansion. Since +% |\__keys_trim_spaces:n| will turn its argument into a string anyway, this +% function uses \cs{cs_set_nopar:Npx} instead of \cs{tl_set:Nx} to gain some +% speed. % \begin{macrocode} \cs_new_protected:Npn \@@_property_find:n #1 { - \str_set:Nx \l_@@_property_str { \@@_trim_spaces:n {#1} } - \exp_after:wN \@@_property_find:w \l_@@_property_str . . - \s_@@_stop {#1} + \cs_set_nopar:Npx \l__keys_property_str { \__keys_trim_spaces:n { #1 } } + \exp_after:wN \@@_property_find_auxi:w \l__keys_property_str + \s_@@_nil \@@_property_find_auxii:w + . \s_@@_nil \@@_property_find_err:w } -\cs_new_protected:Npn \@@_property_find:w #1 . #2 . #3 \s_@@_stop #4 +\cs_new_protected:Npn \@@_property_find_auxi:w #1 . #2 \s_@@_nil #3 { - \tl_if_blank:nTF {#3} - { - \str_clear:N \l_@@_property_str - \__kernel_msg_error:nnn { kernel } { key-no-property } {#4} - } - { - \str_if_eq:nnTF {#3} { . } - { - \str_set:Nx \l_keys_path_str - { - \str_if_empty:NF \l_@@_module_str - { \l_@@_module_str / } - \tl_trim_spaces:n {#1} - } - \str_set:Nn \l_@@_property_str { . #2 } - } - { - \str_set:Nx \l_keys_path_str { \l_@@_module_str / #1 . #2 } - \@@_property_search:w #3 \s_@@_stop - } - \tl_set_eq:NN \l_keys_path_tl \l_keys_path_str - } + #3 #1 \s_@@_mark #2 \s_@@_nil #3 } -\cs_new_protected:Npn \@@_property_search:w #1 . #2 \s_@@_stop +\cs_new_protected:Npn \@@_property_find_auxii:w + #1 \s_@@_mark #2 \s_@@_nil \@@_property_find_auxii:w . \s_@@_nil + \@@_property_find_err:w { - \str_if_eq:nnTF {#2} { . } - { - \str_set:Nx \l_keys_path_str { \l_keys_path_str } - \str_set:Nn \l_@@_property_str { . #1 } - } - { - \str_set:Nx \l_keys_path_str { \l_keys_path_str . #1 } - \@@_property_search:w #2 \s_@@_stop - } + \cs_set_nopar:Npx \l_keys_path_str + { \str_if_empty:NF \l__keys_module_str { \l__keys_module_str / } #1 } + \@@_property_find_auxi:w #2 \s_@@_nil \@@_property_find_auxiii:w . \s_@@_nil + \@@_property_find_auxiv:w + } +\cs_new_protected:Npn \@@_property_find_auxiii:w #1 \s_@@_mark + { + \cs_set_nopar:Npx \l_keys_path_str { \l_keys_path_str . #1 } + \@@_property_find_auxi:w + } +\cs_new_protected:Npn \@@_property_find_auxiv:w + #1 \s_@@_nil \@@_property_find_auxiii:w + \s_@@_mark \s_@@_nil \@@_property_find_auxiv:w + { + \cs_set_nopar:Npx \l__keys_property_str { . #1 } + \cs_set_nopar:Npx \l_keys_path_str + { \exp_after:wN \__keys_trim_spaces:n \exp_after:wN { \l_keys_path_str } } + \tl_set_eq:NN \l_keys_path_tl \l_keys_path_str + } +\cs_new_protected:Npn \@@_property_find_err:w + #1 \s_@@_nil #2 \@@_property_find_err:w + { + \str_clear:N \l__keys_property_str + \__kernel_msg_error:nnn { kernel } { key-no-property } {#1} } % \end{macrocode} % \end{macro} @@ -1658,9 +1649,8 @@ \l_@@_property_str \s_@@_stop { \use:c { \c_@@_props_root_str \l_@@_property_str } } { - \__kernel_msg_error:nnxx { kernel } - { key-property-requires-value } { \l_@@_property_str } - { \l_keys_path_str } + \__kernel_msg_error:nnxx { kernel } { key-property-requires-value } + \l_@@_property_str \l_keys_path_str } } { \use:c { \c_@@_props_root_str \l_@@_property_str } {#1} } @@ -1690,7 +1680,7 @@ \@@_cmd_set:nn { \l_keys_path_str / unknown } { \__kernel_msg_error:nnx { kernel } { boolean-values-only } - { \l_keys_key_str } + \l_keys_key_str } \@@_default_set:n { true } } @@ -1712,7 +1702,7 @@ \@@_cmd_set:nn { \l_keys_path_str / unknown } { \__kernel_msg_error:nnx { kernel } { boolean-values-only } - { \l_keys_key_str } + \l_keys_key_str } \@@_default_set:n { true } } @@ -1741,7 +1731,7 @@ { choice } { \__kernel_msg_error:nnxx { kernel } { nested-choice-key } - { \l_keys_path_tl } { \@@_parent:o \l_keys_path_str } + \l_keys_path_tl { \@@_parent:o \l_keys_path_str } } { \@@_choice_make_aux:N #1 } } @@ -1751,11 +1741,11 @@ { \cs_set_nopar:cpn { \c_@@_type_root_str \l_keys_path_str } { choice } - \@@_cmd_set:nn { \l_keys_path_str } { #1 {##1} } + \@@_cmd_set:nn \l_keys_path_str { #1 {##1} } \@@_cmd_set:nn { \l_keys_path_str / unknown } { \__kernel_msg_error:nnxx { kernel } { key-choice-unknown } - { \l_keys_path_str } {##1} + \l_keys_path_str {##1} } } % \end{macrocode} @@ -1886,7 +1876,8 @@ { \@@_execute_inherit: } { \str_clear:N \l_@@_inherit_str - \cs_if_exist_use:cT { \c_@@_code_root_str \l_keys_path_str } { {#1} } + \cs_if_exist:cT { \c_@@_code_root_str \l_keys_path_str } + { \@@_execute:nn \l_keys_path_str {#1} } } } % \end{macrocode} @@ -1900,8 +1891,7 @@ { \@@_cmd_set:Vo \l_keys_path_str { - \exp_after:wN \keys_set:nn - \exp_after:wN { \l_@@_module_str } {#1} + \exp_after:wN \keys_set:nn \exp_after:wN { \l_@@_module_str } {#1} } } \cs_new_protected:Npn \@@_meta_make:nn #1#2 @@ -1916,11 +1906,9 @@ \cs_new_protected:Npn \@@_prop_put:Nn #1#2 { \prop_if_exist:NF #1 { \prop_new:N #1 } - \exp_after:wN \@@_find_key_module:NNw - \exp_after:wN \l_@@_tmpa_tl - \exp_after:wN \l_@@_tmpb_tl - \l_keys_path_str / \s_@@_stop - \@@_cmd_set:nx { \l_keys_path_str } + \exp_after:wN \@@_find_key_module:wNN \l_keys_path_str \s_@@_stop + \l_@@_tmpa_tl \l_@@_tmpb_tl + \@@_cmd_set:nx \l_keys_path_str { \exp_not:c { prop_ #2 put:Nnn } \exp_not:N #1 @@ -1951,7 +1939,6 @@ % % \begin{macro}{\@@_value_requirement:nn} % \begin{macro}{\@@_validate_forbidden:, \@@_validate_required:} -% \begin{macro}{\@@_validate_cleanup:w} % Validating key input is done using a second function which runs before % the main key code. Setting that up means setting it equal to a generic % stub which does the check. This approach makes the lookup very fast at @@ -1991,8 +1978,8 @@ \bool_if:NF \l_@@_no_value_bool { \__kernel_msg_error:nnxx { kernel } { value-forbidden } - { \l_keys_path_str } { \l_keys_value_tl } - \@@_validate_cleanup:w + \l_keys_path_str \l_keys_value_tl + \use_none:nnn } } \cs_new_protected:Npn \@@_validate_required: @@ -2000,15 +1987,13 @@ \bool_if:NT \l_@@_no_value_bool { \__kernel_msg_error:nnx { kernel } { value-required } - { \l_keys_path_str } - \@@_validate_cleanup:w + \l_keys_path_str + \use_none:nnn } } -\cs_new_protected:Npn \@@_validate_cleanup:w #1 \cs_end: #2#3 { } % \end{macrocode} % \end{macro} % \end{macro} -% \end{macro} % % \begin{macro}{\@@_variable_set:NnnN, \@@_variable_set:cnnN} % \begin{macro}{\@@_variable_set_required:NnnN, \@@_variable_set_required:cnnN} @@ -2018,7 +2003,7 @@ \cs_new_protected:Npn \@@_variable_set:NnnN #1#2#3#4 { \use:c { #2_if_exist:NF } #1 { \use:c { #2 _new:N } #1 } - \@@_cmd_set:nx { \l_keys_path_str } + \@@_cmd_set:nx \l_keys_path_str { \exp_not:c { #2 _ #3 set:N #4 } \exp_not:N #1 @@ -2110,7 +2095,7 @@ % \texttt{set} function. % \begin{macrocode} \cs_new_protected:cpn { \c_@@_props_root_str .code:n } #1 - { \@@_cmd_set:nn { \l_keys_path_str } {#1} } + { \@@_cmd_set:nn \l_keys_path_str {#1} } % \end{macrocode} % \end{macro} % @@ -2447,7 +2432,7 @@ \cs_new_protected:Npn \keys_set_known:nnN #1#2#3 { \exp_args:No \@@_set_known:nnnnN - \l_@@_unused_clist { \q_@@_no_value } {#1} {#2} #3 + \l_@@_unused_clist \q_@@_no_value {#1} {#2} #3 } \cs_generate_variant:Nn \keys_set_known:nnN { nV , nv , no } \cs_new_protected:Npn \keys_set_known:nnnN #1#2#3#4 @@ -2460,11 +2445,11 @@ { \clist_clear:N \l_@@_unused_clist \@@_set_known:nnn {#2} {#3} {#4} - \tl_set:Nx #5 { \exp_not:o { \l_@@_unused_clist } } + \tl_set:Nx #5 { \exp_not:o \l_@@_unused_clist } \tl_set:Nn \l_@@_unused_clist {#1} } \cs_new_protected:Npn \keys_set_known:nn #1#2 - { \@@_set_known:nnn { \q_@@_no_value } {#1} {#2} } + { \@@_set_known:nnn \q_@@_no_value {#1} {#2} } \cs_generate_variant:Nn \keys_set_known:nn { nV , nv , no } \cs_new_protected:Npn \@@_set_known:nnn #1#2#3 { @@ -2525,7 +2510,7 @@ { \exp_args:No \@@_set_filter:nnnnnN \l_@@_unused_clist - { \q_@@_no_value } {#1} {#2} {#3} #4 + \q_@@_no_value {#1} {#2} {#3} #4 } \cs_generate_variant:Nn \keys_set_filter:nnnN { nnV , nnv , nno } \cs_new_protected:Npn \keys_set_filter:nnnnN #1#2#3#4#5 @@ -2538,11 +2523,11 @@ { \clist_clear:N \l_@@_unused_clist \@@_set_filter:nnnn {#2} {#3} {#4} {#5} - \tl_set:Nx #6 { \exp_not:o { \l_@@_unused_clist } } + \tl_set:Nx #6 { \exp_not:o \l_@@_unused_clist } \tl_set:Nn \l_@@_unused_clist {#1} } \cs_new_protected:Npn \keys_set_filter:nnn #1#2#3 - {\@@_set_filter:nnnn { \q_@@_no_value } {#1} {#2} {#3} } + {\@@_set_filter:nnnn \q_@@_no_value {#1} {#2} {#3} } \cs_generate_variant:Nn \keys_set_filter:nnn { nnV , nnv , nno } \cs_new_protected:Npn \@@_set_filter:nnnn #1#2#3#4 { @@ -2604,7 +2589,14 @@ % % \begin{macro}{\@@_set_keyval:n, \@@_set_keyval:nn} % \begin{macro}{\@@_set_keyval:nnn, \@@_set_keyval:onn} -% \begin{macro}{\@@_find_key_module:NNw} +% \begin{macro}{\@@_find_key_module:wNN} +% \begin{macro} +% { +% \@@_find_key_module_auxi:Nw , +% \@@_find_key_module_auxii:Nw , +% \@@_find_key_module_auxiii:Nn , +% \@@_find_key_module_auxiv:Nw +% } % \begin{macro}{\@@_set_selective:} % A shared system once again. First, set the current path and add a % default if needed. There are then checks to see if the a value is @@ -2638,30 +2630,46 @@ } \str_clear:N \l_@@_module_str \str_clear:N \l_@@_inherit_str - \exp_after:wN \@@_find_key_module:NNw - \exp_after:wN \l_@@_module_str - \exp_after:wN \l_keys_key_str - \l_keys_path_str / \s_@@_stop + \exp_after:wN \@@_find_key_module:wNN \l_keys_path_str \s_@@_stop + \l_@@_module_str \l_keys_key_str \tl_set_eq:NN \l_keys_key_tl \l_keys_key_str \@@_value_or_default:n {#3} \bool_if:NTF \l_@@_selective_bool - { \@@_set_selective: } - { \@@_execute: } + \@@_set_selective: + \@@_execute: \str_set:Nn \l_@@_module_str {#1} } \cs_generate_variant:Nn \@@_set_keyval:nnn { o } -\cs_new_protected:Npn \@@_find_key_module:NNw #1#2#3 / #4 \s_@@_stop +% \end{macrocode} +% This function uses \cs{cs_set_nopar:Npx} internally for performance reasons, +% the argument |#1| is already a string in every usage, so turning it into a +% string again seems unnecessary. +% \begin{macrocode} +\cs_new_protected:Npn \@@_find_key_module:wNN #1 \s_@@_stop #2 #3 { - \tl_if_blank:nTF {#4} - { \str_set:Nn #2 {#3} } - { - \str_put_right:Nx #1 - { - \str_if_empty:NF #1 { / } - #3 - } - \@@_find_key_module:NNw #1#2 #4 \s_@@_stop - } + \@@_find_key_module_auxi:Nw #2 #1 \s_@@_nil \@@_find_key_module_auxii:Nw + / \s_@@_nil \@@_find_key_module_auxiv:Nw #3 + } +\cs_new_protected:Npn \@@_find_key_module_auxi:Nw #1 #2 / #3 \s_@@_nil #4 + { + #4 #1 #2 \s_@@_mark #3 \s_@@_nil #4 + } +\cs_new_protected:Npn \@@_find_key_module_auxii:Nw + #1 #2 \s_@@_mark #3 \s_@@_nil \@@_find_key_module_auxii:Nw + { + \cs_set_nopar:Npx #1 { \tl_if_empty:NF #1 { #1 / } #2 } + \@@_find_key_module_auxi:Nw #1 #3 \s_@@_nil \@@_find_key_module_auxiii:Nw + } +\cs_new_protected:Npn \@@_find_key_module_auxiii:Nw #1 #2 \s_@@_mark + { + \cs_set_nopar:Npx #1 { \tl_if_empty:NF #1 { #1 / } #2 } + \@@_find_key_module_auxi:Nw #1 + } +\cs_new_protected:Npn \@@_find_key_module_auxiv:Nw + #1 #2 \s_@@_nil #3 \s_@@_mark + \s_@@_nil \@@_find_key_module_auxiv:Nw #4 + { + \cs_set_nopar:Npn #4 { #2 } } % \end{macrocode} % If selective setting is active, there are a number of possible sub-cases @@ -2679,8 +2687,8 @@ } { \bool_if:NTF \l_@@_filtered_bool - { \@@_execute: } - { \@@_store_unused: } + \@@_execute: + \@@_store_unused: } } % \end{macrocode} @@ -2699,20 +2707,20 @@ \str_if_eq:nnT {##1} {####1} { \bool_set_true:N \l_@@_tmp_bool - \clist_map_break:n { \seq_map_break: } + \clist_map_break:n \seq_map_break: } } } \bool_if:NTF \l_@@_tmp_bool { \bool_if:NTF \l_@@_filtered_bool - { \@@_store_unused: } - { \@@_execute: } + \@@_store_unused: + \@@_execute: } { \bool_if:NTF \l_@@_filtered_bool - { \@@_execute: } - { \@@_store_unused: } + \@@_execute: + \@@_store_unused: } } % \end{macrocode} @@ -2720,6 +2728,7 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\@@_value_or_default:n} % \begin{macro}{\@@_default_inherit:} @@ -2765,7 +2774,7 @@ % \end{macro} % % \begin{macro}{\@@_execute:, \@@_execute_inherit:, \@@_execute_unknown:} -% \begin{macro}[EXP]{\@@_execute:nn} +% \begin{macro}[EXP]{\@@_execute:nn, \@@_execute:no} % \begin{macro}{\@@_store_unused:,\@@_store_unused_aux:} % Actually executing a key is done in two parts. First, look for the % key itself, then look for the \texttt{unknown} key with the same @@ -2778,8 +2787,7 @@ \cs_if_exist:cTF { \c_@@_code_root_str \l_keys_path_str } { \cs_if_exist_use:c { \c_@@_validate_root_str \l_keys_path_str } - \cs:w \c_@@_code_root_str \l_keys_path_str \exp_after:wN \cs_end: - \exp_after:wN { \l_keys_value_tl } + \@@_execute:no \l_keys_path_str \l_keys_value_tl } { \cs_if_exist:cTF @@ -2803,10 +2811,8 @@ { \str_set:Nn \l_@@_inherit_str {##1} \cs_if_exist_use:c { \c_@@_validate_root_str ##1 / \l_keys_key_str } - \cs:w \c_@@_code_root_str ##1 / \l_keys_key_str - \exp_after:wN \cs_end: \exp_after:wN - { \l_keys_value_tl } - \clist_map_break:n { \use_none:n } + \@@_execute:no { ##1 / \l_keys_key_str } \l_keys_value_tl + \clist_map_break:n \use_none:n } } \@@_execute_unknown: @@ -2818,24 +2824,35 @@ { \cs_if_exist:cTF { \c_@@_code_root_str \l_@@_module_str / unknown } - { - \cs:w \c_@@_code_root_str \l_@@_module_str / unknown - \exp_after:wN \cs_end: \exp_after:wN { \l_keys_value_tl } - } + { \@@_execute:no { \l_@@_module_str / unknown } \l_keys_value_tl } { \__kernel_msg_error:nnxx { kernel } { key-unknown } - { \l_keys_path_str } { \l_@@_module_str } + \l_keys_path_str \l_@@_module_str } } } +% \end{macrocode} +% A key's code is in the control sequence with csname +% \cs{c_@@_code_root_str} |#1|. We expand it once to get the +% replacement text (with argument |#2|) and call \cs{use:n} +% with this replacement as its argument. This ensures that any +% undefined control sequence error in the key's code will lead to an +% error message of the form |<argument>|\ldots{}\meta{control +% sequence} in which one can read the (undefined) \meta{control +% sequence} in full, rather than an error message that starts with the +% potentially very long key name, which would make the (undefined) +% \meta{control sequence} be truncated or sometimes completely hidden. +% See \url{https://github.com/latex3/latex2e/issues/351}. +% \begin{macrocode} \cs_new:Npn \@@_execute:nn #1#2 + { \@@_execute:no {#1} { \prg_do_nothing: #2 } } +\cs_new:Npn \@@_execute:no #1#2 { - \cs_if_exist:cTF { \c_@@_code_root_str #1 } + \exp_args:NNo \exp_args:No \use:n { \cs:w \c_@@_code_root_str #1 \exp_after:wN \cs_end: - \exp_after:wN { \l_keys_value_tl } + \exp_after:wN {#2} } - {#2} } % \end{macrocode} % When there is no relative path, things here are easy: just save the key @@ -2850,7 +2867,7 @@ { \clist_put_right:Nx \l_@@_unused_clist { - \exp_not:o \l_keys_key_str + \l_keys_key_str \bool_if:NF \l_@@_no_value_bool { = { \exp_not:o \l_keys_value_tl } } } @@ -2860,7 +2877,7 @@ { \clist_put_right:Nx \l_@@_unused_clist { - \exp_not:o \l_keys_path_str + \l_keys_path_str \bool_if:NF \l_@@_no_value_bool { = { \exp_not:o \l_keys_value_tl } } } @@ -2917,7 +2934,7 @@ \cs_new:Npn \@@_choice_find:n #1 { \str_if_empty:NTF \l_@@_inherit_str - { \@@_choice_find:nn { \l_keys_path_str } {#1} } + { \@@_choice_find:nn \l_keys_path_str {#1} } { \@@_choice_find:nn { \l_@@_inherit_str / \l_keys_key_str } {#1} @@ -2926,8 +2943,8 @@ \cs_new:Npn \@@_choice_find:nn #1#2 { \cs_if_exist:cTF { \c_@@_code_root_str #1 / \@@_trim_spaces:n {#2} } - { \use:c { \c_@@_code_root_str #1 / \@@_trim_spaces:n {#2} } {#2} } - { \use:c { \c_@@_code_root_str #1 / unknown } {#2} } + { \@@_execute:nn { #1 / \@@_trim_spaces:n {#2} } {#2} } + { \@@_execute:nn { #1 / unknown } {#2} } } \cs_new:Npn \@@_multichoice_find:n #1 { \clist_map_function:nN {#1} \@@_choice_find:n } @@ -2938,23 +2955,35 @@ % % \subsection{Utilities} % -% \begin{macro}[EXP]{\@@_parent:n, \@@_parent:o} -% \begin{macro}[EXP]{\@@_parent:w} +% \begin{macro}[EXP]{\@@_parent:o} +% \begin{macro}[EXP] +% { +% \@@_parent_auxi:w , +% \@@_parent_auxii:w , +% \@@_parent_auxiii:n , +% \@@_parent_auxiv:w +% } % Used to strip off the ending part of the key path after the last~|/|. % \begin{macrocode} -\cs_new:Npn \@@_parent:n #1 - { \@@_parent:w #1 / / \s_@@_stop { } } -\cs_generate_variant:Nn \@@_parent:n { o } -\cs_new:Npn \@@_parent:w #1 / #2 / #3 \s_@@_stop #4 +\cs_new:Npn \@@_parent:o #1 + { + \exp_after:wN \@@_parent_auxi:w #1 \q_nil \@@_parent_auxii:w + / \q_nil \@@_parent_auxiv:w + } +\cs_new:Npn \@@_parent_auxi:w #1 / #2 \q_nil #3 + { + #3 { #1 } #2 \q_nil #3 + } +\cs_new:Npn \@@_parent_auxii:w #1 #2 \q_nil \@@_parent_auxii:w + { + #1 \@@_parent_auxi:w #2 \q_nil \@@_parent_auxiii:n + } +\cs_new:Npn \@@_parent_auxiii:n #1 + { + / #1 \@@_parent_auxi:w + } +\cs_new:Npn \@@_parent_auxiv:w #1 \q_nil \@@_parent_auxiv:w { - \tl_if_blank:nTF {#2} - { - \tl_if_blank:nF {#4} - { \use_none:n #4 } - } - { - \@@_parent:w #2 / #3 \s_@@_stop { #4 / #1 } - } } % \end{macrocode} % \end{macro} @@ -2968,29 +2997,43 @@ % \@@_trim_spaces_auxiii:w % } % Space stripping has to allow for the fact that the key here might have -% several parts, and spaces need to be stripped from each part. +% several parts, and spaces need to be stripped from each part. Since the key +% name is turned into a string groups can't be stripped accidentally and the +% precautions of \cs{tl_trim_spaces:n} aren't necessary, in this case it is +% much faster to just directly strip spaces around |/|. % \begin{macrocode} -\cs_new:Npn \@@_trim_spaces:n #1 - { - \exp_after:wN \@@_trim_spaces_auxi:w \tl_to_str:n {#1} - / \q_@@_nil \s_@@_stop - } -\cs_new:Npn \@@_trim_spaces_auxi:w #1 / #2 \s_@@_stop +\group_begin: + \cs_set:Npn \@@_tmp:n #1 + { + \cs_new:Npn \@@_trim_spaces:n ##1 + { + \exp_after:wN \@@_trim_spaces_auxi:w \tl_to_str:n { / ##1 } / + \s_@@_nil \@@_trim_spaces_auxi:w + \s_@@_mark \@@_trim_spaces_auxii:w + #1 / #1 + \s_@@_nil \@@_trim_spaces_auxii:w + \s_@@_mark \@@_trim_spaces_auxiii:w + } + } + \@@_tmp:n { ~ } +\group_end: +\cs_new:Npn \@@_trim_spaces_auxi:w #1 ~ / #2 \s_@@_nil #3 { - \@@_quark_if_nil:nTF {#2} - { \tl_trim_spaces:n {#1} } - { \@@_trim_spaces_auxii:w #1 / #2 } + #3 #1 / #2 \s_@@_nil #3 } -\cs_new:Npn \@@_trim_spaces_auxii:w #1 / #2 / \q_@@_nil +\cs_new:Npn \@@_trim_spaces_auxii:w #1 / ~ #2 \s_@@_mark #3 { - \tl_trim_spaces:n {#1} - \@@_trim_spaces_auxiii:w #2 / \q_@@_recursion_tail / \q_@@_recursion_stop + #3 #1 / #2 \s_@@_mark #3 } -\cs_set:Npn \@@_trim_spaces_auxiii:w #1 / +\cs_new:Npn \@@_trim_spaces_auxiii:w + / #1 / + \s_@@_nil \@@_trim_spaces_auxi:w + \s_@@_mark \@@_trim_spaces_auxii:w + / + \s_@@_nil \@@_trim_spaces_auxii:w + \s_@@_mark \@@_trim_spaces_auxiii:w { - \@@_if_recursion_tail_stop:n {#1} - / \tl_trim_spaces:n { #1 } - \@@_trim_spaces_auxiii:w + #1 } % \end{macrocode} % \end{macro} @@ -3102,7 +3145,7 @@ % \end{macrocode} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % %\end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx index c0fbef37454..33d3749515b 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx index 298ecee05e8..01686ced0da 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -216,7 +216,7 @@ % \section{\pkg{l3luatex} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \subsection{Breaking out to \Lua{}} @@ -556,43 +556,12 @@ l3kernel.shellescape = shellescape % \end{macrocode} % \end{macro} % -% \subsection{Generic \Lua{} and font support} -% -% \begin{macrocode} -%<*initex> -% \end{macrocode} -% -% \begin{macrocode} -%<@@=alloc> -% \end{macrocode} -% -% A small amount of generic code is used by almost all \LuaTeX{} material so -% needs to be loaded by the format. -% \begin{macrocode} -attribute_count_name = "g_@@_attribute_int" -bytecode_count_name = "g_@@_bytecode_int" -chunkname_count_name = "g_@@_chunkname_int" -whatsit_count_name = "g_@@_whatsit_int" -require("ltluatex") -% \end{macrocode} -% -% With the above available the font loader code used by plain \TeX{} and -% \LaTeXe{} when used with \LuaTeX{} can be loaded here. This is thus being -% treated more-or-less as part of the engine itself. -% \begin{macrocode} -require("luaotfload-main") -local _void = luaotfload.main() -% \end{macrocode} -% \begin{macrocode} -%</initex> -% \end{macrocode} -% % \begin{macrocode} %</lua> % \end{macrocode} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % %\end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx index 5cbc7e9b09c..f95f4ddabd4 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -564,7 +564,7 @@ % \section{\pkg{l3msg} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -901,12 +901,8 @@ % \subsection{Displaying messages} % % \LaTeX{} is handling error messages and so the \TeX{} ones are disabled. -% This is already done by the \LaTeXe{} kernel, so to avoid messing up any -% deliberate change by a user this is only set in format mode. % \begin{macrocode} -%<*initex> \int_gset:Nn \tex_errorcontextlines:D { -1 } -%</initex> % \end{macrocode} % % \begin{macro}[EXP] @@ -974,12 +970,7 @@ { \prop_if_in:NnTF \g_msg_module_type_prop {#1} { \prop_item:Nn \g_msg_module_type_prop {#1} } -%<*initex> - { Module } -%</initex> -%<*package> { Package } -%</package> } % \end{macrocode} % \end{macro} @@ -1404,7 +1395,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_use:nnnnnnn #1#2#3#4#5#6#7 { -%<package> \cs_if_exist_use:N \conditionally@traceoff + \cs_if_exist_use:N \conditionally@traceoff \msg_if_exist:nnTF {#2} {#3} { \@@_class_chk_exist:nT {#1} @@ -1422,7 +1413,7 @@ } } { \__kernel_msg_error:nnxx { kernel } { message-unknown } {#2} {#3} } -%<package> \cs_if_exist_use:N \conditionally@traceon + \cs_if_exist_use:N \conditionally@traceon } \cs_new_protected:Npn \@@_use_code: { } % \end{macrocode} @@ -1665,23 +1656,32 @@ % % \begin{macro} % { -% \__kernel_msg_fatal:nnnnnn , -% \__kernel_msg_fatal:nnnnn , -% \__kernel_msg_fatal:nnnn , -% \__kernel_msg_fatal:nnn , -% \__kernel_msg_fatal:nn , -% \__kernel_msg_fatal:nnxxxx , -% \__kernel_msg_fatal:nnxxx , -% \__kernel_msg_fatal:nnxx , -% \__kernel_msg_fatal:nnx , -% \__kernel_msg_error:nnnnnn , -% \__kernel_msg_error:nnnnn , -% \__kernel_msg_error:nnnn , -% \__kernel_msg_error:nnn , -% \__kernel_msg_error:nn , -% \__kernel_msg_error:nnxxxx , -% \__kernel_msg_error:nnxxx , -% \__kernel_msg_error:nnxx , +% \__kernel_msg_fatal:nnnnnn , +% \__kernel_msg_fatal:nnnnn , +% \__kernel_msg_fatal:nnnn , +% \__kernel_msg_fatal:nnn , +% \__kernel_msg_fatal:nn , +% \__kernel_msg_fatal:nnxxxx , +% \__kernel_msg_fatal:nnxxx , +% \__kernel_msg_fatal:nnxx , +% \__kernel_msg_fatal:nnx , +% \__kernel_msg_critical:nnnnnn , +% \__kernel_msg_critical:nnnnn , +% \__kernel_msg_critical:nnnn , +% \__kernel_msg_critical:nnn , +% \__kernel_msg_critical:nn , +% \__kernel_msg_critical:nnxxxx , +% \__kernel_msg_critical:nnxxx , +% \__kernel_msg_critical:nnxx , +% \__kernel_msg_critical:nnx , +% \__kernel_msg_error:nnnnnn , +% \__kernel_msg_error:nnnnn , +% \__kernel_msg_error:nnnn , +% \__kernel_msg_error:nnn , +% \__kernel_msg_error:nn , +% \__kernel_msg_error:nnxxxx , +% \__kernel_msg_error:nnxxx , +% \__kernel_msg_error:nnxx , % \__kernel_msg_error:nnx % } % Neither fatal kernel errors nor kernel errors can be redirected. We @@ -1691,6 +1691,7 @@ % errors. % \begin{macrocode} \@@_kernel_class_new:nN { fatal } \@@_fatal_code:nnnnnn + \@@_kernel_class_new:nN { critical } \@@_critical_code:nnnnnn \cs_undefine:N \__kernel_msg_error:nnxx \cs_undefine:N \__kernel_msg_error:nnx \cs_undefine:N \__kernel_msg_error:nn @@ -1977,28 +1978,15 @@ % \texttt{log-functions}, or on the contrary if debugging is turned off. % In format mode the error is somewhat different. % \begin{macrocode} -%<*package> -\__kernel_msg_new:nnnn { kernel } { enable-debug } - { To~use~'#1'~load~expl3~with~the~'enable-debug'~option. } - { - The~function~'#1'~will~be~ignored~because~it~can~only~work~if~ - some~internal~functions~in~expl3~have~been~appropriately~ - defined.~This~only~happens~if~one~of~the~options~ - 'enable-debug',~'check-declarations'~or~'log-functions'~was~ - given~when~loading~expl3. - } -%</package> -%<*initex> \__kernel_msg_new:nnnn { kernel } { enable-debug } - { '#1'~cannot~be~used~in~format~mode. } + { To~use~'#1'~set~the~'enable-debug'~option. } { The~function~'#1'~will~be~ignored~because~it~can~only~work~if~ some~internal~functions~in~expl3~have~been~appropriately~ - defined.~This~only~happens~in~package~mode~(and~only~if~one~of~ - the~options~'enable-debug',~'check-declarations'~or~'log-functions'~ - was~given~when~loading~expl3. + defined.~This~only~happens~if~one~of~the~options~ + 'enable-debug',~'check-declarations'~or~'log-functions'~was~ + given~as~an~option:~see~the~main~expl3~documentation. } -%</initex> % \end{macrocode} % % Some errors only appear in expandable settings, @@ -2235,7 +2223,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx index 03a9f2ae2b9..d070bb29528 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -56,7 +56,6 @@ % \begin{itemize} % \item defines new names for all \TeX{} primitives; % \item switches to the category code r{\'e}gime for programming; -% \item provides support settings for building the code as a \TeX{} format. % \end{itemize} % % This module is entirely dedicated to primitives, which should not be @@ -76,7 +75,7 @@ % \section{\pkg{l3names} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % The prefix here is \texttt{kernel}. A few places need |@@| to be left @@ -86,8 +85,7 @@ % \end{macrocode} % % The code here simply renames all of the primitives to new, internal, -% names. In format mode, it also deletes all of the existing names (although -% some do come back later). +% names. % % The \tn{let} primitive is renamed by hand first as it is essential for % the entire process to follow. This also uses \tn{global}, as that way @@ -104,23 +102,17 @@ % \end{macrocode} % % \begin{macro}{\@@_primitive:NN} -% A temporary function to actually do the renaming. This also allows the -% original names to be removed in format mode. +% A temporary function to actually do the renaming. % \begin{macrocode} \long \def \@@_primitive:NN #1#2 - { - \tex_global:D \tex_let:D #2 #1 -%<*initex> - \tex_global:D \tex_let:D #1 \tex_undefined:D -%</initex> - } + { \tex_global:D \tex_let:D #2 #1 } % \end{macrocode} %\end{macro} % % To allow extracting \enquote{just the names}, a bit of DocStrip fiddling. % \begin{macrocode} -%</initex|package> -%<*initex|names|package> +%</package> +%<*names|package> % \end{macrocode} % % In the current incarnation of this package, all \TeX{} primitives @@ -675,8 +667,8 @@ % for \LuaTeX{} tracking all of that would be hard. Instead, we now check that % we only save primitives if they actually exist. % \begin{macrocode} -%</initex|names|package> -%<*initex|package> +%</names|package> +%<*package> \tex_long:D \tex_def:D \use_ii:nn #1#2 {#2} \tex_long:D \tex_def:D \use_none:n #1 { } \tex_long:D \tex_def:D \@@_primitive:NN #1#2 @@ -685,12 +677,9 @@ \tex_expandafter:D \use_ii:nn \tex_fi:D \use_none:n { \tex_global:D \tex_let:D #2 #1 } -%<*initex> - \tex_global:D \tex_let:D #1 \tex_undefined:D -%</initex> } -%</initex|package> -%<*initex|names|package> +%</package> +%<*names|package> % \end{macrocode} % \XeTeX{}-specific primitives. Note that \XeTeX{}'s \tn{strcmp} is % handled earlier and is \enquote{rolled up} into \tn{pdfstrcmp}. @@ -1197,8 +1186,8 @@ % \end{macrocode} % End of the \enquote{just the names} part of the source. % \begin{macrocode} -%</initex|names|package> -%<*initex|package> +%</names|package> +%<*package> % \end{macrocode} % % The job is done: close the group (using the primitive renamed!). @@ -1212,7 +1201,6 @@ % At the beginning of the \LaTeXe{} format, the primitives \tn{end} and % \tn{input} are renamed, and only later on the other ones. % \begin{macrocode} -%<*package> \tex_ifdefined:D \@@@@end \tex_let:D \tex_end:D \@@@@end \tex_let:D \tex_input:D \@@@@input @@ -1368,7 +1356,6 @@ \tex_let:D \tex_mapfile:D \tex_undefined:D \tex_let:D \tex_mapline:D \tex_undefined:D \tex_fi:D -%</package> % \end{macrocode} % A few packages do unfortunate things to date-related primitives. % \begin{macrocode} @@ -1403,13 +1390,11 @@ % confusing. Removing them means that \cs{tex_pdftexversion:D} is % a marker for \pdfTeX{} alone: useful in engine-dependent code later. % \begin{macrocode} -%<*initex|package> \tex_ifdefined:D \tex_luatexversion:D \tex_let:D \tex_pdftexbanner:D \tex_undefined:D \tex_let:D \tex_pdftexrevision:D \tex_undefined:D \tex_let:D \tex_pdftexversion:D \tex_undefined:D \tex_fi:D -%</initex|package> % \end{macrocode} % % For \ConTeXt{}, two tests are needed. Both Mark~II and Mark~IV move several @@ -1417,7 +1402,6 @@ % as a marker. For Mark~IV, a few more primitives are moved: they are % implemented using some Lua code in the current \ConTeXt{}. % \begin{macrocode} -%<*package> \tex_ifdefined:D \normalend \tex_let:D \tex_end:D \normalend \tex_let:D \tex_everyjob:D \normaleveryjob @@ -1444,11 +1428,10 @@ \tex_let:D \tex_middle:D \normalmiddle \tex_let:D \tex_right:D \normalright \tex_fi:D -%</package> % \end{macrocode} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx index c1f794e0158..c993560bf78 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -770,7 +770,7 @@ % \TestFiles{m3prg001.lvt,m3prg002.lvt,m3prg003.lvt} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \subsection{Primitive conditionals} @@ -1648,13 +1648,12 @@ % % \begin{macro}{\prg_break_point:} % \begin{macro}{\prg_break:, \prg_break:n} -% Also done in \pkg{l3basics} as in format mode these are needed within -% \pkg{l3alloc}. +% Also done in \pkg{l3basics}. % \end{macro} % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx index 790f0e3b311..d8923d2177c 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -525,7 +525,7 @@ % \TestFiles{m3prop001, m3prop002, m3prop003, m3prop004, m3show001} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -1369,7 +1369,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx index 62474447ef2..d0adf2a00c7 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -354,7 +354,7 @@ % \TestFiles{m3quark001.lvt} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \subsection{Quarks} @@ -1003,7 +1003,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx index 3820ecdb671..dcc408e48b9 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -811,7 +811,7 @@ % \section{\pkg{l3regex} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -6716,7 +6716,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx index bd935c6f602..b0a1638170b 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -988,7 +988,7 @@ % \TestFiles{m3seq002,m3seq003} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -2357,7 +2357,7 @@ % \end{variable} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx index a87f9409388..9987d4f57cd 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -1065,7 +1065,7 @@ % \section{\pkg{l3skip} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -1109,13 +1109,11 @@ % \begin{macro}{\dim_new:N, \dim_new:c} % Allocating \meta{dim} registers \ldots % \begin{macrocode} -%<*package> \cs_new_protected:Npn \dim_new:N #1 { \__kernel_chk_if_free_cs:N #1 \cs:w newdimen \cs_end: #1 } -%</package> \cs_generate_variant:Nn \dim_new:N { c } % \end{macrocode} % \end{macro} @@ -1793,13 +1791,11 @@ % \begin{macro}{\skip_new:N, \skip_new:c} % Allocation of a new internal registers. % \begin{macrocode} -%<*package> \cs_new_protected:Npn \skip_new:N #1 { \__kernel_chk_if_free_cs:N #1 \cs:w newskip \cs_end: #1 } -%</package> \cs_generate_variant:Nn \skip_new:N { c } % \end{macrocode} % \end{macro} @@ -2044,13 +2040,11 @@ % \begin{macro}{\muskip_new:N, \muskip_new:c} % And then we add muskips. % \begin{macrocode} -%<*package> \cs_new_protected:Npn \muskip_new:N #1 { \__kernel_chk_if_free_cs:N #1 \cs:w newmuskip \cs_end: #1 } -%</package> \cs_generate_variant:Nn \muskip_new:N { c } % \end{macrocode} % \end{macro} @@ -2242,7 +2236,7 @@ % \end{variable} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx index b84c2e298a9..808d6214d0f 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -112,7 +112,7 @@ % \section{\pkg{l3sort} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -271,12 +271,8 @@ % In \ConTeXt{} MkIV the range is from % $|\c_syst_last_allocated_toks|+1$ to \cs{c_max_register_int}, and in % MkII it is from $|\lastallocatedtoks|+1$ to \cs{c_max_register_int}. -% In all these cases, call \cs{@@_shrink_range:}. The \LaTeX3 format -% mode is easiest: no \tn{toks} are ever allocated so available -% \tn{toks} range from $0$ to \cs{c_max_register_int} and we -% precompute the result of \cs{@@_shrink_range:}. +% In all these cases, call \cs{@@_shrink_range:}. % \begin{macrocode} -%<*package> \cs_new_protected:Npn \@@_compute_range: { \int_set:Nn \l_@@_min_int { \tex_count:D 15 + 1 } @@ -322,17 +318,6 @@ } } } -%</package> -%<*initex> -\int_const:Nn \c_@@_max_length_int - { ( \c_max_register_int + 1 ) * 3 / 4 } -\cs_new_protected:Npn \@@_compute_range: - { - \int_set:Nn \l_@@_min_int { 0 } - \int_set:Nn \l_@@_true_max_int { \c_max_register_int + 1 } - \int_set:Nn \l_@@_max_int { \c_@@_max_length_int } - } -%</initex> % \end{macrocode} % \end{variable} % \end{macro} @@ -352,7 +337,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_main:NNNn #1#2#3#4 { -%<package> \@@_disable_toksdef: + \@@_disable_toksdef: \@@_compute_range: \int_set_eq:NN \l_@@_top_int \l_@@_min_int #1 #3 @@ -1036,7 +1021,6 @@ % \pkg{l3sort}. In format mode, none of this is needed since there is % no \tn{toks} allocator. % \begin{macrocode} -%<*package> \cs_new_protected:Npn \@@_disable_toksdef: { \cs_set_eq:NN \toksdef \@@_disabled_toksdef:n } \cs_new_protected:Npn \@@_disabled_toksdef:n #1 @@ -1054,7 +1038,6 @@ \iow_char:N\\newtoks~ or~a~similar~command.~The~list~will~not~be~sorted. } -%</package> % \end{macrocode} % \end{macro} % @@ -1103,7 +1086,7 @@ % \end{macrocode} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx index e57c165f1b0..324066cd414 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -249,7 +249,7 @@ % \section{\pkg{l3str-convert} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -2654,7 +2654,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \subsubsection{\textsc{iso 8859} support} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx index 539881e1396..466519ac8c2 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -857,7 +857,7 @@ % \section{\pkg{l3str} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -2022,7 +2022,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx index b15b61d521b..16cdfe6f3d5 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -300,7 +300,7 @@ % \subsection{Kernel code} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \subsubsection{Detecting the engine} @@ -874,7 +874,7 @@ % \end{variable} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % %\end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx index a3dde63359f..0f56576b23c 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -56,7 +56,7 @@ % \section{\pkg{l3text-case} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -1584,7 +1584,7 @@ % \end{macrocode} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx index c48ac585a20..9978eb3cc05 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -56,7 +56,7 @@ % \section{\pkg{l3text-purify} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -810,7 +810,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx index 2946a48df37..b1246336dac 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -270,7 +270,7 @@ % \section{\pkg{l3text} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -515,7 +515,6 @@ % Special cases for accents and letter-like symbols, which in some cases will % need to be converted further. % \begin{macrocode} -%<*package> \tl_new:N \l_text_accents_tl \tl_set:Nn \l_text_accents_tl { \` \' \^ \~ \= \u \. \" \r \H \v \d \c \k \b \t } @@ -534,7 +533,6 @@ \SS \ss \TH \th } -%</package> % \end{macrocode} % \end{variable} % @@ -566,10 +564,8 @@ % Commands which need not to expand. % \begin{macrocode} \tl_new:N \l_text_expand_exclude_tl -%<*package> \tl_set:Nn \l_text_expand_exclude_tl { \begin \cite \end \label \ref } -%</package> % \end{macrocode} % \end{variable} % @@ -862,13 +858,6 @@ % \begin{macrocode} \cs_new:Npn \@@_expand_exclude:N #1 { -%<*initex> - \exp_after:wN \@@_expand_exclude:NN - \l_text_math_arg_tl - #1 - \q_@@_recursion_tail \q_@@_recursion_stop -%</initex> -%<*package> \exp_args:Ne \@@_expand_exclude:nN { \exp_not:V \l_text_math_arg_tl @@ -876,24 +865,16 @@ \exp_not:V \l_text_expand_exclude_tl } #1 -%</package> } -%<*package> \cs_new:Npn \@@_expand_exclude:nN #1#2 { \@@_expand_exclude:NN #2 #1 \q_@@_recursion_tail \q_@@_recursion_stop } -%</package> \cs_new:Npn \@@_expand_exclude:NN #1#2 { \@@_if_recursion_tail_stop_do:Nn #2 -%<*initex> - { \@@_expand_cs:N #1 } -%</initex> -%<*package> { \@@_expand_letterlike:N #1 } -%</package> \cs_if_eq:NNTF #2 #1 { \@@_use_i_delimit_by_q_recursion_stop:nw @@ -910,7 +891,6 @@ % Another list of exceptions: these ones take no arguments so are % easier to handle. % \begin{macrocode} -%<*package> \cs_new:Npn \@@_expand_letterlike:N #1 { \exp_after:wN \@@_expand_letterlike:NN \exp_after:wN @@ -931,7 +911,6 @@ } { \@@_expand_letterlike:NN #1 } } -%</package> % \end{macrocode} % \LaTeXe{}'s \cs{protect} makes life interesting. Where possible, we % simply remove it and replace with the \enquote{parent} command; of course, @@ -1076,7 +1055,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx index 4944e42682a..14af0c466e2 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -165,7 +165,7 @@ % ^^A which does not add the <active char> in memory. % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \subsection{Variables and helper functions} @@ -1098,7 +1098,7 @@ % \end{macrocode} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx index c315612b435..5e088e45584 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -1256,7 +1256,7 @@ % \section{\pkg{l3tl} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -3460,7 +3460,7 @@ % \end{variable} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx index cffbea2c975..11f4fc4bcd0 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -1108,7 +1108,7 @@ % \section{\pkg{l3token} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -1448,10 +1448,8 @@ % auxiliaries reflects that. % \begin{macrocode} \group_begin: -%<*package> \char_set_catcode_active:N \^^L \cs_set:Npn ^^L { } -%</package> \char_set_catcode_other:n { 0 } \if_int_odd:w 0 \sys_if_engine_luatex:T { 1 } @@ -1534,8 +1532,8 @@ % lists, one for each character code, using \tn{tex_lowercase:D} to % convert |^^@| in each case. The \texttt{x}-type expansion ensures % that \tn{tex_lowercase:D} receives the contents of the token list. -% In package mode, |^^L| is awkward hence this is done in three parts. -% Notice that at this stage |^^@| is active. +% |^^L| is awkward hence this is done in three parts: up to |^^L|, +% |^^L| itslef and above |^L|. Notice that at this stage |^^@| is active. % \begin{macrocode} \cs_set_protected:Npn \@@_tmp:n #1 { @@ -1548,17 +1546,12 @@ { \exp_not:o \l_@@_tmp_tl } } } -%<*package> \int_step_function:nnN { 0 } { 11 } \@@_tmp:n \group_begin: \tl_replace_once:Nnn \l_@@_tmp_tl { ^^@ } { \ERROR } \@@_tmp:n { 12 } \group_end: \int_step_function:nnN { 13 } { 255 } \@@_tmp:n -%</package> -%<*initex> - \int_step_function:nnN { 0 } { 255 } \@@_tmp:n -%</initex> % \end{macrocode} % As \TeX{} is very unhappy if it finds an alignment character inside % a primitive \tn{halign} even when skipping false branches, some @@ -2876,7 +2869,7 @@ % \end{macro} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx index 334e8b7086c..3c55fdfc85a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-07-17} +% \date{Released 2020-08-07} % % \maketitle % @@ -60,7 +60,7 @@ % \section{\pkg{l3unicode} implementation} % % \begin{macrocode} -%<*initex|package> +%<*package> % \end{macrocode} % % \begin{macrocode} @@ -280,7 +280,7 @@ % \end{macrocode} % % \begin{macrocode} -%</initex|package> +%</package> % \end{macrocode} % % \end{implementation} |