summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-12-07 23:16:26 +0000
committerKarl Berry <karl@freefriends.org>2017-12-07 23:16:26 +0000
commit1fed4553e07e0372e12d6a1ac32f29b3c7a2a538 (patch)
tree1cbfce535eaa4ad401f88e70d29998b9ffe4d2ec /Master/texmf-dist
parenta1e3748b2a855f1a0c875df7f9585e1a01c44d9a (diff)
l3experimental+l3build (7dec17)
git-svn-id: svn://tug.org/texlive/trunk@46013 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/l3build/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3build/l3build.pdfbin633630 -> 632262 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdfbin440777 -> 440927 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdfbin373740 -> 373904 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdfbin372264 -> 372410 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdfbin385971 -> 386118 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdfbin285816 -> 285966 bytes
-rw-r--r--Master/texmf-dist/source/latex/l3build/l3build.dtx136
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx200
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx72
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3str/l3str.ins2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx10
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.ins4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx129
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx31
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.ins4
-rw-r--r--Master/texmf-dist/tex/latex/l3build/l3build.lua69
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def9
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty69
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty28
24 files changed, 412 insertions, 371 deletions
diff --git a/Master/texmf-dist/doc/latex/l3build/README.md b/Master/texmf-dist/doc/latex/l3build/README.md
index 8624e438fa1..3de52e59af6 100644
--- a/Master/texmf-dist/doc/latex/l3build/README.md
+++ b/Master/texmf-dist/doc/latex/l3build/README.md
@@ -1,7 +1,7 @@
l3build: a testing and building system for LaTeX3
=================================================
-Release 2017/11/25
+Release 2017/12/06
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/l3build/l3build.pdf b/Master/texmf-dist/doc/latex/l3build/l3build.pdf
index a52f815993e..d781b81fb3b 100644
--- a/Master/texmf-dist/doc/latex/l3build/l3build.pdf
+++ b/Master/texmf-dist/doc/latex/l3build/l3build.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/README.md b/Master/texmf-dist/doc/latex/l3experimental/README.md
index 62e377953ab..4d32c5de31d 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/README.md
+++ b/Master/texmf-dist/doc/latex/l3experimental/README.md
@@ -1,7 +1,7 @@
Experimental LaTeX3 Concepts
============================
-Release 2017/11/14
+Release 2017/12/05
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdf
index 13333808bd6..3b7ad3069e8 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
index cfe4ec439a0..9acd2e8449c 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf
index 3bb9cfae2e8..588debf9270 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf b/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
index 18ec008ff6a..5f51f8da300 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf b/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf
index d5a513a76bf..07acb7ce19b 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/l3build/l3build.dtx b/Master/texmf-dist/source/latex/l3build/l3build.dtx
index d894295b15c..d5adf1a913f 100644
--- a/Master/texmf-dist/source/latex/l3build/l3build.dtx
+++ b/Master/texmf-dist/source/latex/l3build/l3build.dtx
@@ -50,71 +50,71 @@
\newcommand\luavarseparator{}
\makeatother
\def\allluavars{
-\luavarset{module}{""}{The name of the module.}
-\luavarset{bundle}{""}{The name of the bundle in which the module belongs.}
-\luavarset{ctanpkg}{bundle}{Name of the bundle on CTAN}
+\luavarset{module}{""}{The name of the module}
+\luavarset{bundle}{""}{The name of the bundle in which the module belongs (where relevant)}
+\luavarset{ctanpkg}{module/bundle}{Name of the CTAN package matching this module}
\luavarseparator
-\luavarset{modules}{\{~\}}{The list of all modules in a bundle (when not auto-detecting)}
-\luavarset{exclmodules}{\{~\}}{Directories to be excluded from automatic module detection}
+\luavarset{modules}{\{\}}{The list of all modules in a bundle (when not auto-detecting)}
+\luavarset{exclmodules}{\{\}}{Directories to be excluded from automatic module detection}
\luavarseparator
-\luavarset{maindir} {"."}{The top level directory for this module or bundle.}
-\luavarset{supportdir} {maindir .. "/support"} {Where copies of files to support check/doc compilation are stored.}
-\luavarset{testfiledir} {maindir .. "/testfiles"} {Where the tests are.}
-\luavarset{testsuppdir} {testfiledir .. "/support"} {Where support files for the tests are.}
+\luavarset{maindir} {"."} {Top level directory for the module/bundle}
+\luavarset{docfiledir} {maindir} {Directory containing documentation files}
+\luavarset{supportdir} {maindir .. "/support"} {Directory containing general support files}
+\luavarset{testfiledir}{maindir .. "/testfiles"} {Directory containing test files}
+\luavarset{testsuppdir}{testfiledir .. "/support"}{Directory containing test-specific support files}
\luavarseparator
-\luavarset{localdir} {maindir .. "/build/local"} {Generated folder where support files are placed to allow \enquote{sandboxed} \TeX{} runs.}
-\luavarset{testdir} {maindir .. "/build/test"} {Generated folder where tests are run.}
-\luavarset{typesetdir} {maindir .. "/build/doc"} {Generated folder where typesetting is run.}
-\luavarset{unpackdir} {maindir .. "/build/unpack"} {Generated folder where unpacking occurs.}
-\luavarset{distribdir} {maindir .. "/build/distrib"}{Generated folder where the archive is created.}
-\luavarset{ctandir} {distribdir .. "/ctan"} {Generated folder where files are organised for CTAN.}
-\luavarset{tdsdir} {distribdir .. "/tds"} {Generated folder where files are organised for a TDS.}
-\luavarset{tdsroot} {"latex"}{Root directory of the TDS structure for the bundle/module to be installed into.}
+\luavarset{distribdir}{maindir .. "/build/distrib"}{Directory for generating distribution structure}
+\luavarset{localdir} {maindir .. "/build/local"} {Directory for extracted files in \enquote{sandboxed} \TeX{} runs}
+\luavarset{testdir} {maindir .. "/build/test"} {Directory for running tests}
+\luavarset{typesetdir}{maindir .. "/build/doc"} {Directory for building documentation}
+\luavarset{unpackdir} {maindir .. "/build/unpack"} {Directory for unpacking sources}
\luavarseparator
-\luavarset{bibfiles} {\{"*.bib"\}}{\BibTeX{} database files.}
-\luavarset{binaryfiles} {\{"*.pdf", "*.zip"\}}
- {Files to be added in binary mode to zip files.}
-\luavarset{bstfiles} {\{"*.bst"\}}{\BibTeX{} style files.}
+\luavarset{ctandir}{distribdir .. "/ctan"}{Directory for organising files for CTAN}
+\luavarset{tdsdir} {distribdir .. "/tds"} {Directory for organised files into TDS structure}
+\luavarset{tdsroot}{"latex"}{Root directory of the TDS structure for the bundle/module to be installed into}
+\luavarseparator
+\luavarset{bibfiles} {\{"*.bib"\}}{\BibTeX{} database files}
+\luavarset{binaryfiles} {\{"*.pdf", "*.zip"\}}{Files to be added in binary mode to zip files}
+\luavarset{bstfiles} {\{"*.bst"\}}{\BibTeX{} style files}
\luavarset{checkfiles} {\{~\}}{Extra files unpacked purely for tests}
-\luavarset{checksuppfiles} { }{Files needed for performing regression tests.}
-\luavarset{cmdchkfiles} {\{~\}}{Files need to perform command checking (\cls{l3doc}-based documentation only).}
-\luavarset{cleanfiles} {\{"*.log", "*.pdf", "*.zip"\}}{Files to delete when cleaning.}
-\luavarset{demofiles} {\{~\}}{Files which show how to use a module.}
-\luavarset{docfiles} {\{~\}}{Files which are part of the documentation but should not be typeset.}
-\luavarset{excludefiles} {\{"*\string~"\}} {Files to ignore entirely (default for Emacs backup files).}
-\luavarset{installfiles} {\{"*.sty","*.cls"\}} {Files to install to the \TeX{} tree and similar tasks.}
+\luavarset{checksuppfiles} { }{Files needed for performing regression tests}
+\luavarset{cmdchkfiles} {\{\}}{Files need to perform command checking (\cls{l3doc}-based documentation only)}
+\luavarset{cleanfiles} {\{"*.log", "*.pdf", "*.zip"\}}{Files to delete when cleaning}
+\luavarset{demofiles} {\{\}}{Files which show how to use a module}
+\luavarset{docfiles} {\{\}}{Files which are part of the documentation but should not be typeset}
+\luavarset{excludefiles} {\{"*\string~"\}}{Files to ignore entirely (default for Emacs backup files)}
+\luavarset{installfiles} {\{"*.sty","*.cls"\}}{Files to install to the \TeX{} tree and similar task}
\luavarset{makeindexfiles} {\{"*.ist"\}}{MakeIndex files to be included in a TDS-style zip}
-\luavarset{sourcefiles} {\{"*.dtx", "*.ins"\}}{Files to copy for unpacking.}
-\luavarset{textfiles} {\{"*.md", "*.txt"\}}{Plain text files to send to CTAN as-is.}
-\luavarset{typesetdemofiles} {\{~\}} {Files to typeset before the documentation (as demos), but where the PDF results are not included in the release.}
-\luavarset{typesetfiles} {\{"*.dtx"\}} {Files to typeset for documentation.}
-\luavarset{docfiledir} {maindir}{Where to look for the |typesetfiles| and |typesetsourcefiles|.}
-\luavarset{typesetsuppfiles} {\{~\}} {Files needed to support typesetting when \enquote{sandboxed}.}
-\luavarset{typesetsourcefiles}{\{~\}} {Files to copy to unpacking when typesetting.}
-\luavarset{unpackfiles} {\{"*.ins"\}} {Files to run to perform unpacking.}
-\luavarset{unpacksuppfiles} {\{~\}} {Files needed to support unpacking when \enquote{sandboxed}.}
-\luavarset{versionfiles} {\{"*.dtx"\}} {Files for automatic version editing.}
+\luavarset{sourcefiles} {\{"*.dtx", "*.ins"\}}{Files to copy for unpacking}
+\luavarset{textfiles} {\{"*.md", "*.txt"\}}{Plain text files to send to CTAN as-is}
+\luavarset{typesetdemofiles} {\{\}}{Files to typeset before the documentation for inclusion in main documentation files}
+\luavarset{typesetfiles} {\{"*.dtx"\}}{Files to typeset for documentation}
+\luavarset{typesetsuppfiles} {\{\}}{Files needed to support typesetting when \enquote{sandboxed}}
+\luavarset{typesetsourcefiles}{\{\}}{Files to copy to unpacking when typesetting.}
+\luavarset{unpackfiles} {\{"*.ins"\}}{Files to run to perform unpacking.}
+\luavarset{unpacksuppfiles} {\{\}}{Files needed to support unpacking when \enquote{sandboxed}}
+\luavarset{versionfiles} {\{"*.dtx"\}}{Files for automatic version editing}
\luavarseparator
-\luavarset{bakext} {".bak"} {Extension of backup files.}
-\luavarset{dviext} {".dvi"} {Extension of DVI files.}
-\luavarset{lvtext} {".lvt"} {Extension of test files.}
-\luavarset{tlgext} {".tlg"} {Extension of test file output.}
-\luavarset{lveext} {".lve"} {Extension of auto-generating test file output.}
-\luavarset{logext} {".log"} {Extension of checking output, before processing it into a \texttt{.tlg}.}
-\luavarset{pdfext} {".pdf"} {Extension of PDF file for checking and saving.}
-\luavarset{psext} {".ps"} {Extension of PostScript files.}
+\luavarset{bakext}{".bak"}{Extension of backup files}
+\luavarset{dviext}{".dvi"}{Extension of DVI files}
+\luavarset{lvtext}{".lvt"}{Extension of test files}
+\luavarset{tlgext}{".tlg"}{Extension of test file output}
+\luavarset{lveext}{".lve"}{Extension of auto-generating test file output}
+\luavarset{logext}{".log"}{Extension of checking output, before processing it into a \texttt{.tlg}}
+\luavarset{pdfext}{".pdf"}{Extension of PDF file for checking and saving}
+\luavarset{psext} {".ps"} {Extension of PostScript files}
\luavarseparator
-\luavarset{checkdeps} {\{~\}} {List of build unpack dependencies for checking.}
-\luavarset{typesetdeps} {\{~\}} {\dots for typesetting docs.}
-\luavarset{unpackdeps} {\{~\}} {\dots for unpacking.}
+\luavarset{checkdeps} {\{\}}{List of dependencies for running checks}
+\luavarset{typesetdeps}{\{\}}{List of dependencies for typesetting docs}
+\luavarset{unpackdeps} {\{\}}{List of dependencies for unpacking}
\luavarseparator
-\luavarset{checkengines}{\{"pdftex", "xetex", "luatex"\}} {Engines to check with \texttt{check} by default.}
-\luavarset{stdengine} {"pdftex"} {Engine to generate \texttt{.tlg} file from.}
-\luavarset{checkformat} {"latex"} {Format to use for tests.}
+\luavarset{checkengines}{\{"pdftex", "xetex", "luatex"\}}{Engines to check with \texttt{check} by default}
+\luavarset{stdengine} {"pdftex"}{Engine to generate \texttt{.tlg} file from}
+\luavarset{checkformat} {"latex"} {Format to use for tests}
\luavarseparator
-\luavarset{typesetexe} {"pdflatex"} {Executable for compiling \texttt{doc(s)}.}
-\luavarset{unpackexe} {"tex"} {Executable for running \texttt{unpack}.}
-\luavarset{zipexe} {"zip"} {Executable for creating archive with \texttt{ctan}.}
+\luavarset{typesetexe}{"pdflatex"}{Executable for compiling \texttt{doc(s)}}
+\luavarset{unpackexe} {"tex"} {Executable for running \texttt{unpack}}
+\luavarset{zipexe} {"zip"} {Executable for creating archive with \texttt{ctan}}
\luavarseparator
\luavarset{checkopts} {"-interaction=nonstopmode"}{Options based to engine when running checks.}
\luavarset{cmdchkopts} {"-interaction=batchmode"} {Options based to engine when running command checks.}
@@ -122,9 +122,9 @@
\luavarset{unpackopts} {""} {Options based to engine when unpacking.}
\luavarset{zipopts} {"-v -r -X"} {Options based to zip program.}
\luavarseparator
-\luavarset{checksearch} {true} {Look in \texttt{tds} dirs for checking?}
-\luavarset{typesetsearch}{true} {Look in \texttt{tds} dirs for typesetting docs?}
-\luavarset{unpacksearch} {true} {Look in \texttt{tds} dirs for unpacking?}
+\luavarset{checksearch} {true}{Switch to search the system \texttt{texmf} for during checking}
+\luavarset{typesetsearch}{true}{Switch to search the system \texttt{texmf} for during typesetting}
+\luavarset{unpacksearch} {true}{Switch to search the system \texttt{texmf} for during unpacking}
\luavarseparator
\luavarset{glossarystyle}{"gglo.ist"}{MakeIndex style file for glossary/changes creation}
\luavarset{indexstyle} {"gind.ist"}{MakeIndex style for index creation}
@@ -141,14 +141,15 @@
\luavarset{forcedocepoch} {"false"} {Force epoch when typesetting}
\luavarseparator
\luavarset{asciiengines}{\{"pdftex"\}}{Engines which should log as sure ASCII}
-\luavarset{checkruns} {1} {How many times to run a check file before comparing the log.}
-\luavarset{epoch} {1463734800} {Epoch (Unix date) to set for test runs.}
-\luavarset{maxprintline}{79} {Length of line to use in log files.}
-\luavarset{packtdszip} {false} {Build a TDS-style zip file for CTAN?}
-\luavarset{scriptname} {"build.lua"} {Name of script used in dependencies.}
+\luavarset{checkruns} {1} {Number of runs to complete for a test before comparing the log}
+\luavarset{epoch} {1463734800} {Epoch (Unix date) to set for test runs}
+\luavarset{maxprintline}{79} {Length of line to use in log files}
+\luavarset{packtdszip} {false} {Switch to build a TDS-style zip file for CTAN}
+\luavarset{scriptname} {"build.lua"} {Name of script used in dependencies}
\luavarset{typesetcmds} {""} {Instructions to be passed to \TeX{} when doing typesetting.}
+\luavarset{typsetcycles}{3} {Number of cycles of typesetting to carry out.}
\luavarset{versionform} {""} {Nature of version strings for auto-replacement.}
-\luavarset{recordstatus} {false} {Include error level(s) from test run(s) in TLG files?}
+\luavarset{recordstatus}{false} {Switch to include error level from test runs in \texttt{.tlg} files}
}
\allluavars
\newcommand\luavartypeset{%
@@ -208,7 +209,7 @@
% }^^A
% }
%
-% \date{Released 2017/11/25}
+% \date{Released 2017/12/06}
%
% \maketitle
% \tableofcontents
@@ -708,6 +709,11 @@
% years due to a \TeX{} bug).
% \item Conversion of \texttt{on line \meta{number}} to \texttt{on line ...}
% to allow flexibility in changes to test files.
+% \item Conversion of register numbers in assignment lines
+% \texttt{\cs{\meta{register}}=\cs{\meta{type}}\meta{number}} to
+% \texttt{\cs{\meta{type}}\meta{...}}
+% \item Conversion of box numbers in |\show| lines
+% \texttt{>~\cs{box}\meta{number}=} to \texttt{>~\cs{box}...=}
% \end{itemize}
%
% \LuaTeX{} makes several additional changes to the log file. As normalising
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx
index b5ed855d6e8..ddc962cb6fc 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx
@@ -7,7 +7,7 @@
% license or (at your option) any later version. The latest version
% of this license is in the file
%
-% http://www.latex-project.org/lppl.txt
+% https://www.latex-project.org/lppl.txt
%
% This file is part of the "l3experimental bundle" (The Work in LPPL)
% and all files in that bundle must be distributed together.
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Released 2017/11/14}
+% \date{Released 2017/12/05}
%
% \maketitle
%
@@ -252,7 +252,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3str-convert}{2017/11/14}{}
+\ProvidesExplPackage{l3str-convert}{2017/12/05}{}
{L3 Experimental string encoding conversions}
% \end{macrocode}
%
@@ -260,7 +260,7 @@
%
% \subsubsection{A function unrelated to strings}
%
-% \begin{macro}[EXP,aux]{\use_ii_i:nn}
+% \begin{macro}[EXP]{\use_ii_i:nn}
% A function used to swap its arguments.
% \begin{macrocode}
\cs_if_exist:NF \use_ii_i:nn
@@ -356,8 +356,8 @@
%
% \begin{macro}[EXP]{\@@_if_contains_char:NNT, \@@_if_contains_char:NNTF}
% \begin{macro}[EXP]{\@@_if_contains_char:nNTF}
-% \begin{macro}[EXP,aux]{\@@_if_contains_char_aux:NN}
-% \begin{macro}[EXP,aux]{\@@_if_contains_char_true:}
+% \begin{macro}[EXP]{\@@_if_contains_char_aux:NN}
+% \begin{macro}[EXP]{\@@_if_contains_char_true:}
% \begin{syntax}
% \cs{@@_if_contains_char:nNTF} \Arg{token list} \meta{char}
% \end{syntax}
@@ -396,7 +396,7 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[aux, rEXP]{\@@_octal_use:NTF}
+% \begin{macro}[rEXP]{\@@_octal_use:NTF}
% \begin{syntax}
% \cs{@@_octal_use:NTF} \meta{token} \Arg{true code} \Arg{false code}
% \end{syntax}
@@ -424,7 +424,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, rEXP]{\@@_hexadecimal_use:NTF}
+% \begin{macro}[rEXP]{\@@_hexadecimal_use:NTF}
% \TeX{} detects uppercase hexadecimal digits for us (see
% \cs{@@_octal_use:NTF}), but not the lowercase letters, which we
% need to detect and replace by their uppercase counterpart.
@@ -482,11 +482,11 @@
% \end{variable}
% \end{variable}
%
-% \begin{macro}[int, EXP]{\@@_output_byte:n}
-% \begin{macro}[int, EXP]{\@@_output_byte:w}
-% \begin{macro}[int, EXP]{\@@_output_hexadecimal:n}
-% \begin{macro}[int, EXP]{\@@_output_hexadecimal:w}
-% \begin{macro}[int, EXP]{\@@_output_end:}
+% \begin{macro}[EXP]{\@@_output_byte:n}
+% \begin{macro}[EXP]{\@@_output_byte:w}
+% \begin{macro}[EXP]{\@@_output_hexadecimal:n}
+% \begin{macro}[EXP]{\@@_output_hexadecimal:w}
+% \begin{macro}[EXP]{\@@_output_end:}
% Those functions must be used carefully: feeding them a value outside
% the range $[-1,255]$ will attempt to use the undefined token list
% variable \cs{c_@@_byte_\meta{number}_tl}. Assuming that the
@@ -520,9 +520,9 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int, rEXP]{\@@_output_byte_pair_be:n}
-% \begin{macro}[int, rEXP]{\@@_output_byte_pair_le:n}
-% \begin{macro}[aux, rEXP]{\@@_output_byte_pair:nnN}
+% \begin{macro}[rEXP]{\@@_output_byte_pair_be:n}
+% \begin{macro}[rEXP]{\@@_output_byte_pair_le:n}
+% \begin{macro}[rEXP]{\@@_output_byte_pair:nnN}
% Convert a number in the range $[0,65535]$ to a pair of bytes, either
% big-endian or little-endian.
% \begin{macrocode}
@@ -550,7 +550,7 @@
% \subsubsection{Mapping functions for conversions}
%
% \begin{macro}{\@@_convert_gmap:N}
-% \begin{macro}[aux, rEXP]{\@@_convert_gmap_loop:NN}
+% \begin{macro}[rEXP]{\@@_convert_gmap_loop:NN}
% This maps the function |#1| over all characters in
% \cs{g_@@_result_tl}, which should be a byte string in most cases,
% sometimes a native string.
@@ -576,7 +576,7 @@
% \end{macro}
%
% \begin{macro}{\@@_convert_gmap_internal:N}
-% \begin{macro}[aux, rEXP]{\@@_convert_gmap_internal_loop:Nw}
+% \begin{macro}[rEXP]{\@@_convert_gmap_internal_loop:Nw}
% This maps the function |#1| over all character codes in
% \cs{g_@@_result_tl}, which must be in the internal representation.
% \begin{macrocode}
@@ -602,8 +602,8 @@
%
% \subsubsection{Error-reporting during conversion}
%
-% \begin{macro}[int]{\@@_if_flag_error:nnx}
-% \begin{macro}[aux]{\@@_if_flag_no_error:nnx}
+% \begin{macro}{\@@_if_flag_error:nnx}
+% \begin{macro}{\@@_if_flag_no_error:nnx}
% When converting using the function \cs{str_set_convert:Nnnn}, errors
% should be reported to the user after each step in the
% conversion. Errors are signalled by raising some flag (typically
@@ -626,7 +626,7 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int, rEXP]{\@@_if_flag_times:nT}
+% \begin{macro}[rEXP]{\@@_if_flag_times:nT}
% At the end of each conversion step, we raise all relevant errors as
% one error message, built on the fly. The height of each flag
% indicates how many times a given error was encountered. This
@@ -673,7 +673,7 @@
%
% \begin{macro}{\str_set_convert:Nnnn, \str_gset_convert:Nnnn}
% \begin{macro}[TF]{\str_set_convert:Nnnn, \str_gset_convert:Nnnn}
-% \begin{macro}[aux]{\@@_convert:nNNnnn}
+% \begin{macro}{\@@_convert:nNNnnn}
% The input string is stored in \cs{g_@@_result_tl}, then we:
% unescape and decode; encode and escape; exit the group and store the
% result in the user's variable. The various conversion functions all
@@ -725,8 +725,8 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[aux]{\@@_convert:wwwnn}
-% \begin{macro}[aux]{\@@_convert:NNnNN}
+% \begin{macro}{\@@_convert:wwwnn}
+% \begin{macro}{\@@_convert:NNnNN}
% The task of \cs{@@_convert:wwwnn} is to split
% \meta{encoding}/\meta{escaping} pairs into their components, |#1|
% and |#2|. Calls to \cs{@@_convert:nnn} ensure that the
@@ -771,8 +771,8 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[aux]{\@@_convert:nnn}
-% \begin{macro}[aux]{\@@_convert:nnnn}
+% \begin{macro}{\@@_convert:nnn}
+% \begin{macro}{\@@_convert:nnnn}
% The arguments of \cs{@@_convert:nnn} are: \texttt{enc} or
% \texttt{esc}, used to build filenames, the type of the conversion
% (unescape, decode, encode, escape), and the encoding or escaping
@@ -848,8 +848,8 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int, rEXP]{\@@_convert_lowercase_alphanum:n}
-% \begin{macro}[aux, rEXP]{\@@_convert_lowercase_alphanum_loop:N}
+% \begin{macro}[rEXP]{\@@_convert_lowercase_alphanum:n}
+% \begin{macro}[rEXP]{\@@_convert_lowercase_alphanum_loop:N}
% This function keeps only letters and digits, with upper case letters
% converted to lower case.
% \begin{macrocode}
@@ -883,7 +883,7 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int]{\@@_load_catcodes:}
+% \begin{macro}{\@@_load_catcodes:}
% Since encoding files may be loaded at arbitrary places in a \TeX{}
% document, including within verbatim mode, we set the catcodes of all
% characters appearing in any encoding definition file.
@@ -916,8 +916,8 @@
% needed. By default, on input any non-byte is filtered out, while the
% output simply consists in letting bytes through.
%
-% \begin{macro}[int, rEXP]{\@@_filter_bytes:n}
-% \begin{macro}[aux, rEXP]{\@@_filter_bytes_aux:N}
+% \begin{macro}[rEXP]{\@@_filter_bytes:n}
+% \begin{macro}[rEXP]{\@@_filter_bytes_aux:N}
% In the case of 8-bit engines, every character is a byte. For
% Unicode-aware engines, test the character code; non-bytes cause us
% to raise the flag \texttt{str_byte}. Spaces have already been given
@@ -951,8 +951,8 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int]{\@@_convert_unescape_:}
-% \begin{macro}[int]{\@@_convert_unescape_bytes:}
+% \begin{macro}{\@@_convert_unescape_:}
+% \begin{macro}{\@@_convert_unescape_bytes:}
% The simplest unescaping method removes non-bytes from
% \cs{g_@@_result_tl}.
% \begin{macrocode}
@@ -976,8 +976,8 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int]{\@@_convert_escape_:}
-% \begin{macro}[int]{\@@_convert_escape_bytes:}
+% \begin{macro}{\@@_convert_escape_:}
+% \begin{macro}{\@@_convert_escape_bytes:}
% The simplest form of escape leaves the bytes from the previous step
% of the conversion unchanged.
% \begin{macrocode}
@@ -989,8 +989,8 @@
%
% \subsubsection{Native strings}
%
-% \begin{macro}[int]{\@@_convert_decode_:}
-% \begin{macro}[aux, rEXP]{\@@_decode_native_char:N}
+% \begin{macro}{\@@_convert_decode_:}
+% \begin{macro}[rEXP]{\@@_decode_native_char:N}
% Convert each character to its character code, one at a time.
% \begin{macrocode}
\cs_new_protected:Npn \@@_convert_decode_:
@@ -1001,7 +1001,7 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int]{\@@_convert_encode_:}
+% \begin{macro}{\@@_convert_encode_:}
% The conversion from an internal string to native character tokens is
% very different in pdf\TeX{} and in other engines. For Unicode-aware
% engines, we need the definitions to be read when the null byte has
@@ -1015,9 +1015,9 @@
\sys_if_engine_xetex_p:
}
% \end{macrocode}
-% \begin{macro}[aux]{\@@_encode_native_loop:w}
-% \begin{macro}[aux]{\@@_encode_native_flush:}
-% \begin{macro}[aux, rEXP]{\@@_encode_native_filter:N}
+% \begin{macro}{\@@_encode_native_loop:w}
+% \begin{macro}{\@@_encode_native_flush:}
+% \begin{macro}[rEXP]{\@@_encode_native_filter:N}
% In Unicode-aware engines, since building particular characters
% cannot be done expandably in \TeX{}, we cannot hope to get a
% linear-time function. However, we get quite close using the
@@ -1049,7 +1049,7 @@
}
}
% \end{macrocode}
-% \begin{macro}[aux, EXP]{\@@_encode_native_char:n}
+% \begin{macro}[EXP]{\@@_encode_native_char:n}
% Since pdf\TeX{} only supports 8-bit characters, and we have a table
% of all bytes, the conversion can be done in linear time within an
% \texttt{x}-expanding assignment. Look out for character codes larger
@@ -1094,15 +1094,15 @@
%
% \subsubsection{\texttt{clist}}
%
-% \begin{macro}[int]{\@@_convert_decode_clist:}
-% \begin{macro}[aux, rEXP]{\@@_decode_clist_char:n}
+% \begin{macro}{\@@_convert_decode_clist:}
+% \begin{macro}[rEXP]{\@@_decode_clist_char:n}
% Convert each integer to the internal form. We first turn
% \cs{g_@@_result_tl} into a clist variable, as this avoids problems
% with leading or trailing commas.
% \begin{macrocode}
\cs_new_protected:Npn \@@_convert_decode_clist:
{
- \clist_set:No \g_@@_result_tl \g_@@_result_tl
+ \clist_gset:No \g_@@_result_tl \g_@@_result_tl
\tl_gset:Nx \g_@@_result_tl
{
\exp_args:No \clist_map_function:nN
@@ -1115,8 +1115,8 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int]{\@@_convert_encode_clist:}
-% \begin{macro}[aux, rEXP]{\@@_encode_clist_char:n}
+% \begin{macro}{\@@_convert_encode_clist:}
+% \begin{macro}[rEXP]{\@@_encode_clist_char:n}
% Convert the internal list of character codes to a comma-list of
% character codes. The first line produces a comma-list with a
% leading comma, removed in the next step (this also works in the
@@ -1151,7 +1151,7 @@
% All the 8-bit encodings which \pkg{l3str} supports rely on the same
% internal functions.
%
-% \begin{macro}[int]{\@@_declare_eight_bit_encoding:nnn}
+% \begin{macro}{\@@_declare_eight_bit_encoding:nnn}
% \begin{syntax}
% \cs{@@_declare_eight_bit_encoding:nnn} \Arg{name} \Arg{mapping} \Arg{missing}
% \end{syntax}
@@ -1183,10 +1183,10 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[int]{\@@_convert_decode_eight_bit:n}
-% \begin{macro}[aux]{\@@_decode_eight_bit_load:nn}
-% \begin{macro}[aux]{\@@_decode_eight_bit_load_missing:n}
-% \begin{macro}[aux, EXP]{\@@_decode_eight_bit_char:N}
+% \begin{macro}{\@@_convert_decode_eight_bit:n}
+% \begin{macro}{\@@_decode_eight_bit_load:nn}
+% \begin{macro}{\@@_decode_eight_bit_load_missing:n}
+% \begin{macro}[EXP]{\@@_decode_eight_bit_char:N}
%^^A todo: document
% \begin{macrocode}
\cs_new_protected:Npn \@@_convert_decode_eight_bit:n #1
@@ -1241,10 +1241,10 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int]{\@@_convert_encode_eight_bit:n}
-% \begin{macro}[aux]{\@@_encode_eight_bit_load:nn}
-% \begin{macro}[aux, rEXP]{\@@_encode_eight_bit_char:n}
-% \begin{macro}[aux, rEXP]{\@@_encode_eight_bit_char_aux:n}
+% \begin{macro}{\@@_convert_encode_eight_bit:n}
+% \begin{macro}{\@@_encode_eight_bit_load:nn}
+% \begin{macro}[rEXP]{\@@_encode_eight_bit_char:n}
+% \begin{macro}[rEXP]{\@@_encode_eight_bit_char_aux:n}
%^^A todo: document
% \begin{macrocode}
\cs_new_protected:Npn \@@_convert_encode_eight_bit:n #1
@@ -1385,9 +1385,9 @@
%
% \subsubsection{Unescape methods}
%
-% \begin{macro}[int]{\@@_convert_unescape_hex:}
-% \begin{macro}[aux, rEXP]{\@@_unescape_hex_auxi:N}
-% \begin{macro}[aux, rEXP]{\@@_unescape_hex_auxii:N}
+% \begin{macro}{\@@_convert_unescape_hex:}
+% \begin{macro}[rEXP]{\@@_unescape_hex_auxi:N}
+% \begin{macro}[rEXP]{\@@_unescape_hex_auxii:N}
% Take chars two by two, and interpret each pair as the hexadecimal
% code for a byte. Anything else than hexadecimal digits is ignored,
% raising the flag. A string which contains an odd number of
@@ -1447,10 +1447,10 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int]{\@@_convert_unescape_name:}
-% \begin{macro}[aux, rEXP]{\@@_unescape_name_loop:wNN}
-% \begin{macro}[int]{\@@_convert_unescape_url:}
-% \begin{macro}[aux, rEXP]{\@@_unescape_url_loop:wNN}
+% \begin{macro}{\@@_convert_unescape_name:}
+% \begin{macro}[rEXP]{\@@_unescape_name_loop:wNN}
+% \begin{macro}{\@@_convert_unescape_url:}
+% \begin{macro}[rEXP]{\@@_unescape_url_loop:wNN}
% The \cs{@@_convert_unescape_name:} function replaces each
% occurrence of |#| followed by two hexadecimal digits in
% \cs{g_@@_result_tl} by the corresponding byte. The \texttt{url}
@@ -1534,10 +1534,10 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int]{\@@_convert_unescape_string:}
-% \begin{macro}[aux, rEXP]{\@@_unescape_string_newlines:wN}
-% \begin{macro}[aux, rEXP]{\@@_unescape_string_loop:wNNN}
-% \begin{macro}[aux, rEXP]{\@@_unescape_string_repeat:NNNNNN}
+% \begin{macro}{\@@_convert_unescape_string:}
+% \begin{macro}[rEXP]{\@@_unescape_string_newlines:wN}
+% \begin{macro}[rEXP]{\@@_unescape_string_loop:wNNN}
+% \begin{macro}[rEXP]{\@@_unescape_string_repeat:NNNNNN}
% The \texttt{string} escaping is somewhat similar to the
% \texttt{name} and \texttt{url} escapings, with escape character |\|.
% The first step is to convert all three line endings, |^^J|, |^^M|,
@@ -1560,14 +1560,12 @@
% If followed by an end-of-line character, the backslash and the
% end-of-line are ignored. If followed by anything else, the backslash
% is ignored, raising the error flag.
-%^^A Be paranoid: \tex_lowercase:D is unsafe.
% \begin{macrocode}
%<*string>
\group_begin:
- \char_set_lccode:nn {`\*} {`\\}
\char_set_catcode_other:N \^^J
\char_set_catcode_other:N \^^M
- \tex_lowercase:D
+ \cs_set_protected:Npn \@@_tmp:w #1
{
\cs_new_protected:Npn \@@_convert_unescape_string:
{
@@ -1584,15 +1582,17 @@
\tl_gset:Nx \g_@@_result_tl
{
\exp_after:wN \@@_unescape_string_loop:wNNN
- \g_@@_result_tl * ?? { ? \__prg_break: }
+ \g_@@_result_tl #1 ?? { ? \__prg_break: }
\__prg_break_point:
}
\@@_if_flag_error:nnx { str_byte } { non-byte } { string }
\@@_if_flag_error:nnx { str_error } { unescape-string } { }
\group_end:
}
- \cs_new:Npn \@@_unescape_string_loop:wNNN #1 *#2#3#4
}
+ \exp_args:No \@@_tmp:w { \c_backslash_str }
+ \exp_last_unbraced:NNNNo
+ \cs_new:Npn \@@_unescape_string_loop:wNNN #1 \c_backslash_str #2#3#4
{
\@@_filter_bytes:n {#1}
\use_none:n #4
@@ -1662,8 +1662,8 @@
% Currently, none of the escape methods can lead to errors, assuming
% that their input is made out of bytes.
%
-% \begin{macro}[int]{\@@_convert_escape_hex:}
-% \begin{macro}[aux, rEXP]{\@@_escape_hex_char:N}
+% \begin{macro}{\@@_convert_escape_hex:}
+% \begin{macro}[rEXP]{\@@_escape_hex_char:N}
% Loop and convert each byte to hexadecimal.
% \begin{macrocode}
%<*hex>
@@ -1676,9 +1676,9 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int]{\@@_convert_escape_name:}
-% \begin{macro}[aux, rEXP]{\@@_escape_name_char:N}
-% \begin{macro}[aux, rEXP]{\@@_if_escape_name:NTF}
+% \begin{macro}{\@@_convert_escape_name:}
+% \begin{macro}[rEXP]{\@@_escape_name_char:N}
+% \begin{macro}[rEXP]{\@@_if_escape_name:NTF}
% \begin{variable}{\c_@@_escape_name_str}
% \begin{variable}{\c_@@_escape_name_not_str}
% For each byte, test whether it should be output as is, or be
@@ -1720,9 +1720,9 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int]{\@@_convert_escape_string:}
-% \begin{macro}[aux, rEXP]{\@@_escape_string_char:N}
-% \begin{macro}[aux, rEXP]{\@@_if_escape_string:NTF}
+% \begin{macro}{\@@_convert_escape_string:}
+% \begin{macro}[rEXP]{\@@_escape_string_char:N}
+% \begin{macro}[rEXP]{\@@_if_escape_string:NTF}
% \begin{variable}{\c_@@_escape_string_str}
% Any character below (and including) space, and any character above
% (and including) \texttt{del}, are converted to octal. One backslash
@@ -1768,9 +1768,9 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int]{\@@_convert_escape_url:}
-% \begin{macro}[aux, rEXP]{\@@_escape_url_char:N}
-% \begin{macro}[aux, rEXP]{\@@_if_escape_url:NTF}
+% \begin{macro}{\@@_convert_escape_url:}
+% \begin{macro}[rEXP]{\@@_escape_url_char:N}
+% \begin{macro}[rEXP]{\@@_if_escape_url:NTF}
% This function is similar to \cs{@@_convert_escape_name:}, escaping
% different characters.
% \begin{macrocode}
@@ -1820,9 +1820,9 @@
%<*utf8>
% \end{macrocode}
%
-% \begin{macro}[int]{\@@_convert_encode_utf8:}
-% \begin{macro}[aux, rEXP]{\@@_encode_utf_viii_char:n}
-% \begin{macro}[aux, rEXP]{\@@_encode_utf_viii_loop:wwnnw}
+% \begin{macro}{\@@_convert_encode_utf8:}
+% \begin{macro}[rEXP]{\@@_encode_utf_viii_char:n}
+% \begin{macro}[rEXP]{\@@_encode_utf_viii_loop:wwnnw}
% Loop through the internal string, and convert each character to its
% \textsc{utf-8} representation. The representation is built from the
% right-most (least significant) byte to the left-most (most
@@ -1967,14 +1967,14 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}[int]{\@@_convert_decode_utf8:}
-% \begin{macro}[aux, rEXP]
+% \begin{macro}{\@@_convert_decode_utf8:}
+% \begin{macro}[rEXP]
% {
% \@@_decode_utf_viii_start:N,
% \@@_decode_utf_viii_continuation:wwN,
% \@@_decode_utf_viii_aux:wNnnwN
% }
-% \begin{macro}[aux, rEXP]
+% \begin{macro}[rEXP]
% {\@@_decode_utf_viii_overflow:w, \@@_decode_utf_viii_end:}
% Decoding is significantly harder than encoding. As before, lower
% some flags, which are tested at the end (in bulk, to trigger at most
@@ -2148,13 +2148,13 @@
\char_set_catcode_other:N \^^ff
% \end{macrocode}
%
-% \begin{macro}[int]
+% \begin{macro}
% {
% \@@_convert_encode_utf16: ,
% \@@_convert_encode_utf16be: ,
% \@@_convert_encode_utf16le: ,
% }
-% \begin{macro}[aux, rEXP]
+% \begin{macro}[rEXP]
% {
% \@@_encode_utf_xvi_aux:N ,
% \@@_encode_utf_xvi_char:n ,
@@ -2285,13 +2285,13 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}[int]
+% \begin{macro}
% {
% \@@_convert_decode_utf16: ,
% \@@_convert_decode_utf16be: ,
% \@@_convert_decode_utf16le: ,
% }
-% \begin{macro}[aux]{\@@_decode_utf_xvi_bom:NN, \@@_decode_utf_xvi:Nw}
+% \begin{macro}{\@@_decode_utf_xvi_bom:NN, \@@_decode_utf_xvi:Nw}
% As for \textsc{utf-8}, decoding \textsc{utf-16} is harder than
% encoding it. If the endianness is unknown, check the first two
% bytes: if those are \hexnum{FE} and \hexnum{FF} in either order,
@@ -2346,13 +2346,13 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[aux, rEXP]
+% \begin{macro}[rEXP]
% {
% \@@_decode_utf_xvi_pair:NN ,
% \@@_decode_utf_xvi_quad:NNwNN ,
% \@@_decode_utf_xvi_pair_end:Nw ,
% }
-% \begin{macro}[aux, rEXP]
+% \begin{macro}[rEXP]
% {
% \@@_decode_utf_xvi_error:nNN ,
% \@@_decode_utf_xvi_extra:NNw ,
@@ -2474,13 +2474,13 @@
\char_set_catcode_other:N \^^ff
% \end{macrocode}
%
-% \begin{macro}[int]
+% \begin{macro}
% {
% \@@_convert_encode_utf32: ,
% \@@_convert_encode_utf32be: ,
% \@@_convert_encode_utf32le: ,
% }
-% \begin{macro}[aux, rEXP]
+% \begin{macro}[rEXP]
% {
% \@@_encode_utf_xxxii_be:n ,
% \@@_encode_utf_xxxii_be_aux:nn ,
@@ -2563,15 +2563,15 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}[int]
+% \begin{macro}
% {
% \@@_convert_decode_utf32: ,
% \@@_convert_decode_utf32be: ,
% \@@_convert_decode_utf32le: ,
% }
-% \begin{macro}[aux]
+% \begin{macro}
% {\@@_decode_utf_xxxii_bom:NNNN, \@@_decode_utf_xxxii:Nw}
-% \begin{macro}[aux, rEXP]
+% \begin{macro}[rEXP]
% {\@@_decode_utf_xxxii_loop:NNNN, \@@_decode_utf_xxxii_end:w}
%
% The structure is similar to \textsc{utf-16} decoding functions. If
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
index 3aba3e72e7f..19803a88d63 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
@@ -1,13 +1,13 @@
% \iffalse meta-comment
%
-%% File: l3str-format.dtx Copyright (C) 2012-2013,2015-2017 The LaTeX3 Project
+%% File: l3str-format.dtx Copyright (C) 2012-2017 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
%
-% http://www.latex-project.org/lppl.txt
+% https://www.latex-project.org/lppl.txt
%
% This file is part of the "l3experimental bundle" (The Work in LPPL)
% and all files in that bundle must be distributed together.
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Released 2017/11/14}
+% \date{Released 2017/12/05}
%
% \maketitle
%
@@ -163,15 +163,14 @@
%
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{l3str-format}{2017/11/14}{}
+\ProvidesExplPackage{l3str-format}{2017/12/05}{}
{L3 Experimental string formatting}
-\RequirePackage{l3str}
%</package>
% \end{macrocode}
%
% \subsection{Helpers}
%
-% \begin{macro}[aux, EXP]{\use:nf, \use:fnf}
+% \begin{macro}[EXP]{\use:nf, \use:fnf}
% A simple variant.
% \begin{macrocode}
\cs_generate_variant:Nn \use:nn { nf }
@@ -179,14 +178,14 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\tl_to_str:f}
+% \begin{macro}[EXP]{\tl_to_str:f}
% A simple variant.
% \begin{macrocode}
\cs_generate_variant:Nn \tl_to_str:n { f }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_if_digit:NTF}
+% \begin{macro}[EXP]{\@@_if_digit:NTF}
% Here we expect |#1| to be a character with category other, or
% \cs{s__stop}.
% \begin{macrocode}
@@ -198,7 +197,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]
+% \begin{macro}[EXP]
% {\@@_put:nw, \@@_put:ow, \@@_put:fw}
% Put |#1| after an \cs{s__stop} delimiter.
% \begin{macrocode}
@@ -207,8 +206,8 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP, TF]{\@@_if_in:nN}
-% \begin{macro}[aux, EXP]{\@@_if_in_aux:NN}
+% \begin{macro}[EXP, TF]{\@@_if_in:nN}
+% \begin{macro}[EXP]{\@@_if_in_aux:NN}
% A copy of \cs{__str_if_contains_char:nNTF} to avoid relying on
% this weird internal string function.
% \begin{macrocode}
@@ -232,8 +231,8 @@
%
% \subsection{Parsing a format specification}
%
-% \begin{macro}[aux, EXP]{\@@_parse:n}
-% \begin{macro}[aux, EXP]
+% \begin{macro}[EXP]{\@@_parse:n}
+% \begin{macro}[EXP]
% {
% \@@_parse_auxi:NN,
% \@@_parse_auxii:nN,
@@ -324,7 +323,7 @@
% padding between the \meta{sign} and the \meta{body}, hence the need to
% keep those separate.
%
-% \begin{macro}[aux, EXP]{\@@_align_<:nnnN}
+% \begin{macro}[EXP]{\@@_align_<:nnnN}
% \begin{quote}
% \cs{@@_align_<:nnnN} \Arg{body} \Arg{sign} \Arg{width}
% \meta{fill}
@@ -345,7 +344,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_align_>:nnnN}
+% \begin{macro}[EXP]{\@@_align_>:nnnN}
% \begin{quote}
% \cs{@@_align_>:nnnN} \Arg{body} \Arg{sign} \Arg{width}
% \meta{fill}
@@ -365,7 +364,7 @@
% \end{macro}
%
% \begingroup\catcode`\^=12
-% \begin{macro}[aux, EXP]{\@@_align_^:nnnN}
+% \begin{macro}[EXP]{\@@_align_^:nnnN}
% \begin{quote}
% \cs{@@_align_^:nnnN} \Arg{body} \Arg{sign} \Arg{width}
% \meta{fill}
@@ -402,7 +401,7 @@
% \end{macro}
% \endgroup
%
-% \begin{macro}[aux, EXP]{\@@_align_=:nnnN}
+% \begin{macro}[EXP]{\@@_align_=:nnnN}
% \begin{quote}
% \cs{@@_align_=:nnnN} \Arg{body} \Arg{sign} \Arg{width}
% \meta{fill}
@@ -445,7 +444,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_tl:NNNnnNn}
+% \begin{macro}[EXP]{\@@_tl:NNNnnNn}
% \begin{quote}
% \cs{@@_tl:NNNnnNn} \meta{fill} \meta{alignment} \meta{sign}
% \Arg{width} \Arg{precision} \meta{style} \Arg{token list}
@@ -497,7 +496,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_tl_s:NNnnNNn}
+% \begin{macro}[EXP]{\@@_tl_s:NNnnNNn}
% \begin{quote}
% \cs{@@_tl_s:NNnnNNn} \cs{s__stop} \meta{function}
% \Arg{arguments} \Arg{width} \meta{fill} \meta{alignment}
@@ -540,7 +539,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_seq:nn, \@@_seq:ff}
+% \begin{macro}[EXP]{\@@_seq:nn, \@@_seq:ff}
% The first argument is the contents of a \texttt{seq} variable. The
% second is a parsed \meta{format specification}. Set up the loop.
% \begin{macrocode}
@@ -554,7 +553,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_seq_loop:nnNn}
+% \begin{macro}[EXP]{\@@_seq_loop:nnNn}
% \begin{quote}
% \cs{@@_seq_loop:nnNn} \Arg{done} \Arg{parsed format}
% \cs{__seq_item:n} \Arg{item}
@@ -574,7 +573,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_seq_end:w}
+% \begin{macro}[EXP]{\@@_seq_end:w}
% Pick the right piece in the loop above.
% \begin{macrocode}
\cs_new:Npn \@@_seq_end:w #1#2#3#4 { \use_ii:nnn #3 }
@@ -591,7 +590,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_int:nn}
+% \begin{macro}[EXP]{\@@_int:nn}
% Parse the \meta{format specification} and feed it to
% \cs{@@_int:NNNnnNn}. Then convert the result to a string
% \begin{macrocode}
@@ -607,7 +606,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_int:NNNnnNn}
+% \begin{macro}[EXP]{\@@_int:NNNnnNn}
% \begin{quote}
% \cs{@@_int:NNNnnNn} \meta{fill} \meta{alignment}
% \meta{sign} \Arg{width} \Arg{precision} \meta{style} \Arg{integer}
@@ -662,7 +661,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_int:NwnnNNn}
+% \begin{macro}[EXP]{\@@_int:NwnnNNn}
% \begin{quote}
% \cs{@@_int:NwnnNNn} \meta{function} \cs{s__stop}
% \Arg{width} \Arg{sign} \meta{fill} \meta{alignment} \Arg{integer}
@@ -700,7 +699,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_fp:nn}
+% \begin{macro}[EXP]{\@@_fp:nn}
% Parse the \meta{format specification} and feed it to
% \cs{@@_fp:NNNnnNn}. Then convert the result to a string
% \begin{macrocode}
@@ -716,7 +715,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_fp:NNNnnNw}
+% \begin{macro}[EXP]{\@@_fp:NNNnnNw}
% \begin{quote}
% \cs{@@_fp:NNNnnNw} \meta{fill} \meta{alignment}
% \meta{format sign} \Arg{width} \Arg{precision} \meta{style}
@@ -773,7 +772,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_fp:wnnnNNw}
+% \begin{macro}[EXP]{\@@_fp:wnnnNNw}
% \begin{quote}
% \cs{@@_fp:wnnnNNw} \meta{formatting function} \cs{s__stop}
% \Arg{precision} \Arg{width} \Arg{sign} \meta{fill}
@@ -793,7 +792,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_fp_round:wn}
+% \begin{macro}[EXP]{\@@_fp_round:wn}
% Round the given floating point (not its absolute value, to play
% nicely with unusual rounding modes).
% \begin{macrocode}
@@ -802,8 +801,8 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_fp_e:wn}
-% \begin{macro}[aux, EXP]{\@@_fp_e_aux:wn}
+% \begin{macro}[EXP]{\@@_fp_e:wn}
+% \begin{macro}[EXP]{\@@_fp_e_aux:wn}
% With the |e| type, first filter out special cases. In the normal
% case, round to |#4+1| significant figures (one before the decimal
% separator, |#4| after).
@@ -839,13 +838,12 @@
\@@_put:fw { \use_i:nnnn #4 . }
\use_none:n \s__stop
}
- }
% \end{macrocode}
% \end{macro}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_fp_f:wn}
-% \begin{macro}[aux, EXP]{\@@_fp_f_aux:wwwn}
+% \begin{macro}[EXP]{\@@_fp_f:wn}
+% \begin{macro}[EXP]{\@@_fp_f_aux:wwwn}
% With the |f| type, first filter out special cases. In the normal
% case, round to |#4| (absolute) decimal places.
% \begin{macrocode}
@@ -875,9 +873,9 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_fp_g:wn}
-% \begin{macro}[aux, EXP]{\@@_fp_g_aux:wn}
-% \begin{macro}[aux, EXP]{\@@_fp_to_scientific:n, \@@_fp_trim:w}
+% \begin{macro}[EXP]{\@@_fp_g:wn}
+% \begin{macro}[EXP]{\@@_fp_g_aux:wn}
+% \begin{macro}[EXP]{\@@_fp_to_scientific:n, \@@_fp_trim:w}
% With the |g| type, first filter out special cases. In the normal
% case, round to |#4| significant figures, then test the exponent: if
% $-4\leq \meta{exponent} < \meta{precision}$, use the presentation
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str.ins b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str.ins
index 2f2ed04c016..944541e77b7 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str.ins
+++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str.ins
@@ -1,6 +1,6 @@
\iffalse meta-comment
-File l3str.ins Copyright (C) 2011,2013,2015-2017 The LaTeX3 Project
+File l3str.ins Copyright (C) 2011-2017 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
diff --git a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
index 8197c78ed52..0165c9d0aa5 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
@@ -7,7 +7,7 @@
% license or (at your option) any later version. The latest version
% of this license is in the file
%
-% http://www.latex-project.org/lppl.txt
+% https://www.latex-project.org/lppl.txt
%
% This file is part of the "l3experimental bundle" (The Work in LPPL)
% and all files in that bundle must be distributed together.
@@ -54,7 +54,7 @@
% }^^A
% }
%
-% \date{Released 2017/11/14}
+% \date{Released 2017/12/05}
%
% \maketitle
%
@@ -673,7 +673,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xcoffins}{2017/11/14}{}
+\ProvidesExplPackage{xcoffins}{2017/12/05}{}
{L3 Experimental design level coffins}
% \end{macrocode}
%
@@ -723,7 +723,7 @@
%
% \begin{macro}{\@@_design_names:N}
% \begin{variable}{\Height, \Depth, \Width, \TotalHeight}
-% \begin{variable}[int]
+% \begin{variable}
% {\l_@@_height_dim, \l_@@_depth_dim, \l_@@_width_dim, \l_@@_totalheight_dim}
% Sets up design-level names for the various coffin dimensions. These are
% not defined outside of this scope, and are dimensions so that they work
@@ -894,7 +894,7 @@
\NewDocumentCommand \CoffinHeight { m }
{ \coffin_ht:N #1 }
\NewDocumentCommand \CoffinTotalHeight { m }
- { \__dim_eval:w \coffin_ht:N #1 + \coffin_dp:N #1 \__dim_eval_end: }
+ { \__dim_eval:n { \coffin_ht:N #1 + \coffin_dp:N #1 } }
\NewDocumentCommand \CoffinWidth { m }
{ \coffin_wd:N #1 }
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.ins b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.ins
index c3791a3ebd6..9b70480da4c 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.ins
+++ b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.ins
@@ -1,6 +1,6 @@
\iffalse meta-comment
-File xcoffins.ins Copyright (C) 2010,2011,2016 The LaTeX3 Project
+File xcoffins.ins Copyright (C) 2010,2011,2012,2016,2017 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
@@ -32,7 +32,7 @@ license information is placed in the derived files.
\preamble
-Copyright (C) 2010-2016 The LaTeX3 Project
+Copyright (C) 2010-2017 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
diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
index 643347818cf..dea566a0c17 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
@@ -8,7 +8,7 @@
% license or (at your option) any later version. The latest version
% of this license is in the file
%
-% http://www.latex-project.org/lppl.txt
+% https://www.latex-project.org/lppl.txt
%
% This file is part of the "l3experimental bundle" (The Work in LPPL)
% and all files in that bundle must be distributed together.
@@ -24,8 +24,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2017/11/14]
-%<package>\@ifpackagelater{expl3}{2017/11/14}
+\RequirePackage{expl3}[2017/12/05]
+%<package>\@ifpackagelater{expl3}{2017/12/05}
%<package> {}
%<package> {%
%<package> \PackageError{l3galley}{Support package l3kernel too old}
@@ -59,7 +59,7 @@
% }^^A
% }
%
-% \date{Released 2017/11/14}
+% \date{Released 2017/12/05}
%
% \maketitle
%
@@ -685,7 +685,7 @@
%
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{l3galley}{2017/11/14}{}
+\ProvidesExplPackage{l3galley}{2017/12/05}{}
{L3 Experimental galley code}
%</package>
% \end{macrocode}
@@ -1111,7 +1111,7 @@
% \end{macro}
%
% \begin{macro}{\galley_level:}
-% \begin{macro}[aux]{\@@_level_end:}
+% \begin{macro}{\@@_level_end:}
% Galley levels are created by saving all of the current global
% settings, starting a group then initialising both the local and global
% variables.
@@ -1152,9 +1152,9 @@
% \end{variable}
%
% \begin{macro}{\galley_par:}
-% \begin{macro}[aux]{\@@_par_auxi:, \@@_par_auxii:, \@@_par_auxiii:}
-% \begin{macro}[aux]{\@@_par_aux:N}
-% \begin{macro}[int]{\@@_par_update_cutout:}
+% \begin{macro}{\@@_par_auxi:, \@@_par_auxii:, \@@_par_auxiii:}
+% \begin{macro}{\@@_par_aux:N}
+% \begin{macro}{\@@_par_update_cutout:}
% The idea here is to expand the next token in exactly the same way as \TeX{}
% would do anyway. The \texttt{f}-type expansion will ignore any protection,
% but will stop at a scan marker. Thus the code can test for an
@@ -1315,8 +1315,8 @@
% \subsection{Display levels}
%
% \begin{macro}{\galley_display_begin:, \galley_display_end:}
-% \begin{macro}[aux]{\@@_display_penalty:N, \@@_display_vspace:N}
-% \begin{macro}[aux]{\@@_display_par_setup:, \@@_display_par:}
+% \begin{macro}{\@@_display_penalty:N, \@@_display_vspace:N}
+% \begin{macro}{\@@_display_par_setup:, \@@_display_par:}
% Display items within the galley are a bit like galley levels: they
% may have different paragraph settings to the main part of the galley.
% On the other hand, unlike independent galleys they should inherit the
@@ -1497,7 +1497,7 @@
% \end{verbatim}
% and so anything applied here must be done globally.
%
-% \begin{macro}[int]{\@@_start_paragraph_common:N}
+% \begin{macro}{\@@_start_paragraph_common:N}
% Share some code between all types of paragraph start.
% The routine at the start of a paragraph starts by removing any
% (empty) indent box from the vertical list. As there may be vertical
@@ -1520,7 +1520,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[int]{\@@_start_paragraph_std:}
+% \begin{macro}{\@@_start_paragraph_std:}
% After dealign with the common items, the horizontal mode items can be
% tidied up before sorting out any items which have been set on a
% single-paragraph basis.
@@ -1534,8 +1534,8 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[int]{\@@_start_paragraph_first:}
-% \begin{macro}[aux]{\@@_insert_vspace_first:}
+% \begin{macro}{\@@_start_paragraph_first:}
+% \begin{macro}{\@@_insert_vspace_first:}
% For the very first paragraph in a galley, the code needs to avoid
% adding any unnecessary vertical items at the top as it will interfere with
% vertical positioning in \cs{tex_vtop:D}. That requirement also means we
@@ -1560,7 +1560,7 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int]{\@@_insert_vertical_items}
+% \begin{macro}{\@@_insert_vertical_items}
% The aim here is to insert the vertical items such that they attach to
% the correct place. This function is used as part of the \cs{tex_everypar:D}
% mechanism, meaning that the immediately-preceding item on the vertical
@@ -1584,7 +1584,7 @@
}
{
\tex_penalty:D
- \__int_eval:w \g_@@_interpar_penalty_user_tl \__int_eval_end:
+ \__int_eval:n { \g_@@_interpar_penalty_user_tl }
\tl_gclear:N \g_@@_interpar_penalty_user_tl
}
\bool_gset_false:N \g_galley_no_break_next_bool
@@ -1598,7 +1598,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[int]{\@@_insert_horizontal_items:}
+% \begin{macro}{\@@_insert_horizontal_items:}
% Horizontal mode objects start with the whatsits for the next paragraph. An
% indent is then included if the removed box was not void.
% \begin{macrocode}
@@ -1618,7 +1618,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[int]{\@@_restore_running_parameters:}
+% \begin{macro}{\@@_restore_running_parameters:}
% Restoring the ongoing parameters just means using the token list
% variable in which the appropriate assignments are stored. The
% list can then be cleared.
@@ -1703,7 +1703,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[int]{\@@_parshape_set:nnnN}
+% \begin{macro}{\@@_parshape_set:nnnN}
% Setting the paragraph shape starts by converting the two input lists into
% sequences. The shape is then set using a mapping with allowance for the
% unaltered lines and the possibility of resuming the measure. The unaltered
@@ -1738,8 +1738,8 @@
% handling from the measure and shape.
%
% \begin{macro}{\galley_cutout_left:nn, \galley_cutout_right:nn}
-% \begin{macro}[aux]{\@@_cutout:nnn}
-% \begin{macro}[int]{\@@_cutout:NN, \@@_cutout:cN, \@@_cutout:Nc}
+% \begin{macro}{\@@_cutout:nnn}
+% \begin{macro}{\@@_cutout:NN, \@@_cutout:cN, \@@_cutout:Nc}
% Setting up cutouts on the two sides of the paragraph is more or less
% the same idea with one or two very specific points of difference. As such,
% the two interface functions both use the same implementation.
@@ -1798,17 +1798,17 @@
%
% \subsection{Setting the primitive paragraph shape}
%
-% \begin{macro}[int]{\@@_parshape_set:}
-% \begin{macro}[aux]
+% \begin{macro}{\@@_parshape_set:}
+% \begin{macro}
% {
% \@@_parshape_set_margins:,
% \@@_parshape_set_indents:,
% \@@_parshape_set_cutouts:
% }
-% \begin{macro}[aux]{\@@_parshape_set_indents:NN}
-% \begin{macro}[aux, rEXP]{\@@_parshape_set_indents:nn}
-% \begin{macro}[aux]{\@@_parshape_set_cutouts:n}
-% \begin{macro}[aux]{\@@_parshape_set_cutouts:N}
+% \begin{macro}{\@@_parshape_set_indents:NN}
+% \begin{macro}[rEXP]{\@@_parshape_set_indents:nn}
+% \begin{macro}{\@@_parshape_set_cutouts:n}
+% \begin{macro}{\@@_parshape_set_cutouts:N}
% The real paragraph shape (\cs{tex_parshape:D}) is set whenever any
% of the conceptual elements (margins, measure, cutouts) are set and
% potentially at the end of a paragraph in the cases where a single-paragraph
@@ -1863,18 +1863,15 @@
\cs_new_protected:Npn \@@_parshape_set_indents:NN #1#2
{
\tex_parshape:D
- \__int_eval:w
- \int_min:nn { \seq_count:N #1 } { \seq_count:N #2 }
- \__int_eval_end:
+ \__int_eval:n
+ { \int_min:nn { \seq_count:N #1 } { \seq_count:N #2 } }
\seq_mapthread_function:NNN #1 #2
\@@_parshape_set_indents:nn
}
\cs_new:Npn \@@_parshape_set_indents:nn #1#2
{
- \__dim_eval:w \l_galley_total_left_margin_dim + ( #1 ) \__dim_eval_end:
- \__dim_eval:w
- \l_galley_text_width_dim - ( ( #1 ) + ( #2 ) )
- \__dim_eval_end:
+ \__dim_eval:n { \l_galley_total_left_margin_dim + #1 }
+ \__dim_eval:n { \l_galley_text_width_dim - ( #1 + #2 ) }
}
% \end{macrocode}
% Calculating cutouts is by far the most complex operation here. The
@@ -2217,7 +2214,7 @@
% \galley_widow_penalties_set:V,
% \galley_widow_penalties_set:v
% }
-% \begin{macro}[aux]{\@@_set_aux:n}
+% \begin{macro}{\@@_set_aux:n}
% By far the easiest penalties to deal with are those for widows. These
% work exactly as the names imply, with the display version only used
% immediately before display math, and the standard penalty used at the end
@@ -2228,7 +2225,7 @@
\cs_new_protected:Npn \galley_display_widow_penalties_set:n #1
{
\etex_displaywidowpenalties:D
- \__int_eval:w \clist_count:n {#1} + 1 \__int_eval_end:
+ \__int_eval:n { \clist_count:n {#1} + 1 }
\clist_map_function:nN {#1} \@@_set_aux:n
0 \exp_stop_f:
}
@@ -2236,7 +2233,7 @@
\cs_new_protected:Npn \galley_widow_penalties_set:n #1
{
\etex_widowpenalties:D
- \__int_eval:w \clist_count:n {#1} + 1 \__int_eval_end:
+ \__int_eval:n { \clist_count:n {#1} + 1 }
\clist_map_function:nN {#1} \@@_set_aux:n
0 \exp_stop_f:
}
@@ -2287,7 +2284,7 @@
\cs_new_protected:Npn \galley_display_club_penalties_set:n #1
{
\etex_clubpenalties:D
- \__int_eval:w \clist_count:n {#1} + 1 \__int_eval_end:
+ \__int_eval:n { \clist_count:n {#1} + 1 }
\clist_map_function:nN {#1} \@@_set_aux:n
0 \exp_stop_f:
\@@_calc_interline_penalties:
@@ -2297,8 +2294,8 @@
% \end{macro}
%
% \begin{macro}{\galley_interline_penalty_set:n}
-% \begin{macro}[aux]{\@@_set_interline_penalty:nn}
-% \begin{macro}[aux]
+% \begin{macro}{\@@_set_interline_penalty:nn}
+% \begin{macro}
% {
% \@@_set_interline_penalty_auxi:n,
% \@@_set_interline_penalty_auxii:n
@@ -2310,22 +2307,22 @@
% generic build system is invoked (in case the
% \cs{etex_interlinepenalties:D} has accidentally been cleared).
% \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
\cs_new_protected:Npn \galley_interline_penalty_set:n #1
{
\int_compare:nNnTF { \etex_interlinepenalties:D 0 } = 0
{
- \etex_interlinepenalties:D 1 = \__int_eval:w #1 \__int_eval_end:
+ \etex_interlinepenalties:D 1 = \__int_eval:n {#1}
\@@_calc_interline_penalties:
}
{
\cs_set:Npn \@@_set_interline_penalty_auxii:n ##1
{
- \__int_eval:w
- \etex_interlinepenalties:D ##1
- - \etex_interlinepenalties:D \etex_interlinepenalties:D 0
- + #1
- \__int_eval_end:
+ \__int_eval:n
+ {
+ \etex_interlinepenalties:D ##1
+ - \etex_interlinepenalties:D \etex_interlinepenalties:D 0
+ + #1
+ }
}
\exp_args:Nf \@@_set_interline_penalty:nn
{ \clist_count:N \l_galley_line_penalties_clist } {#1}
@@ -2340,19 +2337,19 @@
\int_step_function:nnnN { #1 + 1 } { 1 }
{ \etex_interlinepenalties:D 0 - 1 }
\@@_set_interline_penalty_auxii:n
- \__int_eval:w #2 \__int_eval_end:
+ \__int_eval:n {#2}
}
\cs_new:Npn \@@_set_interline_penalty_auxi:n #1
- { \etex_interlinepenalties:D \__int_eval:w #1 \__int_eval_end: }
+ { \etex_interlinepenalties:D \__int_eval:n {#1} }
\cs_new:Npn \@@_set_interline_penalty_auxii:n #1 { }
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int]{\@@_calc_interline_penalties:}
-% \begin{macro}[aux]{\@@_calc_interline_penalties:nn}
-% \begin{macro}[aux]
+% \begin{macro}{\@@_calc_interline_penalties:}
+% \begin{macro}{\@@_calc_interline_penalties:nn}
+% \begin{macro}
% {
% \@@_calc_interline_penalties_auxi:n,
% \@@_calc_interline_penalties_auxii:n
@@ -2395,19 +2392,21 @@
}
\cs_new:Npn \@@_calc_interline_penalties_auxi:n #1
{
- \__int_eval:w
+ \__int_eval:n
+ {
\clist_item:Nn \l_galley_line_penalties_clist {#1}
- + 0 \clist_item:Nn \l_galley_club_penalties_clist {#1}
- - \etex_clubpenalties:D #1 ~
- \__int_eval_end:
+ + 0 \clist_item:Nn \l_galley_club_penalties_clist {#1}
+ - \etex_clubpenalties:D #1 ~
+ }
}
\cs_new:Npn \@@_calc_interline_penalties_auxii:n #1
{
- \__int_eval:w
+ \__int_eval:n
+ {
\etex_interlinepenalties:D \etex_interlinepenalties:D 0 \exp_stop_f:
- + 0 \clist_item:Nn \l_galley_club_penalties_clist {#1}
- - \etex_clubpenalties:D #1 ~
- \__int_eval_end:
+ + 0 \clist_item:Nn \l_galley_club_penalties_clist {#1}
+ - \etex_clubpenalties:D #1 ~
+ }
}
% \end{macrocode}
% \end{macro}
@@ -2422,7 +2421,7 @@
% \galley_save_display_widow_penalties:N,
% \galley_save_widow_penalties:N
% }
-% \begin{macro}[aux]
+% \begin{macro}
% {
% \@@_save_display_club_penalties:n,
% \@@_save_display_widow_penalties:n,
@@ -2450,7 +2449,7 @@
}
}
\cs_new:Npn \@@_save_display_club_penalties:n #1
- { \__int_value:w \etex_clubpenalties:D \__int_eval:w #1 \__int_eval_end: , }
+ { \__int_value:w \etex_clubpenalties:D \__int_eval:n {#1} , }
\cs_new_protected:Npn \galley_save_display_widow_penalties:N #1
{
\clist_set:Nx #1
@@ -2463,7 +2462,7 @@
\cs_new:Npn \@@_save_display_widow_penalties:n #1
{
\__int_value:w \etex_displaywidowpenalties:D
- \__int_eval:w #1 \__int_eval_end: ,
+ \__int_eval:n {#1} ,
}
\cs_new_protected:Npn \galley_save_widow_penalties:N #1
{
@@ -2475,7 +2474,7 @@
}
}
\cs_new:Npn \@@_save_widow_penalties:n #1
- { \__int_value:w \etex_widowpenalties:D \__int_eval:w #1 \__int_eval_end: , }
+ { \__int_value:w \etex_widowpenalties:D \__int_eval:n {#1} , }
% \end{macrocode}
% This one is not an array, but is stored in a primitive, so there is
% a simple conversion. The general interline penalty is always the
diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
index 8f4344592fd..b8b07b405b5 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
@@ -8,7 +8,7 @@
% license or (at your option) any later version. The latest version
% of this license is in the file
%
-% http://www.latex-project.org/lppl.txt
+% https://www.latex-project.org/lppl.txt
%
% This file is part of the "l3experimental bundle" (The Work in LPPL)
% and all files in that bundle must be distributed together.
@@ -45,7 +45,7 @@
% }^^A
% }
%
-% \date{Released 2017/11/14}
+% \date{Released 2017/12/05}
%
% \maketitle
%
@@ -732,7 +732,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xgalley}{2017/11/14}{}
+\ProvidesExplPackage{xgalley}{2017/12/05}{}
{L3 Experimental galley}
\RequirePackage{xparse,xtemplate,l3galley}
% \end{macrocode}
@@ -1402,6 +1402,7 @@
% \end{macrocode}
% A bit more complex for the array penalties. Although the interface here
% does not expose the arrays, it is necessary to correctly save them.
+% We suspend debugging to allow an assignment to a constant.
% \begin{macrocode}
\seq_map_inline:Nn \c_@@_parbreak_multi_seq
{
@@ -1417,16 +1418,20 @@
}
}
}
-\seq_new:N \c_@@_parbreak_multi_seq
-\seq_gput_right:Nn \c_@@_parbreak_multi_seq { club_penalties }
-\seq_gput_right:Nn \c_@@_parbreak_multi_seq { display_club_penalties }
-\seq_gput_right:Nn \c_@@_parbreak_multi_seq { display_widow_penalties }
-\seq_gput_right:Nn \c_@@_parbreak_multi_seq { widow_penalties }
-\seq_new:N \c_@@_parbreak_single_seq
-\seq_gput_right:Nn \c_@@_parbreak_single_seq { parbreak_badness }
-\seq_gput_right:Nn \c_@@_parbreak_single_seq { broken_penalty }
-\seq_gput_right:Nn \c_@@_parbreak_single_seq { post_display_penalty }
-\seq_gput_right:Nn \c_@@_parbreak_single_seq { pre_display_penalty }
+\seq_const_from_clist:Nn \c_@@_parbreak_multi_seq
+ {
+ club_penalties ,
+ display_club_penalties ,
+ display_widow_penalties ,
+ widow_penalties ,
+ }
+\seq_const_from_clist:Nn \c_@@_parbreak_single_seq
+ {
+ parbreak_badness ,
+ broken_penalty ,
+ post_display_penalty ,
+ pre_display_penalty ,
+ }
% \end{macrocode}
% \end{variable}
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.ins b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.ins
index 1d10cd47277..5ef421779d4 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.ins
+++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.ins
@@ -1,6 +1,6 @@
\iffalse meta-comment
-File xgalley.ins Copyright (C) 2010-2012,2016 The LaTeX3 Project
+File xgalley.ins Copyright (C) 2010-2012,2016,2017 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
@@ -32,7 +32,7 @@ license information is placed in the derived files.
\preamble
-Copyright (C) 2010-2016 The LaTeX3 Project
+Copyright (C) 2010-2017 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
diff --git a/Master/texmf-dist/tex/latex/l3build/l3build.lua b/Master/texmf-dist/tex/latex/l3build/l3build.lua
index 9fd1faa3f40..5c5469375b9 100644
--- a/Master/texmf-dist/tex/latex/l3build/l3build.lua
+++ b/Master/texmf-dist/tex/latex/l3build/l3build.lua
@@ -23,7 +23,7 @@ for those people who are interested.
--]]
-- Version information
-release_date = "2017/11/25"
+release_date = "2017/12/06"
-- "module" is a deprecated function in Lua 5.2: as we want the name
-- for other purposes, and it should eventually be 'free', simply
@@ -61,24 +61,25 @@ end
-- Directory structure for the build system
-- Use Unix-style path separators
-maindir = maindir or "."
+maindir = maindir or "."
--- Substructure for tests and support files
+-- Substructure for file locations
+docfiledir = docfiledir or maindir
+supportdir = supportdir or maindir .. "/support"
testfiledir = testfiledir or "testfiles"
testsuppdir = testsuppdir or testfiledir .. "/support"
-supportdir = supportdir or maindir .. "/support"
-- Structure within a development area
-distribdir = distribdir or maindir .. "/build/distrib"
-localdir = localdir or maindir .. "/build/local"
-testdir = testdir or maindir .. "/build/test"
-typesetdir = typesetdir or maindir .. "/build/doc"
-unpackdir = unpackdir or maindir .. "/build/unpacked"
+distribdir = distribdir or maindir .. "/build/distrib"
+localdir = localdir or maindir .. "/build/local"
+testdir = testdir or maindir .. "/build/test"
+typesetdir = typesetdir or maindir .. "/build/doc"
+unpackdir = unpackdir or maindir .. "/build/unpacked"
-- Substructure for CTAN release material
-ctandir = ctandir or distribdir .. "/ctan"
-tdsdir = tdsdir or distribdir .. "/tds"
-tdsroot = tdsroot or "latex"
+ctandir = ctandir or distribdir .. "/ctan"
+tdsdir = tdsdir or distribdir .. "/tds"
+tdsroot = tdsroot or "latex"
-- Location for installation on CTAN or in TEXMFHOME
if bundle == "" then
@@ -108,7 +109,6 @@ sourcefiles = sourcefiles or {"*.dtx", "*.ins"}
textfiles = textfiles or {"*.md", "*.txt"}
typesetdemofiles = typesetdemofiles or { }
typesetfiles = typesetfiles or {"*.dtx"}
-docfiledir = docfiledir or maindir
typesetsuppfiles = typesetsuppfiles or { }
typesetsourcefiles = typesetsourcefiles or { }
unpackfiles = unpackfiles or {"*.ins"}
@@ -176,6 +176,7 @@ maxprintline = maxprintline or 79
packtdszip = packtdszip or false
scriptname = scriptname or "build.lua"
typesetcmds = typesetcmds or ""
+typesetruns = typesetruns or 2
versionform = versionform or ""
recordstatus = recordstatus or false
@@ -681,9 +682,9 @@ function tree(path, glob)
return true
end
function is_dir(file)
- return lfs.attributes(file)["mode"] == "directory"
+ return lfs_attributes(file)["mode"] == "directory"
end
- local dirs = {["."]=cropdots(path)}
+ local dirs = {["."] = cropdots(path)}
for pattern, critereon in gmatch(cropdots(glob), "([^/]+)(/?)") do
local critereon = critereon == "/" and is_dir or always_true
function fill(path, dir, table)
@@ -691,8 +692,8 @@ function tree(path, glob)
local fullpath = path .. "/" .. file
if file ~= "." and file ~= ".." and
fullpath ~= maindir .. "/build" and
- (string.sub(pattern, 1, 1) == "."
- or string.sub(file, 1, 1) ~= ".")
+ (sub(pattern, 1, 1) == "."
+ or sub(file, 1, 1) ~= ".")
then
local fulldir = dir .. "/" .. file
if critereon(fulldir) then
@@ -1011,6 +1012,36 @@ local function formatlog(logfile, newfile, engine, errlevels)
for i = 0, 31 do
line = gsub(line, char(i), "^^" .. char(64 + i))
end
+ -- Normalise register allocation to hard-coded numbers
+ -- No regex, so use a pattern plus lookup approach
+ local register_types = {
+ attribute = true,
+ box = true,
+ bytecode = true,
+ catcodetable = true,
+ count = true,
+ dimen = true,
+ insert = true,
+ language = true,
+ luabytecode = true,
+ luachunk = true,
+ luafunction = true,
+ marks = true,
+ muskip = true,
+ read = true,
+ skip = true,
+ toks = true,
+ whatsit = true,
+ write = true,
+ XeTeXcharclass = true
+ }
+ if register_types[match(line, "^\\[^%]]+=\\([a-z]+)%d+$")] then
+ line = gsub(line, "%d+$", "...")
+ end
+ -- Also deal with showing boxes
+ if match(line, "^> \\box%d+=$") or match(line, "^> \\box%d+=(void)$") then
+ line = gsub(line, "%d+=", "...=")
+ end
-- Remove 'normal' direction information on boxes with (u)pTeX
line = gsub(line, ",? yoko direction,?", "")
line = gsub(line, ",? yoko%(math%) direction,?", "")
@@ -1738,9 +1769,9 @@ typeset = typeset or function(file, dir)
tex(file, dir)
)
end
- errorlevel = cycle(name, dir)
- if errorlevel == 0 then
+ for i = 1, typesetruns do
errorlevel = cycle(name, dir)
+ if errorlevel ~= 0 then break end
end
end
return errorlevel
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
index 4edbc93f067..a21d8bb3936 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
@@ -20,7 +20,7 @@
%%
%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project
\RequirePackage{expl3}
-\ProvidesExplPackage{l3str-convert}{2017/11/14}{}
+\ProvidesExplPackage{l3str-convert}{2017/12/05}{}
{L3 Experimental string encoding conversions}
\cs_if_exist:NF \use_ii_i:nn
{ \cs_new:Npn \use_ii_i:nn #1#2 { #2 #1 } }
@@ -425,7 +425,7 @@
\group_end:
\cs_new_protected:Npn \__str_convert_decode_clist:
{
- \clist_set:No \g__str_result_tl \g__str_result_tl
+ \clist_gset:No \g__str_result_tl \g__str_result_tl
\tl_gset:Nx \g__str_result_tl
{
\exp_args:No \clist_map_function:nN
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def
index b2c8c75fbd0..34fc37267e9 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def
@@ -20,10 +20,9 @@
%%
%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project
\group_begin:
- \char_set_lccode:nn {`\*} {`\\}
\char_set_catcode_other:N \^^J
\char_set_catcode_other:N \^^M
- \tex_lowercase:D
+ \cs_set_protected:Npn \__str_tmp:w #1
{
\cs_new_protected:Npn \__str_convert_unescape_string:
{
@@ -40,15 +39,17 @@
\tl_gset:Nx \g__str_result_tl
{
\exp_after:wN \__str_unescape_string_loop:wNNN
- \g__str_result_tl * ?? { ? \__prg_break: }
+ \g__str_result_tl #1 ?? { ? \__prg_break: }
\__prg_break_point:
}
\__str_if_flag_error:nnx { str_byte } { non-byte } { string }
\__str_if_flag_error:nnx { str_error } { unescape-string } { }
\group_end:
}
- \cs_new:Npn \__str_unescape_string_loop:wNNN #1 *#2#3#4
}
+ \exp_args:No \__str_tmp:w { \c_backslash_str }
+ \exp_last_unbraced:NNNNo
+ \cs_new:Npn \__str_unescape_string_loop:wNNN #1 \c_backslash_str #2#3#4
{
\__str_filter_bytes:n {#1}
\use_none:n #4
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
index aa80b2781e1..8b645158d2a 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
@@ -18,11 +18,10 @@
%% This file is part of the "l3experimental bundle" (The Work in LPPL)
%% and all files in that bundle must be distributed together.
%%
-%% File: l3str-format.dtx Copyright (C) 2012-2013,2015-2017 The LaTeX3 Project
+%% File: l3str-format.dtx Copyright (C) 2012-2017 The LaTeX3 Project
\RequirePackage{expl3}
-\ProvidesExplPackage{l3str-format}{2017/11/14}{}
+\ProvidesExplPackage{l3str-format}{2017/12/05}{}
{L3 Experimental string formatting}
-\RequirePackage{l3str}
\cs_generate_variant:Nn \use:nn { nf }
\cs_generate_variant:Nn \use:nnn { fnf }
\cs_generate_variant:Nn \tl_to_str:n { f }
@@ -374,7 +373,6 @@
\__str_format_put:fw { \use_i:nnnn #4 . }
\use_none:n \s__stop
}
- }
\cs_new:Npn \__str_format_fp_f:wn \s__fp \__fp_chk:w #1#2#3 ; #4
{
\int_case:nnF {#1}
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
index 3865ba55a5b..c89aae0aa45 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
@@ -6,7 +6,7 @@
%%
%% xcoffins.dtx (with options: `package')
%%
-%% Copyright (C) 2010-2016 The LaTeX3 Project
+%% Copyright (C) 2010-2017 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
@@ -20,7 +20,7 @@
%%
%% File: xcoffins.dtx Copyright(C) 2010-2012,2014,2016,2017 The LaTeX3 Project
\RequirePackage{xparse}
-\ProvidesExplPackage{xcoffins}{2017/11/14}{}
+\ProvidesExplPackage{xcoffins}{2017/12/05}{}
{L3 Experimental design level coffins}
\keys_define:nn { coffin }
{
@@ -149,7 +149,7 @@
\NewDocumentCommand \CoffinHeight { m }
{ \coffin_ht:N #1 }
\NewDocumentCommand \CoffinTotalHeight { m }
- { \__dim_eval:w \coffin_ht:N #1 + \coffin_dp:N #1 \__dim_eval_end: }
+ { \__dim_eval:n { \coffin_ht:N #1 + \coffin_dp:N #1 } }
\NewDocumentCommand \CoffinWidth { m }
{ \coffin_wd:N #1 }
\NewDocumentCommand \DisplayCoffinHandles { m m }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
index b85be4e7390..4793d610dfa 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
@@ -6,7 +6,7 @@
%%
%% l3galley.dtx (with options: `package')
%%
-%% Copyright (C) 2010-2016 The LaTeX3 Project
+%% Copyright (C) 2010-2017 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
@@ -20,8 +20,8 @@
%%
%% File: l3galley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach
%% (C) 2010-2017 The LaTeX3 Project
-\RequirePackage{expl3}[2017/11/14]
-\@ifpackagelater{expl3}{2017/11/14}
+\RequirePackage{expl3}[2017/12/05]
+\@ifpackagelater{expl3}{2017/12/05}
{}
{%
\PackageError{l3galley}{Support package l3kernel too old}
@@ -33,7 +33,7 @@
}%
\endinput
}
-\ProvidesExplPackage{l3galley}{2017/11/14}{}
+\ProvidesExplPackage{l3galley}{2017/12/05}{}
{L3 Experimental galley code}
\int_new:N \l__galley_tmp_int
\seq_new:N \g__galley_tmpa_seq
@@ -410,7 +410,7 @@
}
{
\tex_penalty:D
- \__int_eval:w \g__galley_interpar_penalty_user_tl \__int_eval_end:
+ \__int_eval:n { \g__galley_interpar_penalty_user_tl }
\tl_gclear:N \g__galley_interpar_penalty_user_tl
}
\bool_gset_false:N \g_galley_no_break_next_bool
@@ -560,18 +560,15 @@
\cs_new_protected:Npn \__galley_parshape_set_indents:NN #1#2
{
\tex_parshape:D
- \__int_eval:w
- \int_min:nn { \seq_count:N #1 } { \seq_count:N #2 }
- \__int_eval_end:
+ \__int_eval:n
+ { \int_min:nn { \seq_count:N #1 } { \seq_count:N #2 } }
\seq_mapthread_function:NNN #1 #2
\__galley_parshape_set_indents:nn
}
\cs_new:Npn \__galley_parshape_set_indents:nn #1#2
{
- \__dim_eval:w \l_galley_total_left_margin_dim + ( #1 ) \__dim_eval_end:
- \__dim_eval:w
- \l_galley_text_width_dim - ( ( #1 ) + ( #2 ) )
- \__dim_eval_end:
+ \__dim_eval:n { \l_galley_total_left_margin_dim + #1 }
+ \__dim_eval:n { \l_galley_text_width_dim - ( #1 + #2 ) }
}
\cs_new_protected:Npn \__galley_parshape_set_cutouts:
{
@@ -731,7 +728,7 @@
\cs_new_protected:Npn \galley_display_widow_penalties_set:n #1
{
\etex_displaywidowpenalties:D
- \__int_eval:w \clist_count:n {#1} + 1 \__int_eval_end:
+ \__int_eval:n { \clist_count:n {#1} + 1 }
\clist_map_function:nN {#1} \__galley_set_aux:n
0 \exp_stop_f:
}
@@ -739,7 +736,7 @@
\cs_new_protected:Npn \galley_widow_penalties_set:n #1
{
\etex_widowpenalties:D
- \__int_eval:w \clist_count:n {#1} + 1 \__int_eval_end:
+ \__int_eval:n { \clist_count:n {#1} + 1 }
\clist_map_function:nN {#1} \__galley_set_aux:n
0 \exp_stop_f:
}
@@ -760,28 +757,28 @@
\cs_new_protected:Npn \galley_display_club_penalties_set:n #1
{
\etex_clubpenalties:D
- \__int_eval:w \clist_count:n {#1} + 1 \__int_eval_end:
+ \__int_eval:n { \clist_count:n {#1} + 1 }
\clist_map_function:nN {#1} \__galley_set_aux:n
0 \exp_stop_f:
\__galley_calc_interline_penalties:
}
\cs_generate_variant:Nn \galley_display_club_penalties_set:n { V , v }
-\__debug_patch_args:nNNpn { { (#1) } }
\cs_new_protected:Npn \galley_interline_penalty_set:n #1
{
\int_compare:nNnTF { \etex_interlinepenalties:D 0 } = 0
{
- \etex_interlinepenalties:D 1 = \__int_eval:w #1 \__int_eval_end:
+ \etex_interlinepenalties:D 1 = \__int_eval:n {#1}
\__galley_calc_interline_penalties:
}
{
\cs_set:Npn \__galley_set_interline_penalty_auxii:n ##1
{
- \__int_eval:w
- \etex_interlinepenalties:D ##1
- - \etex_interlinepenalties:D \etex_interlinepenalties:D 0
- + #1
- \__int_eval_end:
+ \__int_eval:n
+ {
+ \etex_interlinepenalties:D ##1
+ - \etex_interlinepenalties:D \etex_interlinepenalties:D 0
+ + #1
+ }
}
\exp_args:Nf \__galley_set_interline_penalty:nn
{ \clist_count:N \l_galley_line_penalties_clist } {#1}
@@ -796,10 +793,10 @@
\int_step_function:nnnN { #1 + 1 } { 1 }
{ \etex_interlinepenalties:D 0 - 1 }
\__galley_set_interline_penalty_auxii:n
- \__int_eval:w #2 \__int_eval_end:
+ \__int_eval:n {#2}
}
\cs_new:Npn \__galley_set_interline_penalty_auxi:n #1
- { \etex_interlinepenalties:D \__int_eval:w #1 \__int_eval_end: }
+ { \etex_interlinepenalties:D \__int_eval:n {#1} }
\cs_new:Npn \__galley_set_interline_penalty_auxii:n #1 { }
\cs_new_protected:Npn \__galley_calc_interline_penalties:
{
@@ -826,19 +823,21 @@
}
\cs_new:Npn \__galley_calc_interline_penalties_auxi:n #1
{
- \__int_eval:w
+ \__int_eval:n
+ {
\clist_item:Nn \l_galley_line_penalties_clist {#1}
- + 0 \clist_item:Nn \l_galley_club_penalties_clist {#1}
- - \etex_clubpenalties:D #1 ~
- \__int_eval_end:
+ + 0 \clist_item:Nn \l_galley_club_penalties_clist {#1}
+ - \etex_clubpenalties:D #1 ~
+ }
}
\cs_new:Npn \__galley_calc_interline_penalties_auxii:n #1
{
- \__int_eval:w
+ \__int_eval:n
+ {
\etex_interlinepenalties:D \etex_interlinepenalties:D 0 \exp_stop_f:
- + 0 \clist_item:Nn \l_galley_club_penalties_clist {#1}
- - \etex_clubpenalties:D #1 ~
- \__int_eval_end:
+ + 0 \clist_item:Nn \l_galley_club_penalties_clist {#1}
+ - \etex_clubpenalties:D #1 ~
+ }
}
\cs_new_protected:Npn \galley_save_club_penalties:N #1
{ \clist_set_eq:NN #1 \l_galley_club_penalties_clist }
@@ -854,7 +853,7 @@
}
}
\cs_new:Npn \__galley_save_display_club_penalties:n #1
- { \__int_value:w \etex_clubpenalties:D \__int_eval:w #1 \__int_eval_end: , }
+ { \__int_value:w \etex_clubpenalties:D \__int_eval:n {#1} , }
\cs_new_protected:Npn \galley_save_display_widow_penalties:N #1
{
\clist_set:Nx #1
@@ -867,7 +866,7 @@
\cs_new:Npn \__galley_save_display_widow_penalties:n #1
{
\__int_value:w \etex_displaywidowpenalties:D
- \__int_eval:w #1 \__int_eval_end: ,
+ \__int_eval:n {#1} ,
}
\cs_new_protected:Npn \galley_save_widow_penalties:N #1
{
@@ -879,7 +878,7 @@
}
}
\cs_new:Npn \__galley_save_widow_penalties:n #1
- { \__int_value:w \etex_widowpenalties:D \__int_eval:w #1 \__int_eval_end: , }
+ { \__int_value:w \etex_widowpenalties:D \__int_eval:n {#1} , }
\cs_new_protected:Npn \galley_interline_penalty:
{ \__int_value:w \etex_interlinepenalties:D \etex_interlinepenalties:D 0 \exp_stop_f: }
\__msg_kernel_new:nnn { galley } { no-line-to-end }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
index ba0ffc06718..6704e6375ad 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
@@ -6,7 +6,7 @@
%%
%% xgalley.dtx (with options: `package')
%%
-%% Copyright (C) 2010-2016 The LaTeX3 Project
+%% Copyright (C) 2010-2017 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
@@ -21,7 +21,7 @@
%% File: xgalley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach
%% (C) 2010-2012,2014,2016-2017 The LaTeX3 Project
\RequirePackage{xparse}
-\ProvidesExplPackage{xgalley}{2017/11/14}{}
+\ProvidesExplPackage{xgalley}{2017/12/05}{}
{L3 Experimental galley}
\RequirePackage{xparse,xtemplate,l3galley}
\clist_new:N \l__galley_tmpa_clist
@@ -466,16 +466,20 @@
}
}
}
-\seq_new:N \c__galley_parbreak_multi_seq
-\seq_gput_right:Nn \c__galley_parbreak_multi_seq { club_penalties }
-\seq_gput_right:Nn \c__galley_parbreak_multi_seq { display_club_penalties }
-\seq_gput_right:Nn \c__galley_parbreak_multi_seq { display_widow_penalties }
-\seq_gput_right:Nn \c__galley_parbreak_multi_seq { widow_penalties }
-\seq_new:N \c__galley_parbreak_single_seq
-\seq_gput_right:Nn \c__galley_parbreak_single_seq { parbreak_badness }
-\seq_gput_right:Nn \c__galley_parbreak_single_seq { broken_penalty }
-\seq_gput_right:Nn \c__galley_parbreak_single_seq { post_display_penalty }
-\seq_gput_right:Nn \c__galley_parbreak_single_seq { pre_display_penalty }
+\seq_const_from_clist:Nn \c__galley_parbreak_multi_seq
+ {
+ club_penalties ,
+ display_club_penalties ,
+ display_widow_penalties ,
+ widow_penalties ,
+ }
+\seq_const_from_clist:Nn \c__galley_parbreak_single_seq
+ {
+ parbreak_badness ,
+ broken_penalty ,
+ post_display_penalty ,
+ pre_display_penalty ,
+ }
\DeclareInstance { paragraph-breaking } { single-std } { single } { }
\DeclareInstance { paragraph-breaking } { single-nobreak } { single }
{