summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3experimental
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/l3experimental')
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx592
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.ins62
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx42
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx17
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx4
19 files changed, 71 insertions, 688 deletions
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx b/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
index 26feb420abb..bc21191d4b8 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
@@ -122,7 +122,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3benchmark}{2023-11-01}{}
+\ProvidesExplPackage{l3benchmark}{2023-12-08}{}
{L3 Experimental benchmarking}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx b/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx
deleted file mode 100644
index 4783bd77868..00000000000
--- a/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx
+++ /dev/null
@@ -1,592 +0,0 @@
-% \iffalse meta-comment
-%
-%% File: l3bitset.dtx
-%
-% Copyright (C) 2020-2023 The LaTeX 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
-%
-% This file is part of the "l3bitset bundle" (The Work in LPPL)
-% and all files in that bundle must be distributed together.
-%
-% -----------------------------------------------------------------------
-%
-% The development version of the bundle can be found at
-%
-% https://github.com/latex3/latex3
-%
-% for those people who are interested.
-%
-%<*driver>
-\documentclass[full]{l3doc}
-\begin{document}
- \DocInput{\jobname.dtx}
-\end{document}
-%</driver>
-% \fi
-% \title{^^A
-% The \pkg{l3bitset} package \\ Experimental bitsets ^^A
-% }
-%
-% \author{^^A
-% The \LaTeX{} Project\thanks
-% {^^A
-% E-mail:
-% \href{mailto:latex-team@latex-project.org}
-% {latex-team@latex-project.org}^^A
-% }^^A
-% }
-%
-% \date{Released 2023-11-01}
-%
-% \maketitle
-% \begin{documentation}
-%
-% This package defines and implements the data type \texttt{bitset}, a vector of
-% bits. The size of the vector may grow dynamically.
-% Individual bits can be set and unset by names pointing to an index position.
-% The names |1|, |2|, |3|, \ldots\ are predeclared and point to the
-% index positions $1$, $2$, $3$,\ldots. More names can be added and existing names can
-% be changed.
-% The index is like all other indices in \pkg{expl3} modules \emph{1-based}.
-% A \texttt{bitset} can be output as binary number or---as needed e.g. in a
-% PDF dictionary---as decimal (arabic) number.
-% Currently only a small subset of the functions provided by the \pkg{bitset}
-% package are implemented here, mainly the functions needed to use bitsets in
-% PDF dictionaries.
-%
-% The bitset is stored as a string (but one shouldn't rely on the internal
-% representation) and so the vector size is theoretically
-% unlimited, only restricted by \TeX-memory. But the functions to set and clear
-% bits uses integer functions for the index so bitsets can't be longer
-% than $2^{31} - 1$.
-% The export function
-% \cs{bitset_to_arabic:N} can use functions from the \texttt{int} module only if
-% the largest index used for this bitset is smaller then $32$, for longer
-% bitsets \texttt{fp} is used and this is slower.
-%
-% \section{Creating bitsets}
-% \begin{function}[added = 2021-01-26,updated=2020-12-29]
-% {\bitset_new:N,\bitset_new:c,\bitset_new:Nn, \bitset_new:cn}
-% \begin{syntax}
-% \cs{bitset_new:N} \meta{bitset var} \\
-% \cs{bitset_new:Nn} \meta{bitset var}
-% \{
-% \meta{name1} |=| \meta{index1} |,|
-% \meta{name2} |=| \meta{index2} |,| \ldots{}
-% \}
-% \end{syntax}
-% Creates a new \meta{bitset var} or raises an error if the name is already taken.
-% The declaration is global. The \meta{bitset var} is initially $0$.
-%
-% Bitsets are implemented as string variables consisting of
-% \texttt{1}'s and \texttt{0}'s.
-% The rightmost number is the index position $1$, so
-% the string variable can be viewed directly as the binary number.
-% But one shouldn't rely on the internal representation, but use the
-% dedicated \cs{bitset_to_bin:N} instead to get the binary number.
-%
-% The name--index pairs given in the second
-% argument of \cs{bitset_new:Nn} declares names for some indices,
-% which can be used to set and unset bits.
-% The names |1|, |2|, |3|, \ldots\ are predeclared and point to the
-% index positions $1$, $2$, $3$, \ldots.
-%
-% \meta{index\ldots} should be a positive number or an
-% \meta{integer expression} which evaluates to a positive number.
-% The expression is evaluated when the index is used, not a declaration time.
-% The names \meta{name\ldots}
-% should be unique. Using a number as name, e.g.~|10=1|, is allowed, it
-% then overwrites the predeclared name |10|,
-% but the index position $10$ can then only be reached if some other
-% name for it exists, e.g. |ten=10|.
-% It is not necessary to give every index
-% a name, and an index can have more than one name. The named index
-% can be extended or changed with the next function.
-%
-% \end{function}
-% \begin{function}[added = 2021-01-26]
-% {\bitset_addto_named_index:Nn}
-% \begin{syntax}
-% \cs{bitset_addto_named_index:Nn} \meta{bitset var}
-% \{
-% \meta{name1} |=| \meta{index1} |,|
-% \meta{name2} |=| \meta{index2} |,| \ldots{}
-% \}
-% \end{syntax}
-% This extends or changes the name--index pairs for \meta{bitset var}
-% globally as described for \cs{bitset_new:Nn}.
-%
-% For example after these settings
-%
-% \begin{verbatim}
-% \bitset_new:Nn \l_pdfannot_F_bitset
-% {
-% Invisible = 1,
-% Hidden = 2,
-% Print = 3,
-% NoZoom = 4,
-% NoRotate = 5,
-% NoView = 6,
-% ReadOnly = 7,
-% Locked = 8,
-% ToggleNoView = 9,
-% LockedContents = 10
-% }
-% \bitset_addto_named_index:Nn \l_pdfannot_F_bitset
-% {
-% print = 3
-% }
-% \end{verbatim}
-% it is possible to set bit $3$ by using any of this alternatives:
-% \begin{verbatim}
-% \bitset_set_true:Nn \l_pdfannot_F_bitset {Print}
-% \bitset_set_true:Nn \l_pdfannot_F_bitset {print}
-% \bitset_set_true:Nn \l_pdfannot_F_bitset {3}
-% \end{verbatim}
-% \end{function}
-%
-% \begin{function}[EXP, pTF,added = 2021-01-26]
-% { \bitset_if_exist:N, \bitset_if_exist:c }
-% \begin{syntax}
-% \cs{bitset_if_exist_p:N} \meta{bitset var}
-% \cs{bitset_if_exist:NTF} \meta{bitset var} \Arg{true code} \Arg{false code}%
-% \end{syntax}
-% Tests whether the \meta{bitset var} exist.
-% \end{function}
-%
-% \section{Setting and unsetting bits}
-%
-% \begin{function}[added = 2021-01-26]
-% { \bitset_set_true:Nn, \bitset_set_true:cn, \bitset_gset_true:Nn, \bitset_gset_true:cn }
-% \begin{syntax}
-% \cs{bitset_set_true:Nn} \meta{bitset var} \Arg{name}\\
-% \cs{bitset_gset_true:Nn} \meta{bitset var} \Arg{name}
-% \end{syntax}
-% This sets the bit of the index position represented by \Arg{name} to $1$.
-% \Arg{name} should be either one of the predeclared names
-% |1|, |2|, |3|, \ldots, or one of the names added manually.
-% Index position are 1-based.
-% If needed the length of the bit vector is enlarged.
-% \end{function}
-%
-% \begin{function}[added = 2021-01-26]
-% { \bitset_set_false:Nn, \bitset_set_false:cn, \bitset_gset_false:Nn, \bitset_set_false:cn }
-% \begin{syntax}
-% \cs{bitset_set_false:Nn} \meta{bitset var} \Arg{name}\\
-% \cs{bitset_gset_false:Nn} \meta{bitset var} \Arg{name}
-% \end{syntax}
-% This unsets the bit of the index position represented by \Arg{name} (sets
-% it to $0$).
-% \Arg{name} should be either one of the predeclared names
-% |1|, |2|, |3|, \ldots, or one of the names added manually.
-% The index is $1$-based. If the index position is larger
-% than the current length of the bit vector
-% nothing happens. If the leading (left most) bit is unset,
-% zeros are not trimmed but stay in the bit vector and are still shown
-% by \cs{bitset_show:N}.
-% \end{function}
-%
-% \begin{function}[added = 2021-01-26]
-% {\bitset_clear:N,\bitset_clear:c,\bitset_gclear:N,\bitset_gclear:c}
-% \begin{syntax}
-% \cs{bitset_clear:N} \meta{bitset var} \\
-% \cs{bitset_gclear:N} \meta{bitset var}
-% \end{syntax}
-% This resets the bitset to the initial state. The declared names are not changed.
-% \end{function}
-%
-% \section{Using bitsets}
-%
-% \begin{function}[EXP,added = 2021-01-26]
-% { \bitset_item:Nn, \bitset_item:cn }
-% \begin{syntax}
-% \cs{bitset_item:Nn} \meta{bitset var} \Arg{name}
-% \end{syntax}
-% \cs{bitset_item:Nn} outputs \texttt{1} if the bit with
-% the index number represented by \Arg{name} is set and \texttt{0} otherwise.
-% \Arg{name} is either one of the predeclared names
-% |1|, |2|, |3|, \ldots, or one of the names added manually.
-% \end{function}
-%
-% \begin{function}[EXP,added = 2021-01-26]
-% {\bitset_to_bin:N, \bitset_to_bin:c}
-% \begin{syntax}
-% \cs{bitset_to_bin:N} \meta{bitset var}
-% \end{syntax}
-% This leaves the current value of the bitset expressed as
-% a binary (string) number in the input stream.
-% If no bit has been set yet, the output is zero.
-% \end{function}
-% \begin{function}[EXP,added = 2021-01-26]
-% {\bitset_to_arabic:N, \bitset_to_arabic:c}
-% \begin{syntax}
-% \cs{bitset_to_arabic:N} \meta{bitset var}
-% \end{syntax}
-% This leaves the current value of the bitset expressed as
-% a decimal number in the input stream. If no bit has been set yet,
-% the output is zero. The function uses \cs{int_from_bin:n} if the largest
-% index that have been set or unset is smaller then $32$, and a slower implementation
-% based on \cs{fp_eval:n} otherwise.
-% \end{function}
-%
-% \begin{function}[added = 2021-01-26]
-% {\bitset_show:N, \bitset_show:c}
-% \begin{syntax}
-% \cs{bitset_show:N} \meta{bitset var}
-% \end{syntax}
-% Displays the binary and decimal value of the \meta{bitset var} on the terminal,
-% \end{function}
-%
-% \begin{function}[added = 2021-01-26]
-% {\bitset_log:N, \bitset_log:c}
-% \begin{syntax}
-% \cs{bitset_log:N} \meta{bitset var}
-% \end{syntax}
-% Writes the value of the \meta{bitset var} in the log file.
-% \end{function}
-%
-% \end{documentation}
-%
-% \begin{implementation}
-% \section{\pkg{l3bitset} implementation}
-% \TestFiles{m3bitset001,m3bitset002}
-% \begin{macrocode}
-%<*package>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<@@=bitset>
-% \end{macrocode}
-% \begin{macrocode}
-\ProvidesExplPackage{l3bitset}{2023-11-01}{}
- {L3 Experimental bitset support}
-% \end{macrocode}
-% A bitset is a string variable.
-% \begin{macro}
-% {
-% \bitset_new:N, \bitset_new:c
-% }
-% \begin{macrocode}
-\cs_new_protected:Npn \bitset_new:N #1
- {
- \__kernel_chk_if_free_cs:N #1
- \cs_gset_eq:NN #1 \c_zero_str
- \prop_new:c { g__bitset_ \cs_to_str:N #1 _name_prop }
- }
-
-\cs_new_protected:Npn \bitset_new:Nn #1 #2
- {
- \__kernel_chk_if_free_cs:N #1
- \cs_gset_eq:NN #1 \c_zero_str
- \prop_new:c { g__bitset_ \cs_to_str:N #1 _name_prop }
- \prop_gset_from_keyval:cn
- { g__bitset_ \cs_to_str:N #1 _name_prop }
- {#2}
- }
-\cs_generate_variant:Nn \bitset_new:N { c }
-% \end{macrocode}
-% \end{macro}
-% \begin{variable}{\l_@@_tmpa_prop}
-% A scratch prop to be able to extend the names properties.
-% \begin{macrocode}
-\prop_new:N \l_@@_tmpa_prop
-% \end{macrocode}
-% \end{variable}
-% \begin{macro}
-% {
-% \bitset_addto_named_index:Nn
-% }
-% \begin{macrocode}
-\cs_new_protected:Npn \bitset_addto_named_index:Nn #1#2
- {
- \prop_set_from_keyval:Nn \l_@@_tmpa_prop {#2}
- \prop_map_inline:Nn \l_@@_tmpa_prop
- {
- \prop_gput:cnn
- { g_@@_ \cs_to_str:N #1 _name_prop }
- {##1}
- {##2}
- }
- }
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}[EXP,pTF]
-% {
-% \bitset_if_exist:N, \bitset_if_exist:c
-% }
-% Existence tests.
-% \begin{macrocode}
-\prg_new_eq_conditional:NNn
- \bitset_if_exist:N \str_if_exist:N { p , T , F , TF }
-\prg_new_eq_conditional:NNn
- \bitset_if_exist:c \str_if_exist:c
- { p , T , F , TF }
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\@@_set_true:Nn, \@@_gset_true:Nn, \@@_set_false:Nn, \@@_gset_false:Nn}
-% \begin{macro}{\@@_set:NNnN}
-% The internal command uses only numbers (integer expressions) for the
-% position.
-% A bit is set by either extending the string or by splitting it and
-% then inserting an $1$. It is not checked if the value was already $1$.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_set_true:Nn #1#2
- { \@@_set:NNnN \str_set:Ne #1 {#2} 1 }
-\cs_new_protected:Npn \@@_gset_true:Nn #1#2
- { \@@_set:NNnN \str_gset:Ne #1 {#2} 1 }
-\cs_new_protected:Npn \@@_set_false:Nn #1#2
- { \@@_set:NNnN \str_set:Ne #1 {#2} 0 }
-\cs_new_protected:Npn \@@_gset_false:Nn #1#2
- { \@@_set:NNnN \str_gset:Ne #1 {#2} 0 }
-\cs_new_protected:Npn \@@_set:NNnN #1#2#3#4
- {
- \int_compare:nNnT {#3} > { 0 }
- {
- \int_compare:nNnTF { \str_count:N #2 } < {#3}
- {
- #1 #2
- {
- #4
- \prg_replicate:nn { #3 - \str_count:N #2 - 1 } { 0 }
- #2
- }
- }
- {
- #1 #2
- {
- \str_range:Nnn #2 { 1 } { -1 - (#3) }
- #4
- \str_range:Nnn #2 { 1 - (#3) } { -1 }
- }
- }
- }
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{variable}{\l_@@_internal_int}
-% \begin{macrocode}
-\int_new:N \l_@@_internal_int
-% \end{macrocode}
-% \end{variable}
-%
-% \begin{macro}[TF]{\@@_test_digits:n}
-% \begin{macro}{\@@_test_digits_end:n}
-% \begin{macro}{\@@_test_digits:wn}
-% \url{https://chat.stackexchange.com/transcript/message/56878159#56878159}
-% \begin{macrocode}
-\prg_new_protected_conditional:Npnn \@@_test_digits:n #1 { TF }
- {
- \tex_afterassignment:D \@@_test_digits:w
- \l_@@_internal_int = 0 \tl_trim_spaces_apply:nN {#1} \tl_to_str:n
- \@@_test_digits_end:
- \use_i:nnn \if_false:
- \@@_test_digits_end:
- \if_int_compare:w \c_zero_int < \l_@@_internal_int
- \prg_return_true:
- \else:
- \prg_return_false:
- \fi:
- }
-\cs_new_eq:NN \@@_test_digits_end: \exp_stop_f:
-\cs_new_protected:Npn \@@_test_digits:w #1 \@@_test_digits_end: { }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}
-% {
-% \bitset_set_true:Nn, \bitset_set_true:cn,
-% \bitset_gset_true:Nn, \bitset_gset_true:cn,
-% }
-% \begin{macro}{\@@_set_aux:NNn}
-% The user commands must first translate the argument to an index number.
-% \begin{macrocode}
-\cs_new_protected:Npn \bitset_set_true:Nn #1#2
- { \@@_set:NNn \@@_set_true:Nn #1 {#2} }
-\cs_new_protected:Npn \bitset_gset_true:Nn #1#2
- { \@@_set:NNn \@@_gset_true:Nn #1 {#2} }
-\cs_new_protected:Npn \bitset_set_false:Nn #1#2
- { \@@_set:NNn \@@_set_false:Nn #1 {#2} }
-\cs_new_protected:Npn \bitset_gset_false:Nn #1#2
- { \@@_set:NNn \@@_gset_false:Nn #1 {#2} }
-\cs_new_protected:Npn \@@_set:NNn #1#2#3
- {
- \prop_if_in:cnTF { g_@@_ \cs_to_str:N #2 _name_prop } {#3}
- {
- #1 #2
- {
- \prop_item:cn { g_@@_ \cs_to_str:N #2 _name_prop } {#3}
- }
- }
- {
- \@@_test_digits:nTF {#3}
- {
- #1 #2 {#3}
- \prop_gput:cnn { g_@@_ \cs_to_str:N #2 _name_prop } {#3} {#3}
- }
- {
- \msg_warning:nnee { bitset } { unknown-name }
- { \token_to_str:N #2 }
- { \tl_to_str:n {#3} }
- }
- }
- }
-\cs_generate_variant:Nn \bitset_set_true:Nn { c }
-\cs_generate_variant:Nn \bitset_gset_true:Nn { c }
-\cs_generate_variant:Nn \bitset_set_false:Nn { c }
-\cs_generate_variant:Nn \bitset_gset_false:Nn { c }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}
-% {
-% \bitset_clear:N, \bitset_clear:c,
-% \bitset_gclear:N, \bitset_gclear:c
-% }
-% \begin{macrocode}
-\cs_new_protected:Npn \bitset_clear:N #1
- {
- \str_set_eq:NN #1 \c_zero_str
- }
-\cs_new_protected:Npn \bitset_gclear:N #1
- {
- \str_gset_eq:NN #1 \c_zero_str
- }
-\cs_generate_variant:Nn \bitset_clear:N { c }
-\cs_generate_variant:Nn \bitset_gclear:N { c }
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}
-% {
-% \bitset_to_arabic:N, \bitset_to_arabic:c,
-% \bitset_to_bin:N, \bitset_to_bin:c,
-% }
-% The naming of the commands follow the names in the \texttt{int} module.
-% \cs{bitset_to_arabic:N} uses \cs{int_from_bin:n} if the string is shorter
-% then $32$ and the slower \cs{fp_eval} for larger bitsets.
-% \begin{macrocode}
-\cs_new:Npn \bitset_to_arabic:N #1
- {
- \int_compare:nNnTF { \str_count:N #1 } < { 32 }
- { \exp_args:No \int_from_bin:n {#1} }
- {
- \exp_after:wN \@@_to_int:nN \exp_after:wN 0
- #1 \q_recursion_tail \q_recursion_stop
- }
- }
-
-\cs_new:Npn \@@_to_int:nN #1#2
- {
- \quark_if_recursion_tail_stop_do:Nn #2 {#1}
- \exp_args:Nf \@@_to_int:nN { \fp_eval:n { #1 * 2 + #2 } }
- }
-
-\cs_new:Npn \bitset_to_bin:N #1
- {
- #1
- }
-\cs_generate_variant:Nn \bitset_to_arabic:N { c }
-\cs_generate_variant:Nn \bitset_to_bin:N { c }
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}
-% {
-% \bitset_item:Nn, \bitset_item:cn
-% }
-% All bits that have been set at anytime have an entry in the prop,
-% so we can take everything else as $0$.
-% \begin{macrocode}
-\cs_new:Npn \bitset_item:Nn #1#2
- {
- \prop_if_in:cnTF { g_@@_ \cs_to_str:N #1 _name_prop } {#2}
- {
- \int_eval:n
- {
- \str_item:Nn #1
- { 0 - ( \prop_item:cn { g_@@_ \cs_to_str:N #1 _name_prop } {#2} ) }
- +0
- }
- }
- {
- 0
- }
- }
-\cs_generate_variant:Nn \bitset_item:Nn { c }
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}
-% {
-% \bitset_show:N, \bitset_show:c,
-% \bitset_log:N, \bitset_log:c
-% }
-% \begin{macrocode}
-\cs_new_protected:Npn \bitset_show:N { \@@_show:NN \msg_show:nneeee }
-\cs_generate_variant:Nn \bitset_show:N { c }
-\cs_new_protected:Npn \bitset_log:N { \@@_show:NN \msg_log:nneeee }
-\cs_generate_variant:Nn \bitset_log:N { c }
-\cs_new_protected:Npn \bitset_show_named_index:N { \@@_show_named_index:NN \msg_show:nneeee }
-\cs_generate_variant:Nn \bitset_show_named_index:N { c }
-\cs_new_protected:Npn \@@_show:NN #1#2
- {
- \__kernel_chk_defined:NT #2
- {
- #1 { bitset } { show }
- { \token_to_str:N #2 }
- { \bitset_to_bin:N #2 }
- { \bitset_to_arabic:N #2 }
- { }
- }
- }
-\cs_new_protected:Npn \@@_show_named_index:NN #1#2
- {
- \__kernel_chk_defined:NT #2
- {
- #1 { bitset } { show-names }
- { \token_to_str:N #2 }
- { \prop_map_function:cN { g_@@_ \cs_to_str:N #2 _name_prop } \msg_show_item:nn }
- { }
- { }
- }
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Messages}
-% \begin{macrocode}
- \msg_new:nnn { bitset } { show }
- {
- The~bitset~#1~has~the~representation: \\
- >~binary:~#2 \\
- >~arabic:~#3 .
- }
-\msg_new:nnn { bitset } { show-names }
- {
- The~bitset~#1~
- \tl_if_empty:nTF {#2}
- { knows~no~names~yet \\>~ . }
- { knows~the~name/index~pairs~(without~outer~braces): #2 . }
- }
-\msg_new:nnn { bitset } { unknown-name }
- { The~name~'#2'~is~unknown~for~bitset~\tl_to_str:n {#1} }
-\prop_gput:Nnn \g_msg_module_name_prop { bitset } { LaTeX }
-\prop_gput:Nnn \g_msg_module_type_prop { bitset } { }
-% \end{macrocode}
-% \begin{macrocode}
-%</package>
-% \end{macrocode}
-% \end{macro}
-%
-% \end{implementation}
-%
-% \PrintIndex
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.ins b/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.ins
deleted file mode 100644
index 1d91118d90a..00000000000
--- a/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.ins
+++ /dev/null
@@ -1,62 +0,0 @@
-\iffalse meta-comment
-
-File: l3bitset.ins
-
-Copyright (C) 2020,2021 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
-
-This file is part of the "l3experimental bundle" (The Work in LPPL)
-and all files in that bundle must be distributed together.
-
------------------------------------------------------------------------
-
-The development version of the bundle can be found at
-
- https://github.com/latex3/latex3
-
-for those people who are interested.
-
------------------------------------------------------------------------
-
-Any modification of this file should ensure that the copyright and
-license information is placed in the derived files.
-
-\fi
-
-\input docstrip %
-\askforoverwritefalse
-
-\preamble
-
-Copyright (C) 2020 The LaTeX3 Project
-
-It may be distributed and/or modified under the conditions of
-the LaTeX Project Public License (LPPL), either version 1.3c of
-this license or (at your option) any later version. The latest
-version of this license is in the file:
-
- http://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.
-
-\endpreamble
-% stop docstrip adding \endinput
-\postamble
-\endpostamble
-
-\keepsilent
-
-\generate{\file{l3bitset.sty}
- {
- \from{l3bitset.dtx} {package}
- }
-}
-
-\endbatchfile
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
index 44989999a57..b8f68e90a83 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
@@ -71,6 +71,8 @@
% \end{variable}
%
% \begin{macro}{\draw_box_use:N}
+% \begin{macro}{\draw_box_use:Nn}
+% \begin{macro}{\@@_box_use:nNnnnnn}
% \begin{macro}{\@@_box_use:Nnnnn}
% Before inserting a box, we need to make sure that the bounding box is being
% updated correctly. As drawings track transformations as a whole, rather
@@ -79,10 +81,22 @@
% \begin{macrocode}
\cs_new_protected:Npn \draw_box_use:N #1
{
- \@@_box_use:Nnnnn #1
+ \@@_box_use:Nnnnnnn #1
{ 0pt } { -\box_dp:N #1 } { \box_wd:N #1 } { \box_ht:N #1 }
}
-\cs_new_protected:Npn \@@_box_use:Nnnnn #1#2#3#4#5
+\cs_new_protected:Npn \draw_box_use:Nn #1#2
+ {
+ \@@_box_use:nNnnnn {#2} #1
+ { 0pt } { -\box_dp:N #1 } { \box_wd:N #1 } { \box_ht:N #1 }
+ }
+\cs_new_protected:Npn \@@_box_use:nNnnnn #1#2#3#4#5#6
+ {
+ \draw_scope_begin:
+ \draw_transform_shift:n {#1}
+ \@@_box_use:Nnnnnnn #2 {#3} {#4} {#5} {#6}
+ \draw_scope_end:
+ }
+\cs_new_protected:Npn \@@_box_use:Nnnnnnn #1#2#3#4#5
{
\bool_if:NT \l_draw_bb_update_bool
{
@@ -126,18 +140,32 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\draw_coffin_use:Nnn}
+% \begin{macro}{\draw_coffin_use:Nnnn}
+% \begin{macro}{\@@_coffin_use:nNnn}
% Slightly more than a shortcut: we have to allow for the fact that coffins
% have no apparent width before the reference point.
% \begin{macrocode}
\cs_new_protected:Npn \draw_coffin_use:Nnn #1#2#3
{
+ \@@_coffin_use:nNnn { \@@_box_use:Nnnnnnn }
+ #1 {#2} {#3}
+ }
+\cs_new_protected:Npn \draw_coffin_use:Nnnn #1#2#3#4
+ {
+ \@@_coffin_use:nNnn { \@@_box_use:nNnnnn {#4} }
+ #1 {#2} {#3}
+ }
+\cs_new_protected:Npn \@@_coffin_use:nNnn #1#2#3#4
+ {
\group_begin:
\hbox_set:Nn \l_@@_tmp_box
- { \coffin_typeset:Nnnnn #1 {#2} {#3} { 0pt } { 0pt } }
- \@@_box_use:Nnnnn \l_@@_tmp_box
- { \box_wd:N \l_@@_tmp_box - \coffin_wd:N #1 }
+ { \coffin_typeset:Nnnnn #2 {#3} {#4} { 0pt } { 0pt } }
+ #1 \l_@@_tmp_box
+ { \box_wd:N \l_@@_tmp_box - \coffin_wd:N #2 }
{ -\box_dp:N \l_@@_tmp_box }
{ \box_wd:N \l_@@_tmp_box }
{ \box_ht:N \l_@@_tmp_box }
@@ -145,6 +173,8 @@
}
% \end{macrocode}
% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macrocode}
%</package>
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
index 1337427dc26..cf2c2091cb1 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
index 5d8b63247f1..53032f4d611 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
index ba47cddd4c5..f7228732377 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
index 5917a0c6bcf..ae8869d6b79 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
index 9419015a91b..56a7c78d9db 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
index 36b30cdeccb..c288fe0c584 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
index 31d8b95ea27..8115e1c4fcf 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
index 8f0467519ca..e0cbdff3d42 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
@@ -110,7 +110,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
@@ -961,9 +961,10 @@
%
% \subsection{Boxes and coffins}
%
-% \begin{function}{\draw_box_use:N}
+% \begin{function}{\draw_box_use:N, \draw_box_use:Nn}
% \begin{syntax}
% \cs{draw_box_use:N} \meta{box}
+% \cs{draw_box_use:Nn} \meta{box} \Arg{point}
% \end{syntax}
% Inserts the \meta{box} into a drawing, taking account of the current
% transformation matrix and shift, and adjusting the drawing bounding
@@ -990,11 +991,14 @@
% \draw_box_use:N \l_tmpa_box
% \draw_end:
% \end{demo}
+% If the \meta{point} is given, the reference point of the box is placed there:
+% otherwise it is positioned at the origin of the drawing.
% \end{function}
%
-% \begin{function}{\draw_coffin_use:Nnn}
+% \begin{function}{\draw_coffin_use:Nnn, \draw_coffin_use:Nnnn}
% \begin{syntax}
-% \cs{draw_coffin_use:N} \meta{coffin} \Arg{hpole} \Arg{vpole}
+% \cs{draw_coffin_use:Nnn} \meta{coffin} \Arg{hpole} \Arg{vpole}
+% \cs{draw_coffin_use:Nnnn} \meta{coffin} \Arg{hpole} \Arg{vpole} \Arg{point}
% \end{syntax}
% Inserts the \meta{coffin} into a drawing, taking account of the current
% transformation matrix and shift, and adjusting the drawing bounding
@@ -1012,6 +1016,9 @@
% \draw_coffin_use:Nnn \l_tmpa_coffin { hc } { vc }
% \draw_end:
% \end{demo}
+% If the \meta{point} is given, the pole intersection of the coffine is
+% placed there: otherwise it is positioned at the origin of the drawing.
+
% \end{function}
%
% \subsection{Transformations}
@@ -1173,7 +1180,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3draw}{2023-11-01}{}
+\ProvidesExplPackage{l3draw}{2023-12-08}{}
{L3 Experimental core drawing support}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx b/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
index ebb4f86a2cf..5a45b88d9c8 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
@@ -184,7 +184,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3graphics}{2023-11-01}{}
+\ProvidesExplPackage{l3graphics}{2023-12-08}{}
{L3 Experimental graphics inclusion support}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx b/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx
index 1bb27e2ca31..9ed6f5e6a4b 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
@@ -96,7 +96,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3opacity}{2023-11-01}{}
+\ProvidesExplPackage{l3opacity}{2023-12-08}{}
{L3 Experimental opacity support}
% \end{macrocode}
%
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 57aebd6296c..03a61452396 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
@@ -48,7 +48,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
@@ -166,7 +166,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3str-format}{2023-11-01}{}
+\ProvidesExplPackage{l3str-format}{2023-12-08}{}
{L3 Experimental string formatting}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx b/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx
index c17d9a97b1b..4c05998e374 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
@@ -151,7 +151,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3sys-shell}{2023-11-01}{}
+\ProvidesExplPackage{l3sys-shell}{2023-12-08}{}
{L3 Experimental system shell functions}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
index 2dc6cffa6a8..9ca534e86c7 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
@@ -53,7 +53,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
@@ -672,7 +672,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xcoffins}{2023-11-01}{}
+\ProvidesExplPackage{xcoffins}{2023-12-08}{}
{L3 Experimental design level coffins}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
index 7aaf367785b..7b150d5dc5c 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
@@ -61,7 +61,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
@@ -686,7 +686,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3galley}{2023-11-01}{}
+\ProvidesExplPackage{l3galley}{2023-12-08}{}
{L3 Experimental galley code}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
index 3dd89b46e89..eb704906db8 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-08}
%
% \maketitle
%
@@ -731,7 +731,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xgalley}{2023-11-01}{}
+\ProvidesExplPackage{xgalley}{2023-12-08}{}
{L3 Experimental galley}
\RequirePackage{xtemplate,l3galley}
% \end{macrocode}