summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3experimental
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/source/latex/l3experimental
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/source/latex/l3experimental')
-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
8 files changed, 227 insertions, 225 deletions
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