From 1fed4553e07e0372e12d6a1ac32f29b3c7a2a538 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 7 Dec 2017 23:16:26 +0000 Subject: l3experimental+l3build (7dec17) git-svn-id: svn://tug.org/texlive/trunk@46013 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/l3build/l3build.dtx | 136 +++++++------- .../latex/l3experimental/l3str/l3str-convert.dtx | 200 ++++++++++----------- .../latex/l3experimental/l3str/l3str-format.dtx | 72 ++++---- .../source/latex/l3experimental/l3str/l3str.ins | 2 +- .../latex/l3experimental/xcoffins/xcoffins.dtx | 10 +- .../latex/l3experimental/xcoffins/xcoffins.ins | 4 +- .../latex/l3experimental/xgalley/l3galley.dtx | 129 +++++++------ .../latex/l3experimental/xgalley/xgalley.dtx | 31 ++-- .../latex/l3experimental/xgalley/xgalley.ins | 4 +- 9 files changed, 298 insertions(+), 290 deletions(-) (limited to 'Master/texmf-dist/source/latex') 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} % % \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] -%\@ifpackagelater{expl3}{2017/11/14} +\RequirePackage{expl3}[2017/12/05] +%\@ifpackagelater{expl3}{2017/12/05} % {} % {% % \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} % % \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 -- cgit v1.2.3