From ff15e9aea45682289b6f31fa687c1b51f543d09e Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Fri, 31 Mar 2023 03:01:28 +0000 Subject: CTAN sync 202303310301 --- macros/latex/contrib/l3backend/CHANGELOG.md | 11 +- macros/latex/contrib/l3backend/README.md | 2 +- .../latex/contrib/l3backend/l3backend-basics.dtx | 16 +- macros/latex/contrib/l3backend/l3backend-box.dtx | 4 +- macros/latex/contrib/l3backend/l3backend-code.pdf | Bin 933659 -> 933580 bytes macros/latex/contrib/l3backend/l3backend-color.dtx | 164 +++++++++++---------- macros/latex/contrib/l3backend/l3backend-draw.dtx | 4 +- .../latex/contrib/l3backend/l3backend-graphics.dtx | 4 +- .../latex/contrib/l3backend/l3backend-header.dtx | 4 +- .../latex/contrib/l3backend/l3backend-opacity.dtx | 67 ++++++++- macros/latex/contrib/l3backend/l3backend-pdf.dtx | 4 +- macros/latex/contrib/l3backend/l3backend.ins | 28 ++++ macros/latex/contrib/l3experimental/CHANGELOG.md | 9 +- macros/latex/contrib/l3experimental/README.md | 2 +- .../latex/contrib/l3experimental/l3benchmark.dtx | 6 +- .../latex/contrib/l3experimental/l3benchmark.pdf | Bin 308483 -> 308403 bytes macros/latex/contrib/l3experimental/l3bitset.dtx | 4 +- macros/latex/contrib/l3experimental/l3bitset.pdf | Bin 404305 -> 404278 bytes .../latex/contrib/l3experimental/l3draw-boxes.dtx | 2 +- .../latex/contrib/l3experimental/l3draw-code.pdf | Bin 679193 -> 679499 bytes .../latex/contrib/l3experimental/l3draw-layers.dtx | 2 +- .../latex/contrib/l3experimental/l3draw-paths.dtx | 2 +- .../latex/contrib/l3experimental/l3draw-points.dtx | 2 +- .../latex/contrib/l3experimental/l3draw-scopes.dtx | 2 +- .../contrib/l3experimental/l3draw-softpath.dtx | 2 +- .../latex/contrib/l3experimental/l3draw-state.dtx | 2 +- .../contrib/l3experimental/l3draw-transforms.dtx | 2 +- macros/latex/contrib/l3experimental/l3draw.dtx | 4 +- macros/latex/contrib/l3experimental/l3draw.pdf | Bin 517619 -> 517668 bytes macros/latex/contrib/l3experimental/l3galley.dtx | 6 +- macros/latex/contrib/l3experimental/l3galley.pdf | Bin 408825 -> 408782 bytes macros/latex/contrib/l3experimental/l3graphics.dtx | 4 +- macros/latex/contrib/l3experimental/l3graphics.pdf | Bin 382072 -> 382031 bytes macros/latex/contrib/l3experimental/l3opacity.dtx | 6 +- macros/latex/contrib/l3experimental/l3opacity.pdf | Bin 313535 -> 313467 bytes .../latex/contrib/l3experimental/l3str-format.dtx | 4 +- .../latex/contrib/l3experimental/l3str-format.pdf | Bin 367940 -> 367903 bytes .../latex/contrib/l3experimental/l3sys-shell.dtx | 4 +- .../latex/contrib/l3experimental/l3sys-shell.pdf | Bin 347982 -> 347924 bytes macros/latex/contrib/l3experimental/xcoffins.dtx | 4 +- macros/latex/contrib/l3experimental/xcoffins.pdf | Bin 394409 -> 394348 bytes macros/latex/contrib/l3experimental/xgalley.dtx | 6 +- macros/latex/contrib/l3experimental/xgalley.pdf | Bin 299636 -> 299507 bytes macros/latex/contrib/l3kernel/CHANGELOG.md | 18 ++- macros/latex/contrib/l3kernel/README.md | 2 +- macros/latex/contrib/l3kernel/expl3.dtx | 4 +- macros/latex/contrib/l3kernel/expl3.pdf | Bin 622500 -> 622894 bytes macros/latex/contrib/l3kernel/interface3.pdf | Bin 1740152 -> 1741657 bytes macros/latex/contrib/l3kernel/interface3.tex | 2 +- macros/latex/contrib/l3kernel/l3basics.dtx | 5 +- macros/latex/contrib/l3kernel/l3bootstrap.dtx | 2 +- macros/latex/contrib/l3kernel/l3box.dtx | 2 +- macros/latex/contrib/l3kernel/l3candidates.dtx | 10 +- macros/latex/contrib/l3kernel/l3cctab.dtx | 2 +- macros/latex/contrib/l3kernel/l3clist.dtx | 2 +- macros/latex/contrib/l3kernel/l3coffins.dtx | 2 +- macros/latex/contrib/l3kernel/l3color.dtx | 65 ++++++-- macros/latex/contrib/l3kernel/l3debug.dtx | 2 +- macros/latex/contrib/l3kernel/l3deprecation.dtx | 2 +- macros/latex/contrib/l3kernel/l3doc.dtx | 2 +- macros/latex/contrib/l3kernel/l3doc.pdf | Bin 557491 -> 557821 bytes macros/latex/contrib/l3kernel/l3docstrip.dtx | 2 +- macros/latex/contrib/l3kernel/l3docstrip.pdf | Bin 151517 -> 151614 bytes macros/latex/contrib/l3kernel/l3expan.dtx | 2 +- macros/latex/contrib/l3kernel/l3file.dtx | 2 +- macros/latex/contrib/l3kernel/l3flag.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-assign.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-aux.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-basics.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-convert.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-expo.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-extended.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-logic.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-parse.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-random.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-round.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-traps.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-trig.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp.dtx | 4 +- macros/latex/contrib/l3kernel/l3fparray.dtx | 2 +- macros/latex/contrib/l3kernel/l3int.dtx | 2 +- macros/latex/contrib/l3kernel/l3intarray.dtx | 2 +- .../latex/contrib/l3kernel/l3kernel-functions.dtx | 2 +- macros/latex/contrib/l3kernel/l3keys.dtx | 2 +- macros/latex/contrib/l3kernel/l3legacy.dtx | 2 +- macros/latex/contrib/l3kernel/l3luatex.dtx | 2 +- macros/latex/contrib/l3kernel/l3msg.dtx | 2 +- macros/latex/contrib/l3kernel/l3names.dtx | 3 +- macros/latex/contrib/l3kernel/l3news.pdf | Bin 395876 -> 395876 bytes macros/latex/contrib/l3kernel/l3news01.pdf | Bin 122710 -> 122710 bytes macros/latex/contrib/l3kernel/l3news02.pdf | Bin 150674 -> 150674 bytes macros/latex/contrib/l3kernel/l3news03.pdf | Bin 148706 -> 148706 bytes macros/latex/contrib/l3kernel/l3news04.pdf | Bin 114586 -> 114586 bytes macros/latex/contrib/l3kernel/l3news05.pdf | Bin 112485 -> 112485 bytes macros/latex/contrib/l3kernel/l3news06.pdf | Bin 151569 -> 151569 bytes macros/latex/contrib/l3kernel/l3news07.pdf | Bin 128316 -> 128316 bytes macros/latex/contrib/l3kernel/l3news08.pdf | Bin 163456 -> 163456 bytes macros/latex/contrib/l3kernel/l3news09.pdf | Bin 250136 -> 250136 bytes macros/latex/contrib/l3kernel/l3news10.pdf | Bin 150283 -> 150283 bytes macros/latex/contrib/l3kernel/l3news11.pdf | Bin 170076 -> 170076 bytes macros/latex/contrib/l3kernel/l3news12.pdf | Bin 204992 -> 204992 bytes macros/latex/contrib/l3kernel/l3pdf.dtx | 2 +- macros/latex/contrib/l3kernel/l3prefixes.pdf | Bin 81640 -> 81640 bytes macros/latex/contrib/l3kernel/l3prg.dtx | 2 +- macros/latex/contrib/l3kernel/l3prop.dtx | 2 +- macros/latex/contrib/l3kernel/l3quark.dtx | 2 +- macros/latex/contrib/l3kernel/l3regex.dtx | 2 +- macros/latex/contrib/l3kernel/l3seq.dtx | 2 +- macros/latex/contrib/l3kernel/l3skip.dtx | 2 +- macros/latex/contrib/l3kernel/l3sort.dtx | 2 +- macros/latex/contrib/l3kernel/l3str-convert.dtx | 2 +- macros/latex/contrib/l3kernel/l3str.dtx | 2 +- macros/latex/contrib/l3kernel/l3styleguide.pdf | Bin 295977 -> 296152 bytes macros/latex/contrib/l3kernel/l3styleguide.tex | 2 +- macros/latex/contrib/l3kernel/l3syntax-changes.pdf | Bin 242645 -> 242796 bytes macros/latex/contrib/l3kernel/l3syntax-changes.tex | 2 +- macros/latex/contrib/l3kernel/l3sys.dtx | 2 +- macros/latex/contrib/l3kernel/l3term-glossary.pdf | Bin 215187 -> 215323 bytes macros/latex/contrib/l3kernel/l3term-glossary.tex | 2 +- macros/latex/contrib/l3kernel/l3text-case.dtx | 123 ++++++++++++++-- macros/latex/contrib/l3kernel/l3text-map.dtx | 2 +- macros/latex/contrib/l3kernel/l3text-purify.dtx | 2 +- macros/latex/contrib/l3kernel/l3text.dtx | 2 +- macros/latex/contrib/l3kernel/l3tl-analysis.dtx | 2 +- macros/latex/contrib/l3kernel/l3tl.dtx | 2 +- macros/latex/contrib/l3kernel/l3token.dtx | 2 +- macros/latex/contrib/l3kernel/l3unicode.dtx | 2 +- macros/latex/contrib/l3kernel/source3.pdf | Bin 7327606 -> 7339540 bytes macros/latex/contrib/l3kernel/source3.tex | 2 +- macros/latex/contrib/physics2/doc/phy2docdef.tex | 2 +- .../latex/contrib/physics2/doc/physics2-legacy.pdf | Bin 97692 -> 82826 bytes .../latex/contrib/physics2/doc/physics2-legacy.tex | 31 ++-- macros/latex/contrib/physics2/doc/physics2.pdf | Bin 87049 -> 87997 bytes macros/latex/contrib/physics2/doc/physics2.tex | 28 ++-- .../latex/contrib/physics2/tex/phy-ab.braket.sty | 12 +- .../latex/contrib/physics2/tex/phy-ab.legacy.sty | 20 ++- macros/latex/contrib/physics2/tex/phy-ab.sty | 32 ++-- macros/latex/contrib/physics2/tex/phy-braket.sty | 22 +-- macros/latex/contrib/physics2/tex/phy-common.sty | 7 +- macros/latex/contrib/uvaletter/README.md | 2 +- .../contrib/uvaletter/demo/uvaletter-demo.pdf | Bin 134477 -> 37118 bytes .../contrib/uvaletter/demo/uvaletter-demo.tex | 5 + macros/latex/contrib/uvaletter/uvaletter.sty | 15 +- 143 files changed, 599 insertions(+), 304 deletions(-) (limited to 'macros/latex/contrib') diff --git a/macros/latex/contrib/l3backend/CHANGELOG.md b/macros/latex/contrib/l3backend/CHANGELOG.md index 9a588abdaa..82228400e2 100644 --- a/macros/latex/contrib/l3backend/CHANGELOG.md +++ b/macros/latex/contrib/l3backend/CHANGELOG.md @@ -6,6 +6,12 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2023-03-30] + +### Changed +- Integrate l3color and l3opacity with luaotfload to ensure that + opacity specifications don't conflict. + ## [2023-01-16] ### Changed @@ -14,7 +20,7 @@ this project uses date-based 'snapshot' version identifiers. ## [2022-10-26] ### Changed -- Avoid setting media box is `\mag` is non-standard +- Avoid setting media box if `\mag` is non-standard ## [2022-09-28] @@ -282,7 +288,8 @@ this project uses date-based 'snapshot' version identifiers. - Include `l3backend` in file names - Moved backend code to internal for each 'parent' module -[Unreleased]: https://github.com/latex3/latex3/compare/2023-01-16...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2023-03-30...HEAD +[2023-03-30]: https://github.com/latex3/latex3/compare/2023-01-16...2023-03-30 [2023-01-16]: https://github.com/latex3/latex3/compare/2022-10-26...2023-01-16 [2022-10-26]: https://github.com/latex3/latex3/compare/2022-09-28...2022-10-26 [2022-09-28]: https://github.com/latex3/latex3/compare/2022-08-30...2022-09-28 diff --git a/macros/latex/contrib/l3backend/README.md b/macros/latex/contrib/l3backend/README.md index dba3d7b409..02fab16f9f 100644 --- a/macros/latex/contrib/l3backend/README.md +++ b/macros/latex/contrib/l3backend/README.md @@ -1,7 +1,7 @@ LaTeX3 Backend Drivers ====================== -Release 2023-01-16 +Release 2023-03-30 This package forms parts of `expl3`, and contains the code used to interface with backends (drivers) across the `expl3` codebase. The functions here are diff --git a/macros/latex/contrib/l3backend/l3backend-basics.dtx b/macros/latex/contrib/l3backend/l3backend-basics.dtx index 918ddaa06d..1f821aff25 100644 --- a/macros/latex/contrib/l3backend/l3backend-basics.dtx +++ b/macros/latex/contrib/l3backend/l3backend-basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-01-16} +% \date{Released 2023-03-30} % % \maketitle % @@ -53,7 +53,7 @@ % % \begin{implementation} % -% \section{\pkg{l3backend-basics} Implementation} +% \section{\pkg{l3backend-basics} implementation} % % \begin{macrocode} %<*package> @@ -70,27 +70,27 @@ % \begin{macrocode} \ProvidesExplFile %<*dvipdfmx> - {l3backend-dvipdfmx.def}{2023-01-16}{} + {l3backend-dvipdfmx.def}{2023-03-30}{} {L3 backend support: dvipdfmx} % %<*dvips> - {l3backend-dvips.def}{2023-01-16}{} + {l3backend-dvips.def}{2023-03-30}{} {L3 backend support: dvips} % %<*dvisvgm> - {l3backend-dvisvgm.def}{2023-01-16}{} + {l3backend-dvisvgm.def}{2023-03-30}{} {L3 backend support: dvisvgm} % %<*luatex> - {l3backend-luatex.def}{2023-01-16}{} + {l3backend-luatex.def}{2023-03-30}{} {L3 backend support: PDF output (LuaTeX)} % %<*pdftex> - {l3backend-pdftex.def}{2023-01-16}{} + {l3backend-pdftex.def}{2023-03-30}{} {L3 backend support: PDF output (pdfTeX)} % %<*xetex> - {l3backend-xetex.def}{2023-01-16}{} + {l3backend-xetex.def}{2023-03-30}{} {L3 backend support: XeTeX} % % \end{macrocode} diff --git a/macros/latex/contrib/l3backend/l3backend-box.dtx b/macros/latex/contrib/l3backend/l3backend-box.dtx index f7e1c7d37a..ae7e2281fc 100644 --- a/macros/latex/contrib/l3backend/l3backend-box.dtx +++ b/macros/latex/contrib/l3backend/l3backend-box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-01-16} +% \date{Released 2023-03-30} % % \maketitle % @@ -53,7 +53,7 @@ % % \begin{implementation} % -% \section{\pkg{l3backend-box} Implementation} +% \section{\pkg{l3backend-box} implementation} % % \begin{macrocode} %<*package> diff --git a/macros/latex/contrib/l3backend/l3backend-code.pdf b/macros/latex/contrib/l3backend/l3backend-code.pdf index 8a33bad815..1ce7f2d3a8 100644 Binary files a/macros/latex/contrib/l3backend/l3backend-code.pdf and b/macros/latex/contrib/l3backend/l3backend-code.pdf differ diff --git a/macros/latex/contrib/l3backend/l3backend-color.dtx b/macros/latex/contrib/l3backend/l3backend-color.dtx index 1aff7262eb..786282333e 100644 --- a/macros/latex/contrib/l3backend/l3backend-color.dtx +++ b/macros/latex/contrib/l3backend/l3backend-color.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-01-16} +% \date{Released 2023-03-30} % % \maketitle % @@ -53,7 +53,7 @@ % % \begin{implementation} % -% \section{\pkg{l3backend-color} Implementation} +% \section{\pkg{l3backend-color} implementation} % % \begin{macrocode} %<*package> @@ -68,85 +68,6 @@ % \texttt{dvipdfmx}/\XeTeX{} is PDF-based means it (largely) sticks closer to % direct PDF output. % -% \subsection{Collecting information from \LaTeXe{}} -% -% \subsubsection{\texttt{dvips}-style} -% -% \begin{macrocode} -%<*dvisvgm|dvipdfmx|dvips|xetex> -% \end{macrocode} -% -% \begin{macro}{\@@_backend_pickup:N} -% \begin{macro}{\@@_backend_pickup:w} -% Allow for \LaTeXe{} color. Here, the possible input values are limited: -% \texttt{dvips}-style colors can be taken as-is. The \texttt{x}-type expansion -% is there to cover the case where \pkg{xcolor} is in use. -% \begin{macrocode} -\cs_new_protected:Npn \@@_backend_pickup:N #1 - { - \exp_args:NV \tl_if_head_is_space:nTF \current@color - { - \tl_set:Nn #1 { { gray } { 0 } } - \msg_warning:nnx { color } { unhandled } - { \current@color } - } - { - \exp_last_unbraced:Nx \@@_backend_pickup:w - { \current@color } \s_@@_stop #1 - } - } -\cs_new_protected:Npn \@@_backend_pickup:w #1 ~ #2 \s_@@_stop #3 - { \tl_set:Nn #3 { {#1} {#2} } } -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsubsection{\LuaTeX{} and \pdfTeX{}} -% -% \begin{macrocode} -%<*luatex|pdftex> -% \end{macrocode} -% -% \begin{macro}{\@@_backend_pickup:N} -% \begin{macro}{\@@_backend_pickup:w} -% Same ideas, but with a different backend-dependent format. -% \begin{macrocode} -\cs_new_protected:Npn \@@_backend_pickup:N #1 - { - \exp_last_unbraced:Nx \@@_backend_pickup:w - { \current@color } ~ 0 ~ 0 ~ 0 \s_@@_stop #1 - } -\cs_new_protected:Npn \@@_backend_pickup:w - #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s_@@_stop #7 - { - \str_if_eq:nnTF {#2} { g } - { \tl_set:Nn #7 { { gray } {#1} } } - { - \str_if_eq:nnTF {#4} { rg } - { \tl_set:Nn #7 { { rgb } { #1 ~ #2 ~ #3 } } } - { - \str_if_eq:nnTF {#5} { k } - { \tl_set:Nn #7 { { cmyk } { #1 ~ #2 ~ #3 ~ #4 } } } - { - \tl_set:Nn #1 { { gray } { 0 } } - \msg_warning:nnx { color } { unhandled } - { \current@color } - } - } - } - } -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macrocode} -% -% \end{macrocode} -% % \subsection{The color stack} % % For PDF-based engines, we have a color stack available inside the specials. @@ -289,6 +210,8 @@ % \begin{macrocode} \tl_new:N \l_@@_backend_fill_tl \tl_new:N \l_@@_backend_stroke_tl +\tl_set:Nn \l_@@_backend_fill_tl { 0 ~ g } +\tl_set:Nn \l_@@_backend_stroke_tl { 0 ~ G } % \end{macrocode} % \end{variable} % @@ -1341,6 +1264,85 @@ % % \end{macrocode} % +% \subsection{Font handling integration} +% +% In \LuaTeX{} these colors should also be usable to color fonts, so +% \texttt{luaotfload} color handling is extended to include these. +% +% \begin{macrocode} +%<*lua> +% \end{macrocode} +% +% \begin{macrocode} +local l = lpeg +local spaces = l.P' '^0 +local digit16 = l.R('09', 'af', 'AF') + +local octet = digit16 * digit16 / function(s) + return string.format('%.3g ', tonumber(s, 16) / 255) +end + +if luaotfload and luaotfload.set_transparent_colorstack then + local htmlcolor = l.Cs(octet * octet * octet * -1 * l.Cc'rg') + local color_export = { + token.create'tex_endlocalcontrol:D', + token.create'tex_hpack:D', + token.new(0, 1), + token.create'color_export:nnN', + token.new(0, 1), + '', + token.new(0, 2), + token.new(0, 1), + 'backend', + token.new(0, 2), + token.create'l_tmpa_tl', + token.create'exp_after:wN', + token.create'__color_select:nn', + token.create'l_tmpa_tl', + token.new(0, 2), + } + local group_end = token.create'group_end:' + local value = (1 - l.P'}')^0 + luatexbase.add_to_callback('luaotfload.parse_color', function (value) +% Also allow HTML colors to preserve compatibility + local html = htmlcolor:match(value) + if html then return html end + + tex.runtoks(function() + token.get_next() + color_export[6] = value + tex.sprint(-2, color_export) + end) + local list = token.scan_list() + if not list.head or list.head.next + or list.head.subtype ~= node.subtype'pdf_colorstack' then + error'Unexpected backend behavior' + end + local cmd = list.head.data + node.free(list) + return cmd + end, 'l3color') +end +% \end{macrocode} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \begin{macrocode} +%<*luatex> +% \end{macrocode} +% +% \begin{macrocode} +%<*package> +\lua_load_module:n {l3backend-luatex} +% +% \end{macrocode} +% +% \begin{macrocode} +% +% \end{macrocode} +% % \end{implementation} % % \PrintIndex diff --git a/macros/latex/contrib/l3backend/l3backend-draw.dtx b/macros/latex/contrib/l3backend/l3backend-draw.dtx index d9f4f53cff..6577bc3008 100644 --- a/macros/latex/contrib/l3backend/l3backend-draw.dtx +++ b/macros/latex/contrib/l3backend/l3backend-draw.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-01-16} +% \date{Released 2023-03-30} % % \maketitle % @@ -53,7 +53,7 @@ % % \begin{implementation} % -% \section{\pkg{l3backend-draw} Implementation} +% \section{\pkg{l3backend-draw} implementation} % % \begin{macrocode} %<*package> diff --git a/macros/latex/contrib/l3backend/l3backend-graphics.dtx b/macros/latex/contrib/l3backend/l3backend-graphics.dtx index a347bddccf..b042bd04e5 100644 --- a/macros/latex/contrib/l3backend/l3backend-graphics.dtx +++ b/macros/latex/contrib/l3backend/l3backend-graphics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-01-16} +% \date{Released 2023-03-30} % % \maketitle % @@ -53,7 +53,7 @@ % % \begin{implementation} % -% \section{\pkg{l3backend-graphics} Implementation} +% \section{\pkg{l3backend-graphics} implementation} % % \begin{macrocode} %<*package> diff --git a/macros/latex/contrib/l3backend/l3backend-header.dtx b/macros/latex/contrib/l3backend/l3backend-header.dtx index 69062bf241..595e6a2924 100644 --- a/macros/latex/contrib/l3backend/l3backend-header.dtx +++ b/macros/latex/contrib/l3backend/l3backend-header.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-01-16} +% \date{Released 2023-03-30} % % \maketitle % @@ -53,7 +53,7 @@ % % \begin{implementation} % -% \section{\pkg{l3backend-header} Implementation} +% \section{\pkg{l3backend-header} implementation} % % \begin{macrocode} %<*dvips&header> diff --git a/macros/latex/contrib/l3backend/l3backend-opacity.dtx b/macros/latex/contrib/l3backend/l3backend-opacity.dtx index 465e51804a..3f3dd1c84a 100644 --- a/macros/latex/contrib/l3backend/l3backend-opacity.dtx +++ b/macros/latex/contrib/l3backend/l3backend-opacity.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-01-16} +% \date{Released 2023-03-30} % % \maketitle % @@ -53,7 +53,7 @@ % % \begin{implementation} % -% \section{\pkg{l3backend-opacity} Implementation} +% \section{\pkg{l3backend-opacity} implementation} % % \begin{macrocode} %<*package> @@ -287,6 +287,69 @@ % % \end{macrocode} % +% \subsection{Font handling integration} +% +% In \LuaTeX{} we want to use these functions also for transparent fonts +% to avoid interference between both uses of transparency. +% +% \begin{macrocode} +%<*lua> +% \end{macrocode} +% +% First we need to check if pdfmanagement is active from Lua. +% \begin{macrocode} +local pdfmanagement_active do + local pdfmanagement_if_active_p = token.create'pdfmanagement_if_active_p:' + local cmd = pdfmanagement_if_active_p.cmdname + if cmd == 'undefined_cs' then + pdfmanagement_active = false + else + token.put_next(pdfmanagement_if_active_p) + pdfmanagement_active = token.scan_int() ~= 0 + end +end + +if pdfmanagement_active and luaotfload and luaotfload.set_transparent_colorstack then + luaotfload.set_transparent_colorstack(token.create'c__opacity_backend_stack_int'.index) + + local transparent_register = { + token.create'pdfmanagement_add:nnn', + token.new(0, 1), + 'Page/Resources/ExtGState', + token.new(0, 2), + token.new(0, 1), + '', + token.new(0, 2), + token.new(0, 1), + '<>', + token.new(0, 2), + } + luatexbase.add_to_callback('luaotfload.parse_transparent', function(value) + value = (octet * -1):match(value) + if not value then + tex.error'Invalid transparency value' + return + end + value = value:sub(1, -2) + local result = 'opacity' .. value + tex.runtoks(function() + transparent_register[6], transparent_register[10], transparent_register[12] = result, value, value + tex.sprint(-2, transparent_register) + end) + return '/' .. result .. ' gs' + end, 'l3opacity') +end +% \end{macrocode} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% % \end{implementation} % % \PrintIndex diff --git a/macros/latex/contrib/l3backend/l3backend-pdf.dtx b/macros/latex/contrib/l3backend/l3backend-pdf.dtx index 321a4baa0e..bb80237d4d 100644 --- a/macros/latex/contrib/l3backend/l3backend-pdf.dtx +++ b/macros/latex/contrib/l3backend/l3backend-pdf.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-01-16} +% \date{Released 2023-03-30} % % \maketitle % @@ -53,7 +53,7 @@ % % \begin{implementation} % -% \section{\pkg{l3backend-pdf} Implementation} +% \section{\pkg{l3backend-pdf} implementation} % % \begin{macrocode} %<*package> diff --git a/macros/latex/contrib/l3backend/l3backend.ins b/macros/latex/contrib/l3backend/l3backend.ins index cfa8ece984..5b8945f012 100644 --- a/macros/latex/contrib/l3backend/l3backend.ins +++ b/macros/latex/contrib/l3backend/l3backend.ins @@ -137,4 +137,32 @@ and all files in that bundle must be distributed together. } } +% Lua code + +\def\MetaPrefix{--} +\preamble + +Copyright (C) 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: + + https://www.latex-project.org/lppl.txt + +This file is part of the "l3backend bundle" (The Work in LPPL) +and all files in that bundle must be distributed together. + +\endpreamble +\nopostamble +\generate + { + \file{l3backend-luatex.lua} + { + \from{l3backend-color.dtx} {lua} + \from{l3backend-opacity.dtx} {lua} + } + } + \endbatchfile diff --git a/macros/latex/contrib/l3experimental/CHANGELOG.md b/macros/latex/contrib/l3experimental/CHANGELOG.md index d147f91b32..a3be92ce0f 100644 --- a/macros/latex/contrib/l3experimental/CHANGELOG.md +++ b/macros/latex/contrib/l3experimental/CHANGELOG.md @@ -7,6 +7,12 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2023-03-30] + +### Fixed +- 'Fallback' value used for benchmarking single op + (see \#1182) + ## [2023-01-24] ### Changed @@ -256,7 +262,8 @@ this project uses date-based 'snapshot' version identifiers. - New `l3color` module using `xcolor`-like expression syntax - New `l3draw` module, based on `pgf` layer of the TikZ system -[Unreleased]: https://github.com/latex3/latex3/compare/2023-01-24...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2023-03-30...HEAD +[2023-03-30]: https://github.com/latex3/latex3/compare/2023-01-24...2023-03-30 [2023-01-24]: https://github.com/latex3/latex3/compare/2022-04-20...2023-01-24 [2022-04-20]: https://github.com/latex3/latex3/compare/2022-04-10...2022-04-20 [2022-04-10]: https://github.com/latex3/latex3/compare/2022-02-05...2022-04-10 diff --git a/macros/latex/contrib/l3experimental/README.md b/macros/latex/contrib/l3experimental/README.md index 8b6fe49c3b..9415c76d92 100644 --- a/macros/latex/contrib/l3experimental/README.md +++ b/macros/latex/contrib/l3experimental/README.md @@ -1,7 +1,7 @@ Experimental LaTeX3 Concepts ============================ -Release 2023-01-24 +Release 2023-03-30 Overview -------- diff --git a/macros/latex/contrib/l3experimental/l3benchmark.dtx b/macros/latex/contrib/l3experimental/l3benchmark.dtx index e3d41c8084..e8290bc435 100644 --- a/macros/latex/contrib/l3experimental/l3benchmark.dtx +++ b/macros/latex/contrib/l3experimental/l3benchmark.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % @@ -122,7 +122,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3benchmark}{2023-01-24}{} +\ProvidesExplPackage{l3benchmark}{2023-03-30}{} {L3 Experimental benchmarking} % \end{macrocode} % @@ -408,7 +408,7 @@ \tl_gset:Nn \g_@@_code_tl { \int_gadd:Nn \g_@@_duration_int { 0 } } \@@_aux: - \fp_gset:Nn \g_@@_one_op_fp { max(\g_benchmark_time_fp, 1e-16) } + \fp_gset:Nn \g_@@_one_op_fp { max(\g_benchmark_time_fp, 1e-8) } \int_gset:Nn \g_@@_duration_int { \fp_to_int:n { 65536 * \g_benchmark_duration_target_fp } } } diff --git a/macros/latex/contrib/l3experimental/l3benchmark.pdf b/macros/latex/contrib/l3experimental/l3benchmark.pdf index 6d1815f3b0..7abb2355b2 100644 Binary files a/macros/latex/contrib/l3experimental/l3benchmark.pdf and b/macros/latex/contrib/l3experimental/l3benchmark.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3bitset.dtx b/macros/latex/contrib/l3experimental/l3bitset.dtx index e4a40a7d7f..f3b7c26e1c 100644 --- a/macros/latex/contrib/l3experimental/l3bitset.dtx +++ b/macros/latex/contrib/l3experimental/l3bitset.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % \begin{documentation} @@ -264,7 +264,7 @@ %<@@=bitset> % \end{macrocode} % \begin{macrocode} -\ProvidesExplPackage{l3bitset}{2023-01-24}{} +\ProvidesExplPackage{l3bitset}{2023-03-30}{} {L3 Experimental bitset support} % \end{macrocode} % A bitset is a string variable. diff --git a/macros/latex/contrib/l3experimental/l3bitset.pdf b/macros/latex/contrib/l3experimental/l3bitset.pdf index 13daed2625..b151ffb155 100644 Binary files a/macros/latex/contrib/l3experimental/l3bitset.pdf and b/macros/latex/contrib/l3experimental/l3bitset.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3draw-boxes.dtx b/macros/latex/contrib/l3experimental/l3draw-boxes.dtx index 504d92ce26..c03fa2770a 100644 --- a/macros/latex/contrib/l3experimental/l3draw-boxes.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-boxes.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw-code.pdf b/macros/latex/contrib/l3experimental/l3draw-code.pdf index 0b8e93868c..3614cec3be 100644 Binary files a/macros/latex/contrib/l3experimental/l3draw-code.pdf and b/macros/latex/contrib/l3experimental/l3draw-code.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3draw-layers.dtx b/macros/latex/contrib/l3experimental/l3draw-layers.dtx index aa930cfcc7..36f3433092 100644 --- a/macros/latex/contrib/l3experimental/l3draw-layers.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-layers.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw-paths.dtx b/macros/latex/contrib/l3experimental/l3draw-paths.dtx index 7201051b82..70b7608f2b 100644 --- a/macros/latex/contrib/l3experimental/l3draw-paths.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-paths.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw-points.dtx b/macros/latex/contrib/l3experimental/l3draw-points.dtx index 01b82b4a8e..6467e01202 100644 --- a/macros/latex/contrib/l3experimental/l3draw-points.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-points.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw-scopes.dtx b/macros/latex/contrib/l3experimental/l3draw-scopes.dtx index 4663049adf..9727e9ce6e 100644 --- a/macros/latex/contrib/l3experimental/l3draw-scopes.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-scopes.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw-softpath.dtx b/macros/latex/contrib/l3experimental/l3draw-softpath.dtx index 971a4236af..234c4930ef 100644 --- a/macros/latex/contrib/l3experimental/l3draw-softpath.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-softpath.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw-state.dtx b/macros/latex/contrib/l3experimental/l3draw-state.dtx index defbbf9a92..86275a5226 100644 --- a/macros/latex/contrib/l3experimental/l3draw-state.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-state.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw-transforms.dtx b/macros/latex/contrib/l3experimental/l3draw-transforms.dtx index 23febfae6c..e7d370a245 100644 --- a/macros/latex/contrib/l3experimental/l3draw-transforms.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-transforms.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw.dtx b/macros/latex/contrib/l3experimental/l3draw.dtx index 6affc2f427..c3d10d3b3e 100644 --- a/macros/latex/contrib/l3experimental/l3draw.dtx +++ b/macros/latex/contrib/l3experimental/l3draw.dtx @@ -110,7 +110,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % @@ -1173,7 +1173,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3draw}{2023-01-24}{} +\ProvidesExplPackage{l3draw}{2023-03-30}{} {L3 Experimental core drawing support} % \end{macrocode} % diff --git a/macros/latex/contrib/l3experimental/l3draw.pdf b/macros/latex/contrib/l3experimental/l3draw.pdf index e2eb79087d..30899fd0ca 100644 Binary files a/macros/latex/contrib/l3experimental/l3draw.pdf and b/macros/latex/contrib/l3experimental/l3draw.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3galley.dtx b/macros/latex/contrib/l3experimental/l3galley.dtx index 1770aa7fad..405b248b64 100644 --- a/macros/latex/contrib/l3experimental/l3galley.dtx +++ b/macros/latex/contrib/l3experimental/l3galley.dtx @@ -61,7 +61,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % @@ -615,7 +615,7 @@ % % \begin{implementation} % -% \section{\pkg{l3galley} Implementation} +% \section{\pkg{l3galley} implementation} % % At the implementation level, there are a number of challenges which % have to be overcome in order to make the galley easy to use at the @@ -686,7 +686,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3galley}{2023-01-24}{} +\ProvidesExplPackage{l3galley}{2023-03-30}{} {L3 Experimental galley code} % \end{macrocode} % diff --git a/macros/latex/contrib/l3experimental/l3galley.pdf b/macros/latex/contrib/l3experimental/l3galley.pdf index 4319a2d561..09c4291374 100644 Binary files a/macros/latex/contrib/l3experimental/l3galley.pdf and b/macros/latex/contrib/l3experimental/l3galley.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3graphics.dtx b/macros/latex/contrib/l3experimental/l3graphics.dtx index ed7f01717d..942b15fd7d 100644 --- a/macros/latex/contrib/l3experimental/l3graphics.dtx +++ b/macros/latex/contrib/l3experimental/l3graphics.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % @@ -185,7 +185,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3graphics}{2023-01-24}{} +\ProvidesExplPackage{l3graphics}{2023-03-30}{} {L3 Experimental graphics inclusion support} % \end{macrocode} % diff --git a/macros/latex/contrib/l3experimental/l3graphics.pdf b/macros/latex/contrib/l3experimental/l3graphics.pdf index e763b0ec8f..731fbae62e 100644 Binary files a/macros/latex/contrib/l3experimental/l3graphics.pdf and b/macros/latex/contrib/l3experimental/l3graphics.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3opacity.dtx b/macros/latex/contrib/l3experimental/l3opacity.dtx index eceff60d45..4d2de0fc69 100644 --- a/macros/latex/contrib/l3experimental/l3opacity.dtx +++ b/macros/latex/contrib/l3experimental/l3opacity.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % @@ -85,7 +85,7 @@ % % \begin{implementation} % -% \section{\pkg{l3opacity} Implementation} +% \section{\pkg{l3opacity} implementation} % % \begin{macrocode} %<*package> @@ -96,7 +96,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3opacity}{2023-01-24}{} +\ProvidesExplPackage{l3opacity}{2023-03-30}{} {L3 Experimental opacity support} % \end{macrocode} % diff --git a/macros/latex/contrib/l3experimental/l3opacity.pdf b/macros/latex/contrib/l3experimental/l3opacity.pdf index 4329f8c4d9..1ed2e3f71e 100644 Binary files a/macros/latex/contrib/l3experimental/l3opacity.pdf and b/macros/latex/contrib/l3experimental/l3opacity.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3str-format.dtx b/macros/latex/contrib/l3experimental/l3str-format.dtx index 5ab0724373..05f466dbd4 100644 --- a/macros/latex/contrib/l3experimental/l3str-format.dtx +++ b/macros/latex/contrib/l3experimental/l3str-format.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % @@ -166,7 +166,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3str-format}{2023-01-24}{} +\ProvidesExplPackage{l3str-format}{2023-03-30}{} {L3 Experimental string formatting} % \end{macrocode} % diff --git a/macros/latex/contrib/l3experimental/l3str-format.pdf b/macros/latex/contrib/l3experimental/l3str-format.pdf index fed8cd5755..f44719f92a 100644 Binary files a/macros/latex/contrib/l3experimental/l3str-format.pdf and b/macros/latex/contrib/l3experimental/l3str-format.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3sys-shell.dtx b/macros/latex/contrib/l3experimental/l3sys-shell.dtx index 0f0852a95c..f830455bf6 100644 --- a/macros/latex/contrib/l3experimental/l3sys-shell.dtx +++ b/macros/latex/contrib/l3experimental/l3sys-shell.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % @@ -151,7 +151,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3sys-shell}{2023-01-24}{} +\ProvidesExplPackage{l3sys-shell}{2023-03-30}{} {L3 Experimental system shell functions} % \end{macrocode} % diff --git a/macros/latex/contrib/l3experimental/l3sys-shell.pdf b/macros/latex/contrib/l3experimental/l3sys-shell.pdf index 8d591b15e9..2c80015c8f 100644 Binary files a/macros/latex/contrib/l3experimental/l3sys-shell.pdf and b/macros/latex/contrib/l3experimental/l3sys-shell.pdf differ diff --git a/macros/latex/contrib/l3experimental/xcoffins.dtx b/macros/latex/contrib/l3experimental/xcoffins.dtx index 8794786d59..7b41377cc2 100644 --- a/macros/latex/contrib/l3experimental/xcoffins.dtx +++ b/macros/latex/contrib/l3experimental/xcoffins.dtx @@ -53,7 +53,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % @@ -672,7 +672,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xcoffins}{2023-01-24}{} +\ProvidesExplPackage{xcoffins}{2023-03-30}{} {L3 Experimental design level coffins} % \end{macrocode} % diff --git a/macros/latex/contrib/l3experimental/xcoffins.pdf b/macros/latex/contrib/l3experimental/xcoffins.pdf index a2af833a39..09c8d7a162 100644 Binary files a/macros/latex/contrib/l3experimental/xcoffins.pdf and b/macros/latex/contrib/l3experimental/xcoffins.pdf differ diff --git a/macros/latex/contrib/l3experimental/xgalley.dtx b/macros/latex/contrib/l3experimental/xgalley.dtx index 4510cba15b..b450528125 100644 --- a/macros/latex/contrib/l3experimental/xgalley.dtx +++ b/macros/latex/contrib/l3experimental/xgalley.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-01-24} +% \date{Released 2023-03-30} % % \maketitle % @@ -715,7 +715,7 @@ % % \begin{implementation} % -% \section{\pkg{xgalley} Implementation} +% \section{\pkg{xgalley} implementation} % % This module provided a template-level interface for the \LaTeX3 galley. As % such, the code here is intended for design-level changes which apply to @@ -731,7 +731,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xgalley}{2023-01-24}{} +\ProvidesExplPackage{xgalley}{2023-03-30}{} {L3 Experimental galley} \RequirePackage{xtemplate,l3galley} % \end{macrocode} diff --git a/macros/latex/contrib/l3experimental/xgalley.pdf b/macros/latex/contrib/l3experimental/xgalley.pdf index f2cb9014a6..af229347da 100644 Binary files a/macros/latex/contrib/l3experimental/xgalley.pdf and b/macros/latex/contrib/l3experimental/xgalley.pdf differ diff --git a/macros/latex/contrib/l3kernel/CHANGELOG.md b/macros/latex/contrib/l3kernel/CHANGELOG.md index 492a1ea3a5..7cbc8d71c0 100644 --- a/macros/latex/contrib/l3kernel/CHANGELOG.md +++ b/macros/latex/contrib/l3kernel/CHANGELOG.md @@ -7,6 +7,21 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2023-03-30] + + +### Added +- `\tex_endlocalcontrol:D` as expl3 name for the LuaTeX primitive + +### Changed +- Allow non-integer values in color expressions +- Restrict color expressions values to the range [0, 100] +- Leave Greek spacing diacritics unchanged in uppercasing + +### Fixed +- Fix minor version in `\c_sys_engine_version_str` for pdfTeX and LuaTeX + (issue [\#1186](https://github.com/latex3/latex3/issues/1186)) + ## [2023-02-22] ### Changed @@ -1304,7 +1319,8 @@ this project uses date-based 'snapshot' version identifiers. - Step functions have been added for dim variables, e.g. `\dim_step_inline:nnnn` -[Unreleased]: https://github.com/latex3/latex3/compare/2023-02-22...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2023-03-30...HEAD +[2023-03-30]: https://github.com/latex3/latex3/compare/2023-02-22...2023-03-30 [2023-02-22]: https://github.com/latex3/latex3/compare/2023-02-07...2023-02-22 [2023-02-07]: https://github.com/latex3/latex3/compare/2023-02-02...2023-02-07 [2023-02-02]: https://github.com/latex3/latex3/compare/2023-02-01...2023-02-02 diff --git a/macros/latex/contrib/l3kernel/README.md b/macros/latex/contrib/l3kernel/README.md index 3cd8f9c155..0df952a621 100644 --- a/macros/latex/contrib/l3kernel/README.md +++ b/macros/latex/contrib/l3kernel/README.md @@ -1,7 +1,7 @@ LaTeX3 Programming Conventions ============================== -Release 2023-02-22 +Release 2023-03-30 Overview -------- diff --git a/macros/latex/contrib/l3kernel/expl3.dtx b/macros/latex/contrib/l3kernel/expl3.dtx index 269b471a76..263dff0730 100644 --- a/macros/latex/contrib/l3kernel/expl3.dtx +++ b/macros/latex/contrib/l3kernel/expl3.dtx @@ -24,7 +24,7 @@ % %<*driver|generic|package|2ekernel> % -\def\ExplFileDate{2023-02-22}% +\def\ExplFileDate{2023-03-30}% %<*driver> \documentclass[full]{l3doc} \usepackage{graphicx} @@ -51,7 +51,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/expl3.pdf b/macros/latex/contrib/l3kernel/expl3.pdf index 56e6b0f952..067a893604 100644 Binary files a/macros/latex/contrib/l3kernel/expl3.pdf and b/macros/latex/contrib/l3kernel/expl3.pdf differ diff --git a/macros/latex/contrib/l3kernel/interface3.pdf b/macros/latex/contrib/l3kernel/interface3.pdf index 4d6d16de01..102275e76a 100644 Binary files a/macros/latex/contrib/l3kernel/interface3.pdf and b/macros/latex/contrib/l3kernel/interface3.pdf differ diff --git a/macros/latex/contrib/l3kernel/interface3.tex b/macros/latex/contrib/l3kernel/interface3.tex index 70fc48ed44..6824f38aef 100644 --- a/macros/latex/contrib/l3kernel/interface3.tex +++ b/macros/latex/contrib/l3kernel/interface3.tex @@ -62,7 +62,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2023-02-22} +\date{Released 2023-03-30} \pagenumbering{roman} \maketitle diff --git a/macros/latex/contrib/l3kernel/l3basics.dtx b/macros/latex/contrib/l3kernel/l3basics.dtx index 6188e7b7cc..37af99717e 100644 --- a/macros/latex/contrib/l3kernel/l3basics.dtx +++ b/macros/latex/contrib/l3kernel/l3basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % @@ -1267,6 +1267,9 @@ % latter function does not turn the control sequence in question into % "\scan_stop:"! This can be useful when dealing with control % sequences which cannot be entered as a single token. +% \begin{texnote} +% These are \TeX{}'s \tn{ifdefined} and \tn{ifcsname}, respectively. +% \end{texnote} % \end{function} % % \begin{function}[EXP] diff --git a/macros/latex/contrib/l3kernel/l3bootstrap.dtx b/macros/latex/contrib/l3kernel/l3bootstrap.dtx index 2760747db3..73064e4ce4 100644 --- a/macros/latex/contrib/l3kernel/l3bootstrap.dtx +++ b/macros/latex/contrib/l3kernel/l3bootstrap.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3box.dtx b/macros/latex/contrib/l3kernel/l3box.dtx index 2ab05edbc6..26fb88edd9 100644 --- a/macros/latex/contrib/l3kernel/l3box.dtx +++ b/macros/latex/contrib/l3kernel/l3box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3candidates.dtx b/macros/latex/contrib/l3kernel/l3candidates.dtx index 7b4ce3695c..3b804316c2 100644 --- a/macros/latex/contrib/l3kernel/l3candidates.dtx +++ b/macros/latex/contrib/l3kernel/l3candidates.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % @@ -1319,7 +1319,9 @@ { { pdftex } { - \fp_eval:n { round(\int_use:N \tex_pdftexversion:D / 100 , 2) } + \int_div_truncate:nn { \tex_pdftexversion:D } { 100 } + . + \int_mod:nn { \tex_pdftexversion:D } { 100 } . \tex_pdftexrevision:D } @@ -1338,7 +1340,9 @@ } { luatex } { - \fp_eval:n { round(\int_use:N \tex_luatexversion:D / 100, 2) } + \int_div_truncate:nn { \tex_luatexversion:D } { 100 } + . + \int_mod:nn { \tex_luatexversion:D } { 100 } . \tex_luatexrevision:D } diff --git a/macros/latex/contrib/l3kernel/l3cctab.dtx b/macros/latex/contrib/l3kernel/l3cctab.dtx index a03c9ffced..8233acdc79 100644 --- a/macros/latex/contrib/l3kernel/l3cctab.dtx +++ b/macros/latex/contrib/l3kernel/l3cctab.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3clist.dtx b/macros/latex/contrib/l3kernel/l3clist.dtx index 4c9dc79db2..c8a9d89bcb 100644 --- a/macros/latex/contrib/l3kernel/l3clist.dtx +++ b/macros/latex/contrib/l3kernel/l3clist.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3coffins.dtx b/macros/latex/contrib/l3kernel/l3coffins.dtx index 2166c0bfde..4a496da85f 100644 --- a/macros/latex/contrib/l3kernel/l3coffins.dtx +++ b/macros/latex/contrib/l3kernel/l3coffins.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3color.dtx b/macros/latex/contrib/l3kernel/l3color.dtx index 218f560acb..017cad63c5 100644 --- a/macros/latex/contrib/l3kernel/l3color.dtx +++ b/macros/latex/contrib/l3kernel/l3color.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % @@ -155,13 +155,13 @@ % In addition to allowing specification of color by model and values, % \pkg{l3color} also supports color expressions. These are created % by combining one or more color names, with the amount of each specified -% as a percentage. The latter is given between |!| symbols in the expression. -% Thus for example +% as a value in the range $0$--$100$. The value should be given between +% |!| symbols in the expression. Thus for example % \begin{verbatim} % red!50!green % \end{verbatim} -% is a mixture of $50\,\%$ red and $50\,\%$ green. A trailing percentage is -% interpreted as implicitly followed by |white|, and so +% is a mixture of $50\,\%$ red and $50\,\%$ green. A trailing value is +% interpreted as implicitly followed by |!white|, and so % \begin{verbatim} % red!25 % \end{verbatim} @@ -643,6 +643,14 @@ % \end{macrocode} % \end{variable} % +% \begin{variable}{\l_@@_ignore_error_bool} +% Used to avoid issuing multiple errors if there is a change-of-model with +% input container an error. +% \begin{macrocode} +\bool_new:N \l_@@_ignore_error_bool +% \end{macrocode} +% \end{variable} +% % \subsection{Utility functions} % % \begin{macro}[pTF, EXP]{\color_if_exist:n} @@ -825,6 +833,7 @@ % \begin{macro}{\@@_parse:Nw} % \begin{macro}{\@@_parse_loop_init:Nnn} % \begin{macro}{\@@_parse_loop:w} +% \begin{macro}{\@@_parse_loop_check:nn} % \begin{macro}{\@@_parse_loop:nn} % \begin{macro}{\@@_parse_gray:n, \@@_parse_std:n} % \begin{macro}{\@@_parse_break:w} @@ -936,17 +945,11 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_parse_loop:w #1 ! #2 ! #3 ! #4 ! #5 \s_@@_stop { - \bool_lazy_or:nnF - { \tl_if_blank_p:n {#1} } - { \int_compare_p:nNn {#1} = { 100 } } + \tl_if_blank:nF {#1} { - \int_compare:nNnTF {#1} = { 0 } - { - \tl_if_blank:nTF {#2} - { \@@_extract:nNN { white } } - { \@@_extract:nNN {#2} } - \l_@@_model_tl \l_@@_value_tl - } + \bool_lazy_and:nnTF + { \fp_compare_p:nNn {#1} > { 0 } } + { \fp_compare_p:nNn {#1} < { 100 } } { \use:x { @@ -954,12 +957,35 @@ { \tl_if_blank:nTF {#2} { white } {#2} } } } + { \@@_parse_loop_check:nn {#1} {#2} } } \tl_if_blank:nF {#3} { \@@_parse_loop:w #3 ! #4 ! #5 \s_@@_stop } \@@_parse_end: } % \end{macrocode} +% As these are unusual cases, we accept slower performance here for clearer +% code: check for the error conditions, handle the boundary cases after +% that. +% \begin{macrocode} +\cs_new_protected:Npn \@@_parse_loop_check:nn #1#2 + { + \bool_if:NF \l_@@_ignore_error_bool + { + \bool_lazy_or:nnT + { \fp_compare_p:nNn {#1} < { 0 } } + { \fp_compare_p:nNn {#1} > { 100 } } + { \msg_error:nnnnn { color } { out-of-range } {#1} { 0 } { 100 } } + } + \fp_compare:nNnF {#1} > \c_zero_fp + { + \tl_if_blank:nTF {#2} + { \@@_extract:nNN { white } } + { \@@_extract:nNN {#2} } + \l_@@_model_tl \l_@@_value_tl + } + } +% \end{macrocode} % The \enquote{payload} of calculation in the loop first. If the model for % the upcoming color is different from that of the existing (partial) color, % convert the model. For |gray| the two are flipped round so that the outcome @@ -1065,6 +1091,7 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}[EXP] % { @@ -1779,6 +1806,7 @@ \prop_if_in:cnF { l_@@_named_ #1 _prop } {##1} { \group_begin: + \bool_set_true:N \l_@@_ignore_error_bool \tl_set:cn { l_@@_named_ #3 _tl } {##1} \@@_parse:nN {#2} \l_@@_internal_tl \exp_args:NNNV \group_end: @@ -3116,6 +3144,13 @@ LaTeX~was~asked~to~define~a~new~color~model~called~'#1',~but~ this~color~model~already~exists. } +\msg_new:nnnn { color } { out-of-range } + { Input~value~#1~out~of~range~[#2,~#3]. } + { + LaTeX~was~expecting~a~value~in~the~range~[#2,~#3]~as~part~of~a~color,~ + but~you~gave~#1.~LaTeX~will~assume~you~meant~the~limit~of~the~range~ + and~continue. + } \msg_new:nnnn { color } { separation-alternative-model } { Separation~color~space~'#1'~require~an~alternative~model. } { diff --git a/macros/latex/contrib/l3kernel/l3debug.dtx b/macros/latex/contrib/l3kernel/l3debug.dtx index fbba62fa36..854f4f5b61 100644 --- a/macros/latex/contrib/l3kernel/l3debug.dtx +++ b/macros/latex/contrib/l3kernel/l3debug.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3deprecation.dtx b/macros/latex/contrib/l3kernel/l3deprecation.dtx index e002e78421..1e8af30022 100644 --- a/macros/latex/contrib/l3kernel/l3deprecation.dtx +++ b/macros/latex/contrib/l3kernel/l3deprecation.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3doc.dtx b/macros/latex/contrib/l3kernel/l3doc.dtx index 9143ccc7df..f4f19d5aaa 100644 --- a/macros/latex/contrib/l3kernel/l3doc.dtx +++ b/macros/latex/contrib/l3kernel/l3doc.dtx @@ -85,7 +85,7 @@ and all files in that bundle must be distributed together. % require you to do updates, if the class changes.}} % % \author{\Team} -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % \maketitle % \tableofcontents % diff --git a/macros/latex/contrib/l3kernel/l3doc.pdf b/macros/latex/contrib/l3kernel/l3doc.pdf index a9e6f09376..fb8f1d82b3 100644 Binary files a/macros/latex/contrib/l3kernel/l3doc.pdf and b/macros/latex/contrib/l3kernel/l3doc.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3docstrip.dtx b/macros/latex/contrib/l3kernel/l3docstrip.dtx index ec8530dd71..750356ac9f 100644 --- a/macros/latex/contrib/l3kernel/l3docstrip.dtx +++ b/macros/latex/contrib/l3kernel/l3docstrip.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3docstrip.pdf b/macros/latex/contrib/l3kernel/l3docstrip.pdf index b68f9145a7..b16829443d 100644 Binary files a/macros/latex/contrib/l3kernel/l3docstrip.pdf and b/macros/latex/contrib/l3kernel/l3docstrip.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3expan.dtx b/macros/latex/contrib/l3kernel/l3expan.dtx index d89d8192ff..d8a6c8cc99 100644 --- a/macros/latex/contrib/l3kernel/l3expan.dtx +++ b/macros/latex/contrib/l3kernel/l3expan.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3file.dtx b/macros/latex/contrib/l3kernel/l3file.dtx index 411ac9f3d7..dfc1c6338d 100644 --- a/macros/latex/contrib/l3kernel/l3file.dtx +++ b/macros/latex/contrib/l3kernel/l3file.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3flag.dtx b/macros/latex/contrib/l3kernel/l3flag.dtx index 5f1ba43313..e30f49f7f2 100644 --- a/macros/latex/contrib/l3kernel/l3flag.dtx +++ b/macros/latex/contrib/l3kernel/l3flag.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-assign.dtx b/macros/latex/contrib/l3kernel/l3fp-assign.dtx index c1836f77ca..3efd565575 100644 --- a/macros/latex/contrib/l3kernel/l3fp-assign.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-assign.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % \maketitle % % \begin{documentation} diff --git a/macros/latex/contrib/l3kernel/l3fp-aux.dtx b/macros/latex/contrib/l3kernel/l3fp-aux.dtx index a10f589f67..0391f3e34f 100644 --- a/macros/latex/contrib/l3kernel/l3fp-aux.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-aux.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-basics.dtx b/macros/latex/contrib/l3kernel/l3fp-basics.dtx index a9798f492e..9af50e5850 100644 --- a/macros/latex/contrib/l3kernel/l3fp-basics.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-basics.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-convert.dtx b/macros/latex/contrib/l3kernel/l3fp-convert.dtx index 31a53d3b86..d7a1936e77 100644 --- a/macros/latex/contrib/l3kernel/l3fp-convert.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-convert.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-expo.dtx b/macros/latex/contrib/l3kernel/l3fp-expo.dtx index da1d0e77b3..1ea73e116e 100644 --- a/macros/latex/contrib/l3kernel/l3fp-expo.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-expo.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-extended.dtx b/macros/latex/contrib/l3kernel/l3fp-extended.dtx index 0ab976ed16..5384037de1 100644 --- a/macros/latex/contrib/l3kernel/l3fp-extended.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-extended.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-logic.dtx b/macros/latex/contrib/l3kernel/l3fp-logic.dtx index 5f513092be..2956f840a5 100644 --- a/macros/latex/contrib/l3kernel/l3fp-logic.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-logic.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-parse.dtx b/macros/latex/contrib/l3kernel/l3fp-parse.dtx index 1d5eac4aa4..ef58cd8600 100644 --- a/macros/latex/contrib/l3kernel/l3fp-parse.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-parse.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-random.dtx b/macros/latex/contrib/l3kernel/l3fp-random.dtx index 9be2dae96f..a8929a1fae 100644 --- a/macros/latex/contrib/l3kernel/l3fp-random.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-random.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-round.dtx b/macros/latex/contrib/l3kernel/l3fp-round.dtx index 0e6342be59..e721fc76c5 100644 --- a/macros/latex/contrib/l3kernel/l3fp-round.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-round.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-traps.dtx b/macros/latex/contrib/l3kernel/l3fp-traps.dtx index 999cd850a2..c09a940b1b 100644 --- a/macros/latex/contrib/l3kernel/l3fp-traps.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-traps.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % \maketitle % % \begin{documentation} diff --git a/macros/latex/contrib/l3kernel/l3fp-trig.dtx b/macros/latex/contrib/l3kernel/l3fp-trig.dtx index 48a2f06385..07f5211c98 100644 --- a/macros/latex/contrib/l3kernel/l3fp-trig.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-trig.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp.dtx b/macros/latex/contrib/l3kernel/l3fp.dtx index e721465593..7cf429eaf8 100644 --- a/macros/latex/contrib/l3kernel/l3fp.dtx +++ b/macros/latex/contrib/l3kernel/l3fp.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % @@ -681,6 +681,8 @@ % can be accessed as \texttt{deg}. % \end{variable} % +% \section{Scratch variables} +% % \begin{variable}[module = fp]{\l_tmpa_fp, \l_tmpb_fp} % Scratch floating points for local assignment. These are never used by % the kernel code, and so are safe for use with any \LaTeX3-defined diff --git a/macros/latex/contrib/l3kernel/l3fparray.dtx b/macros/latex/contrib/l3kernel/l3fparray.dtx index 9a6d43d7ef..121be8ee5b 100644 --- a/macros/latex/contrib/l3kernel/l3fparray.dtx +++ b/macros/latex/contrib/l3kernel/l3fparray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3int.dtx b/macros/latex/contrib/l3kernel/l3int.dtx index 0d35d20c1d..b90f881036 100644 --- a/macros/latex/contrib/l3kernel/l3int.dtx +++ b/macros/latex/contrib/l3kernel/l3int.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3intarray.dtx b/macros/latex/contrib/l3kernel/l3intarray.dtx index 1f3a7ecac7..8dc10287a8 100644 --- a/macros/latex/contrib/l3kernel/l3intarray.dtx +++ b/macros/latex/contrib/l3kernel/l3intarray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx index 884b51bd90..ddf3ed637e 100644 --- a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx +++ b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3keys.dtx b/macros/latex/contrib/l3kernel/l3keys.dtx index 80fb0e087d..4650975217 100644 --- a/macros/latex/contrib/l3kernel/l3keys.dtx +++ b/macros/latex/contrib/l3kernel/l3keys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3legacy.dtx b/macros/latex/contrib/l3kernel/l3legacy.dtx index f98c7e3e01..dfb25ad07b 100644 --- a/macros/latex/contrib/l3kernel/l3legacy.dtx +++ b/macros/latex/contrib/l3kernel/l3legacy.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3luatex.dtx b/macros/latex/contrib/l3kernel/l3luatex.dtx index 7820193676..e25d630c23 100644 --- a/macros/latex/contrib/l3kernel/l3luatex.dtx +++ b/macros/latex/contrib/l3kernel/l3luatex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3msg.dtx b/macros/latex/contrib/l3kernel/l3msg.dtx index c2fea024e3..e2c93d9504 100644 --- a/macros/latex/contrib/l3kernel/l3msg.dtx +++ b/macros/latex/contrib/l3kernel/l3msg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3names.dtx b/macros/latex/contrib/l3kernel/l3names.dtx index 109a2aebe4..edf14241cd 100644 --- a/macros/latex/contrib/l3kernel/l3names.dtx +++ b/macros/latex/contrib/l3kernel/l3names.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % @@ -832,6 +832,7 @@ \@@_primitive:NN \dvivariable \tex_dvivariable:D \@@_primitive:NN \eTeXglueshrinkorder \tex_eTeXglueshrinkorder:D \@@_primitive:NN \eTeXgluestretchorder \tex_eTeXgluestretchorder:D + \@@_primitive:NN \endlocalcontrol \tex_endlocalcontrol:D \@@_primitive:NN \etoksapp \tex_etoksapp:D \@@_primitive:NN \etokspre \tex_etokspre:D \@@_primitive:NN \exceptionpenalty \tex_exceptionpenalty:D diff --git a/macros/latex/contrib/l3kernel/l3news.pdf b/macros/latex/contrib/l3kernel/l3news.pdf index 31924b129f..dcf940275b 100644 Binary files a/macros/latex/contrib/l3kernel/l3news.pdf and b/macros/latex/contrib/l3kernel/l3news.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news01.pdf b/macros/latex/contrib/l3kernel/l3news01.pdf index d51ff57a3a..d9bb9779a1 100644 Binary files a/macros/latex/contrib/l3kernel/l3news01.pdf and b/macros/latex/contrib/l3kernel/l3news01.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news02.pdf b/macros/latex/contrib/l3kernel/l3news02.pdf index 398e509d94..f8a160c4c0 100644 Binary files a/macros/latex/contrib/l3kernel/l3news02.pdf and b/macros/latex/contrib/l3kernel/l3news02.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news03.pdf b/macros/latex/contrib/l3kernel/l3news03.pdf index 0e9547634b..f33e9649cd 100644 Binary files a/macros/latex/contrib/l3kernel/l3news03.pdf and b/macros/latex/contrib/l3kernel/l3news03.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news04.pdf b/macros/latex/contrib/l3kernel/l3news04.pdf index a79913bc01..93700a72d3 100644 Binary files a/macros/latex/contrib/l3kernel/l3news04.pdf and b/macros/latex/contrib/l3kernel/l3news04.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news05.pdf b/macros/latex/contrib/l3kernel/l3news05.pdf index 327963f635..b922a0083f 100644 Binary files a/macros/latex/contrib/l3kernel/l3news05.pdf and b/macros/latex/contrib/l3kernel/l3news05.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news06.pdf b/macros/latex/contrib/l3kernel/l3news06.pdf index 1c95a06b05..adfe4c942b 100644 Binary files a/macros/latex/contrib/l3kernel/l3news06.pdf and b/macros/latex/contrib/l3kernel/l3news06.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news07.pdf b/macros/latex/contrib/l3kernel/l3news07.pdf index 8920dbeb7d..4c668945bb 100644 Binary files a/macros/latex/contrib/l3kernel/l3news07.pdf and b/macros/latex/contrib/l3kernel/l3news07.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news08.pdf b/macros/latex/contrib/l3kernel/l3news08.pdf index 17b29f7368..b536ddde2b 100644 Binary files a/macros/latex/contrib/l3kernel/l3news08.pdf and b/macros/latex/contrib/l3kernel/l3news08.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news09.pdf b/macros/latex/contrib/l3kernel/l3news09.pdf index b65b916525..02d2819fd5 100644 Binary files a/macros/latex/contrib/l3kernel/l3news09.pdf and b/macros/latex/contrib/l3kernel/l3news09.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news10.pdf b/macros/latex/contrib/l3kernel/l3news10.pdf index 1cd0211dbe..0a1f80cd25 100644 Binary files a/macros/latex/contrib/l3kernel/l3news10.pdf and b/macros/latex/contrib/l3kernel/l3news10.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news11.pdf b/macros/latex/contrib/l3kernel/l3news11.pdf index fcf4d6f416..de7dfb6e2c 100644 Binary files a/macros/latex/contrib/l3kernel/l3news11.pdf and b/macros/latex/contrib/l3kernel/l3news11.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news12.pdf b/macros/latex/contrib/l3kernel/l3news12.pdf index 92dcad751f..60fb03748a 100644 Binary files a/macros/latex/contrib/l3kernel/l3news12.pdf and b/macros/latex/contrib/l3kernel/l3news12.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3pdf.dtx b/macros/latex/contrib/l3kernel/l3pdf.dtx index 21a114b272..eacb62eb6f 100644 --- a/macros/latex/contrib/l3kernel/l3pdf.dtx +++ b/macros/latex/contrib/l3kernel/l3pdf.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3prefixes.pdf b/macros/latex/contrib/l3kernel/l3prefixes.pdf index 0b11501b37..7d03b58f92 100644 Binary files a/macros/latex/contrib/l3kernel/l3prefixes.pdf and b/macros/latex/contrib/l3kernel/l3prefixes.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3prg.dtx b/macros/latex/contrib/l3kernel/l3prg.dtx index 76bda184a8..86e1e0e339 100644 --- a/macros/latex/contrib/l3kernel/l3prg.dtx +++ b/macros/latex/contrib/l3kernel/l3prg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3prop.dtx b/macros/latex/contrib/l3kernel/l3prop.dtx index 5e9779b3d6..dc611ae192 100644 --- a/macros/latex/contrib/l3kernel/l3prop.dtx +++ b/macros/latex/contrib/l3kernel/l3prop.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3quark.dtx b/macros/latex/contrib/l3kernel/l3quark.dtx index fa9bc7f606..2f52ef9d1e 100644 --- a/macros/latex/contrib/l3kernel/l3quark.dtx +++ b/macros/latex/contrib/l3kernel/l3quark.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3regex.dtx b/macros/latex/contrib/l3kernel/l3regex.dtx index 8c0006ec8e..09d078cd54 100644 --- a/macros/latex/contrib/l3kernel/l3regex.dtx +++ b/macros/latex/contrib/l3kernel/l3regex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3seq.dtx b/macros/latex/contrib/l3kernel/l3seq.dtx index 88a69a9ea5..47e48b2e1e 100644 --- a/macros/latex/contrib/l3kernel/l3seq.dtx +++ b/macros/latex/contrib/l3kernel/l3seq.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3skip.dtx b/macros/latex/contrib/l3kernel/l3skip.dtx index 7c9b2177db..36e70ce35a 100644 --- a/macros/latex/contrib/l3kernel/l3skip.dtx +++ b/macros/latex/contrib/l3kernel/l3skip.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3sort.dtx b/macros/latex/contrib/l3kernel/l3sort.dtx index f833f789da..e92a11b528 100644 --- a/macros/latex/contrib/l3kernel/l3sort.dtx +++ b/macros/latex/contrib/l3kernel/l3sort.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3str-convert.dtx b/macros/latex/contrib/l3kernel/l3str-convert.dtx index b09bc5f3c0..09539a13de 100644 --- a/macros/latex/contrib/l3kernel/l3str-convert.dtx +++ b/macros/latex/contrib/l3kernel/l3str-convert.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3str.dtx b/macros/latex/contrib/l3kernel/l3str.dtx index 60a5d4763b..c9229b83b5 100644 --- a/macros/latex/contrib/l3kernel/l3str.dtx +++ b/macros/latex/contrib/l3kernel/l3str.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3styleguide.pdf b/macros/latex/contrib/l3kernel/l3styleguide.pdf index 41b8870510..885afe83a1 100644 Binary files a/macros/latex/contrib/l3kernel/l3styleguide.pdf and b/macros/latex/contrib/l3kernel/l3styleguide.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3styleguide.tex b/macros/latex/contrib/l3kernel/l3styleguide.tex index 0ab54f7810..248f40b448 100644 --- a/macros/latex/contrib/l3kernel/l3styleguide.tex +++ b/macros/latex/contrib/l3kernel/l3styleguide.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2023-02-22} +\date{Released 2023-03-30} \begin{document} diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf index 4b418f6330..9c8164ddb4 100644 Binary files a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf and b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.tex b/macros/latex/contrib/l3kernel/l3syntax-changes.tex index f6ac35361a..383af6cc44 100644 --- a/macros/latex/contrib/l3kernel/l3syntax-changes.tex +++ b/macros/latex/contrib/l3kernel/l3syntax-changes.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2023-02-22} +\date{Released 2023-03-30} \newcommand{\TF}{\textit{(TF)}} diff --git a/macros/latex/contrib/l3kernel/l3sys.dtx b/macros/latex/contrib/l3kernel/l3sys.dtx index 3c7415c50d..23115dde50 100644 --- a/macros/latex/contrib/l3kernel/l3sys.dtx +++ b/macros/latex/contrib/l3kernel/l3sys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.pdf b/macros/latex/contrib/l3kernel/l3term-glossary.pdf index c19451ed83..a9bd06e070 100644 Binary files a/macros/latex/contrib/l3kernel/l3term-glossary.pdf and b/macros/latex/contrib/l3kernel/l3term-glossary.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.tex b/macros/latex/contrib/l3kernel/l3term-glossary.tex index cf0e3743e2..ffa4204e75 100644 --- a/macros/latex/contrib/l3kernel/l3term-glossary.tex +++ b/macros/latex/contrib/l3kernel/l3term-glossary.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2023-02-22} +\date{Released 2023-03-30} \newcommand{\TF}{\textit{(TF)}} diff --git a/macros/latex/contrib/l3kernel/l3text-case.dtx b/macros/latex/contrib/l3kernel/l3text-case.dtx index e8e07d236c..b93243040d 100644 --- a/macros/latex/contrib/l3kernel/l3text-case.dtx +++ b/macros/latex/contrib/l3kernel/l3text-case.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % @@ -885,6 +885,8 @@ % \begin{macro}[EXP,pTF]{\@@_change_case_if_greek:n} % \begin{macro}[EXP]{\@@_change_case_if_greek:n} % \begin{macro}[EXP,pTF]{\@@_change_case_if_greek:n} +% \begin{macro}[EXP,pTF]{\@@_change_case_if_greek_spacing_diacritic:n} +% \begin{macro}[EXP]{\@@_change_case_if_greek_spacing_diacritic:n} % \begin{macro}[EXP,pTF]{\@@_change_case_if_greek_accent:n} % \begin{macro}[EXP]{\@@_change_case_if_greek_accent:n} % \begin{macro}[EXP,pTF]{\@@_change_case_if_greek_diacritic:n} @@ -903,18 +905,31 @@ % although necessarily the implementation is somewhat different. The % \emph{ypogegrammeni} is filtered out here as it is not actually in the % Greek range, so gets lost if we leave until later. The one Greek codepoint -% we skip is the numeral sign: it's got an awkward NFD for \pdfTeX{} so is -% best left unchanged. +% we skip is the numeral sign and question mark: the first has an awkward NFD +% for \pdfTeX{} so is best left unchanged, and the latter has issues concerning +% how \texttt{LGR} outputs the input and output (differently!). % \begin{macrocode} \cs_new:Npn \@@_change_case_upper_el:nnnn #1#2#3#4 { \bool_lazy_and:nnTF { \@@_change_case_if_greek_p:n {#4} } - { ! \@@_codepoint_compare_p:nNn {#4} = { "0374 } } { - \exp_args:Ne \@@_change_case_upper_el:nnn + ! \bool_lazy_or_p:nn + { \@@_codepoint_compare_p:nNn {#4} = { "0374 } } + { \@@_codepoint_compare_p:nNn {#4} = { "037E } } + } + { + \@@_change_case_if_greek_spacing_diacritic:nTF {#4} + { + \@@_change_case_store:n {#4} + \@@_change_case_loop:nnw + } { - \codepoint_to_nfd:n { \@@_codepoint_from_chars:Nw #4 } + \exp_args:Ne \@@_change_case_upper_el:nnn + { + \codepoint_to_nfd:n + { \@@_codepoint_from_chars:Nw #4 } + } } {#2} {#3} } @@ -1247,6 +1262,84 @@ \fi: \fi: } +\prg_new_conditional:Npnn \@@_change_case_if_greek_spacing_diacritic:n + #1 { TF } + { + \exp_args:Nf \@@_change_case_if_greek_spacing_diacritic:n + { \int_eval:n { \@@_codepoint_from_chars:Nw #1 } } + } +\cs_new:Npn \@@_change_case_if_greek_spacing_diacritic:n #1 + { + \if_int_compare:w #1 < "1FBD \exp_stop_f: + \if_int_compare:w #1 = "037A \exp_stop_f: + \prg_return_true: + \else: + \prg_return_false: + \fi: + \else: + \if_int_compare:w #1 = "1FBD \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FBF \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FC0 \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FC1 \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FCD \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FCE \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FCF \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FDD \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FDE \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FDF \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FED \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FEE \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FEF \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FFD \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FFE \exp_stop_f: + \prg_return_true: + \else: + \prg_return_false: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + } \prg_new_conditional:Npnn \@@_change_case_if_greek_diacritic:n #1 { TF , p } { @@ -1267,11 +1360,7 @@ \if_int_compare:w #1 = "0314 \exp_stop_f: \prg_return_true: \else: - \if_int_compare:w #1 = "0343 \exp_stop_f: - \prg_return_true: - \else: - \prg_return_false: - \fi: + \prg_return_false: \fi: \fi: \fi: @@ -1351,6 +1440,8 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} % \begin{macro}[EXP] % {\@@_change_case_boundary_upper_el:Nnnw, \@@_change_case_boundary_upper_el-x-iota:Nnnw} % \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnN} @@ -1383,9 +1474,13 @@ } \cs_new:Npn \@@_change_case_boundary_upper_el:nnn #1#2#3 { - \bool_lazy_or:nnTF - { \@@_codepoint_compare_p:nNn {#3} = { "03AE } } - { \@@_codepoint_compare_p:nNn {#3} = { "1F22 } } + \bool_lazy_any:nTF + { + { \@@_codepoint_compare_p:nNn {#3} = { "0389 } } + { \@@_codepoint_compare_p:nNn {#3} = { "03AE } } + { \@@_codepoint_compare_p:nNn {#3} = { "1F22 } } + { \@@_codepoint_compare_p:nNn {#3} = { "1F2A } } + } { \@@_change_case_boundary_upper_el:nnnw {#1} {#2} {#3} } { \@@_change_case_loop:nnw {#1} {#2} #3 } } diff --git a/macros/latex/contrib/l3kernel/l3text-map.dtx b/macros/latex/contrib/l3kernel/l3text-map.dtx index 00ac1655c3..8d35064933 100644 --- a/macros/latex/contrib/l3kernel/l3text-map.dtx +++ b/macros/latex/contrib/l3kernel/l3text-map.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3text-purify.dtx b/macros/latex/contrib/l3kernel/l3text-purify.dtx index 3fcc7dccf1..247dd7a0c3 100644 --- a/macros/latex/contrib/l3kernel/l3text-purify.dtx +++ b/macros/latex/contrib/l3kernel/l3text-purify.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3text.dtx b/macros/latex/contrib/l3kernel/l3text.dtx index 8440ecbdbc..eb5d2bede7 100644 --- a/macros/latex/contrib/l3kernel/l3text.dtx +++ b/macros/latex/contrib/l3kernel/l3text.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx index dc6ae26d45..8a281accd7 100644 --- a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx +++ b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3tl.dtx b/macros/latex/contrib/l3kernel/l3tl.dtx index b6a7ddfb37..70f545d0cf 100644 --- a/macros/latex/contrib/l3kernel/l3tl.dtx +++ b/macros/latex/contrib/l3kernel/l3tl.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3token.dtx b/macros/latex/contrib/l3kernel/l3token.dtx index 24d565f100..ad94a32847 100644 --- a/macros/latex/contrib/l3kernel/l3token.dtx +++ b/macros/latex/contrib/l3kernel/l3token.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3unicode.dtx b/macros/latex/contrib/l3kernel/l3unicode.dtx index efe38cd6e7..664a788f4f 100644 --- a/macros/latex/contrib/l3kernel/l3unicode.dtx +++ b/macros/latex/contrib/l3kernel/l3unicode.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/source3.pdf b/macros/latex/contrib/l3kernel/source3.pdf index c987faf29e..0caa972f9f 100644 Binary files a/macros/latex/contrib/l3kernel/source3.pdf and b/macros/latex/contrib/l3kernel/source3.pdf differ diff --git a/macros/latex/contrib/l3kernel/source3.tex b/macros/latex/contrib/l3kernel/source3.tex index be4df48233..ba0668514c 100644 --- a/macros/latex/contrib/l3kernel/source3.tex +++ b/macros/latex/contrib/l3kernel/source3.tex @@ -53,7 +53,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2023-02-22} +\date{Released 2023-03-30} \pagenumbering{roman} \maketitle diff --git a/macros/latex/contrib/physics2/doc/phy2docdef.tex b/macros/latex/contrib/physics2/doc/phy2docdef.tex index d5d0699a76..f6d5c5da9f 100644 --- a/macros/latex/contrib/physics2/doc/phy2docdef.tex +++ b/macros/latex/contrib/physics2/doc/phy2docdef.tex @@ -64,7 +64,7 @@ \newenvironment{example} {\stepcounter{example}\example@start}{\example@end} \author{Zhang Tingxuan} -\date{2023/02/07\quad Version 0.1.1\thanks{% +\date{2023/03/30\quad Version 0.2.0\thanks{% \url{https://www.github.com/AlphaZTX/physics2}}} \makeatother \endinput \ No newline at end of file diff --git a/macros/latex/contrib/physics2/doc/physics2-legacy.pdf b/macros/latex/contrib/physics2/doc/physics2-legacy.pdf index 796463ab07..682d20a08b 100644 Binary files a/macros/latex/contrib/physics2/doc/physics2-legacy.pdf and b/macros/latex/contrib/physics2/doc/physics2-legacy.pdf differ diff --git a/macros/latex/contrib/physics2/doc/physics2-legacy.tex b/macros/latex/contrib/physics2/doc/physics2-legacy.tex index fea5894ad0..d1b64a4374 100644 --- a/macros/latex/contrib/physics2/doc/physics2-legacy.tex +++ b/macros/latex/contrib/physics2/doc/physics2-legacy.tex @@ -8,10 +8,10 @@ \documentclass[11pt,letterpaper]{article} \usepackage{amsmath} \usepackage{unicode-math} -\setmainfont{Latin Modern Roman} -\setsansfont{Latin Modern Sans} -\setmonofont{Latin Modern Mono} -\setmathfont{Latin Modern Math} +\setmainfont{Libertinus Serif} +\setsansfont{Libertinus Sans} +\setmonofont{Noto Sans Mono}[Scale=MatchLowercase] +\setmathfont{Libertinus Math} \usepackage{physics2} \usephysicsmodule{ab} \usephysicsmodule{ab.legacy,nabla.legacy} @@ -177,11 +177,11 @@ the \modu{ab} module of \pkg{physics2}, these commands have changed to \[ \aab{\0} \quad \vab{\0} \quad \Vab{\0} \] \end{example} -Also, after \texttt{\textbackslash}$X$\texttt{ab} can be a ``biggg'' command -or a star. For example, +\texttt{\textbackslash$X$ab} can take an optional star and an optional \oarg{biggg} +argument. For example, \begin{example} \def\0{\frac12} -\[ \pab\Big{\0} \quad \bab*{\0} \] +\[ \pab[Big]{\0} \quad \bab*{\0} \] \end{example} \pkg{physics} also provides the following commands: @@ -197,18 +197,19 @@ the first four commands can be used through the \modu{ab.legacy} module of For example, \begin{example} \def\0{\frac12} -\[ \abs{\0} \quad \abs\Big{\0} +\[ \abs{\0} \quad \abs[big]{\0} \quad \abs*{\0} \] \end{example} Users of the legacy \pkg{physics} package should notice that the syntax of -\cs{eval} has been changed to \cs{eval}\oarg{left delimiter}\marg{subformula}. -The \modu{ab.legacy} module abandoned the \verb"\eval(foo|"-like syntax. The -\meta{left delimiter} argument is optional. For example, +\cs{eval} has been changed. The \modu{ab.legacy} module abandoned the +\verb"\eval(foo|"-like syntax. The new \cs{eval}'s syntax is just like other +commands in this module. There are also two variants of \cs{eval} --- \cs{peval} +and \cs{beval}. For example, \begin{example} -\def\0{\frac12x} -\[ \eval{\0}_a^b \quad - \eval[(]{\0}_a^b \quad - \eval[[]\big{\0}_a^b \] +\def\0{1+\frac12x} +\[ \eval{\0}_a^b \quad + \peval*{\0}_a^b \quad + \beval[big]{\0}_a^b \] \end{example} The \cs{comm}, \cs{acomm} and \cs{pb} (Poisson bracket) are not supported. But you can write like \verb|\ab[foo,baz]| or \verb|\bab{foo,baz}| instead. diff --git a/macros/latex/contrib/physics2/doc/physics2.pdf b/macros/latex/contrib/physics2/doc/physics2.pdf index a5721ef991..47645e84d8 100644 Binary files a/macros/latex/contrib/physics2/doc/physics2.pdf and b/macros/latex/contrib/physics2/doc/physics2.pdf differ diff --git a/macros/latex/contrib/physics2/doc/physics2.tex b/macros/latex/contrib/physics2/doc/physics2.tex index 043e262853..f567d5219c 100644 --- a/macros/latex/contrib/physics2/doc/physics2.tex +++ b/macros/latex/contrib/physics2/doc/physics2.tex @@ -172,11 +172,12 @@ with paired delimiters. For example, \[ \pab{\0} \bab{\0} \Bab{\0} \] \[ \aab{\0} \vab{\0} \Vab{\0} \] \end{example} -After \texttt{\textbackslash}$X$\texttt{ab} can be a ``biggg'' command or a -star. For example, +These \texttt{\textbackslash$X$ab} commands can take an optional star and +an optional \oarg{biggg} argument. Star stands for using the default sizes. +For example, \begin{example} -\def\0{\frac12} -\[ \pab\Big{\0} \quad \bab*{\0} \] +\def\0{n+\frac12} +\[ \pab[Big]{\0} \quad \bab*{\0} \] \end{example} \paragraph{The options of \modu{ab} module} @@ -471,21 +472,22 @@ legacy \pkg{physics} package. It's not suggest to use them in a new document. \subsection{The \modu{ab.legacy} module} This module provides the following commands: \begin{Verbatim}[fontsize=\small] -\abs \norm \eval \order +\abs \norm \eval (\peval \beval) \order \end{Verbatim} -They can take a normal argument. Between these commands and their argument -can be a ``biggg'' command or a star. For example, +They shares the same syntax as \meta{cmd}\opt{*}\oarg{biggg}\marg{subformula}. +Star and \meta{biggg} are optional. Star stands for ``use the default size''. +For example, \begin{example} -\def\0{\frac12} +\def\0{1+\frac12} \[ \abs{\0} \quad - \norm\Big{\0} \quad + \norm[Big]{\0} \quad \order*{\0} \] \end{example} \begin{example} -\def\0{\frac12x} -\[ \eval{\0}_a^b \quad - \eval[(]{\0}_a^b \quad - \eval[[]\big{\0}_a^b \] +\def\0{1+\frac12x} +\[ \eval{\0}_a^b \quad + \peval*{\0}_a^b \quad + \beval[big]{\0}_a^b \] \end{example} You can set the ``order'' symbol in this module through the \opt{order} option like this: diff --git a/macros/latex/contrib/physics2/tex/phy-ab.braket.sty b/macros/latex/contrib/physics2/tex/phy-ab.braket.sty index a65ce94bc5..818d8a75e8 100644 --- a/macros/latex/contrib/physics2/tex/phy-ab.braket.sty +++ b/macros/latex/contrib/physics2/tex/phy-ab.braket.sty @@ -39,11 +39,11 @@ % \braket \begingroup \catcode`\|=\active -\gdef\phy@@mb@bk#1#2{\begingroup% +\gdef\phy@@mb@bk#1#2{\begingroup \mathcode`\|="8000\def|{\egroup#1\vert\bgroup}% \def\<{\mathrel{<}}\def\>{\mathrel{>}}% \mathopen#1\langle\bgroup#2\egroup\mathclose#1\rangle\endgroup} -\gdef\phy@@ab@bk#1{\begingroup% +\gdef\phy@@ab@bk#1{\begingroup \mathcode`\|="8000\def|{\egroup\phy@abb@bkv\bgroup}% \def\<{\mathrel{<}}\def\>{\mathrel{>}}% \phy@abopen\langle\bgroup#1\egroup\phy@abclose\rangle\endgroup} @@ -58,18 +58,18 @@ \begingroup \catcode`\<=\active \catcode`\>=\active -\gdef\phy@@mb@kb#1#2{\begingroup% +\gdef\phy@@mb@kb#1#2{\begingroup \mathcode`\<="8000 \mathcode`\>="8000% \def<{#1\langle}\def>{#1\rangle}% \def\<{\phy@abb@l}\def\>{\phy@abb@r}% \mathopen#1\vert#2\mathclose#1\vert\endgroup} \endgroup -\gdef\phy@@ab@kb#1>#2<#3\phy@@end{\begingroup% +\gdef\phy@@ab@kb#1>#2<#3\phy@@end{\begingroup \def\<{\phy@abb@l}\def\>{\phy@abb@r}% \phy@abopen\vert\mathopen{\phy@mathvphantom{#3}}#1\phy@abclose\rangle#2% - \phy@abopen\langle#3\mathclose{\phy@mathvphantom{#1}}\phy@abclose\vert% + \phy@abopen\langle#3\mathclose{\phy@mathvphantom{#1}}\phy@abclose\vert \endgroup} -\AtBeginDocument{\ifcsname symbf\endcsname% +\AtBeginDocument{\ifcsname symbf\endcsname \def\phy@abb@l{\Umathchar 3 \symoperators "003C }% \def\phy@abb@r{\Umathchar 3 \symoperators "003E }% \fi} diff --git a/macros/latex/contrib/physics2/tex/phy-ab.legacy.sty b/macros/latex/contrib/physics2/tex/phy-ab.legacy.sty index d21e52f5d1..bbfa1f2b4a 100644 --- a/macros/latex/contrib/physics2/tex/phy-ab.legacy.sty +++ b/macros/latex/contrib/physics2/tex/phy-ab.legacy.sty @@ -17,7 +17,7 @@ %% The Current Maintainer of this work is Zhang Tingxuan. %% \ProvidesFile{phy-ab.legacy.sty} - [2023/01/25 `ab.legacy' module of `physics2.sty'] + [2023/03/29 `ab.legacy' module of `physics2.sty'] \phy@requiremodule{ab} % The `tight' bool option, true or false. \phy@define@key{ab.legacy}{order}[\mathcal{O}]{\def\phy@ab@ordersym{#1}} @@ -25,9 +25,19 @@ \phy@setkeys{ab.legacy}{order} \phy@processkeyopt{ab.legacy} % The braced operators. -\DeclareRobustCommand\abs{\phy@d@ly\vert\vert} -\DeclareRobustCommand\norm{\phy@d@ly\Vert\Vert} -\DeclareRobustCommand\order{\phy@ab@ordersym\phy@d@ly()} -\DeclareRobustCommand\eval[1][.]{\phy@d@ly#1|} +\phy@d@l@geny\abs\vert\vert +\phy@d@l@geny\norm\Vert\Vert +\DeclareDocumentCommand\order{som}{% + \phy@ab@ordersym + \IfBooleanTF{#1}% + {(#3)}% + {\IfValueTF{#2}% + {\csname#2l\endcsname(#3\csname#2r\endcsname)}% + {\phy@abopen(#3\phy@abclose)}% + }% +} +\phy@d@l@geny\eval.\vert +\phy@d@l@geny\peval(\vert +\phy@d@l@geny\beval[\vert \endinput %% End of file `phy-ab.legacy.sty'. diff --git a/macros/latex/contrib/physics2/tex/phy-ab.sty b/macros/latex/contrib/physics2/tex/phy-ab.sty index 089d01b53c..4436a65214 100644 --- a/macros/latex/contrib/physics2/tex/phy-ab.sty +++ b/macros/latex/contrib/physics2/tex/phy-ab.sty @@ -57,7 +57,7 @@ \phy@AB@gen{mb}\vert{mr\vert\vert}{\mathopen#1\vert#2\mathclose#1\vert} \phy@AB@gen{mb}\Vert{mr\Vert\Vert}{\mathopen#1\Vert#2\mathclose#1\Vert} \phy@AB@gen{mb}\langle{mr\langle\rangle}{\mathopen#1\langle#2\mathclose#1\rangle} -% \phy@del, the automatic +% \phy@del, the automatic braces. #1: opensymbol; #2: close symbol; #3 \def\phy@del#1#2#3{\phy@abopen#1#3\phy@abclose#2} \expandafter\def\csname phy@del\string*\endcsname#1#2#3{\mathopen#1#3\mathclose#2} \expandafter\def\csname phy@del\string\big\endcsname#1#2#3{\bigl#1#3\bigr#2} @@ -66,8 +66,6 @@ \expandafter\def\csname phy@del\string\Bigg\endcsname#1#2#3{\Biggl#1#3\Biggr#2} \expandafter\def\csname phy@del\string\biggg\endcsname#1#2#3{\bigggl#1#3\bigggr#2} \expandafter\def\csname phy@del\string\Biggg\endcsname#1#2#3{\Bigggl#1#3\Bigggr#2} -% \phy@AB@gb(a|b|..): gobble (a|b|..) arguments in the middle. -\def\phy@AB@gbc#1#2#3#4#5{#1{#5}} % \phy@d@lx (phy_del_x): the internal defination of \ab. % #1: `mb', according to \phy@AB@gen; #2: `ab'; #3: star or big or left delimiter. \def\phy@d@lx#1#2#3{% @@ -88,18 +86,24 @@ % Generate the `mb' and `ab' arguments. \phy@d@l@genxm{mb} \phy@d@l@genxa{ab} -% \phy@d@ly (phy_del_y): the internal defination of \(p|b|..)ab. -\def\phy@d@ly#1#2#3{\ifcsname phy@del\string#3\endcsname - \phy@AB@gbc{\csname phy@del\string#3\endcsname#1#2}% - \else{\phy@del#1#2{#3}}\fi} % \ab(), after \ab can be a star or \biggg. \DeclareRobustCommand\ab{\phy@d@lx{mb}{ab}} -% \(p|b|..)ab{}, after \(p|..)ab can be a star or \biggg. -\DeclareRobustCommand\pab{\phy@d@ly()} -\DeclareRobustCommand\bab{\phy@d@ly[]} -\DeclareRobustCommand\Bab{\phy@d@ly\lbrace\rbrace} -\DeclareRobustCommand\vab{\phy@d@ly\vert\vert} -\DeclareRobustCommand\aab{\phy@d@ly\langle\rangle} -\DeclareRobustCommand\Vab{\phy@d@ly\Vert\Vert} +% \phy@d@l@geny: define commands like \pab. #1: cs; #2: open symbol; #3: close symbol. +\def\phy@d@l@geny#1#2#3{% + \DeclareDocumentCommand#1{som}{% ##1: star; ##2: bigg (csname); ##3: subformula. + \IfBooleanTF{##1}% + {#2##3#3}% + {\IfValueTF{##2}% + {\csname##2l\endcsname#2##3\csname##2r\endcsname#3}% + {\phy@abopen#2##3\phy@abclose#3}% + }% + }% +} +\phy@d@l@geny\pab() +\phy@d@l@geny\bab[] +\phy@d@l@geny\Bab\lbrace\rbrace +\phy@d@l@geny\vab\vert\vert +\phy@d@l@geny\aab\langle\rangle +\phy@d@l@geny\Vab\Vert\Vert \endinput %% End of file `phy-ab.sty'. diff --git a/macros/latex/contrib/physics2/tex/phy-braket.sty b/macros/latex/contrib/physics2/tex/phy-braket.sty index a6e88c13cc..bd3a9f3249 100644 --- a/macros/latex/contrib/physics2/tex/phy-braket.sty +++ b/macros/latex/contrib/physics2/tex/phy-braket.sty @@ -17,7 +17,7 @@ %% The Current Maintainer of this work is Zhang Tingxuan. %% \ProvidesFile{phy-braket.sty} - [2023/01/25 `braket' module of `physics2.sty'] + [2023/03/29 `braket' module of `physics2.sty'] % Here we need to get the definition of \phy@abopen and \phy@abclose. \phy@requiremodule{ab} \ifdefined\phy@abb@bkv @@ -74,23 +74,23 @@ \csname\@phy@bk@m\endcsname\vert{#2}% \csname\@phy@bk@m\endcsname\vert{#3}% \csname\@phy@bk@r\endcsname\rangle} -% Parse the optional argument of \braket. -\def\@phy@bk@do@pt#1,{\ifx#1\relax\@empty\else% +% Parse the optional argument of \braket. This will add 3 entries to hash table. +\def\@phy@bk@do@pt#1,{\ifx#1\relax\@empty\else \edef\reserved@a{\zap@space#1 \@empty}% - \ifx\reserved@a\@empty\else% - \ifcsname phy@del\expandafter\string\csname\reserved@a\endcsname\endcsname% + \ifx\reserved@a\@empty\else + \ifcsname phy@del\expandafter\string\csname\reserved@a\endcsname\endcsname \xdef\@phy@bk@l{\reserved@a l}% \xdef\@phy@bk@m{\reserved@a}% but not m (m stands for \mathrel) \xdef\@phy@bk@r{\reserved@a r}% - \else% + \else \ifnum\reserved@a>3% \PackageError{physics2}{\string\braket\space can only take 3 mandatory arguments at most}{Check if you had written a number more than 3 in the [optional] argument.}% - \fi% + \fi \xdef\@phy@bk@argnum{\romannumeral\reserved@a}% - \fi% - \fi% + \fi + \fi \expandafter\@phy@bk@do@pt\fi} \def\phy@bk@doopt#1{\@phy@bk@do@pt#1,\relax,} % \ketbra @@ -100,9 +100,9 @@ {\IfValueTF{#2}% {\csname#2l\endcsname\vert#3\csname#2r\endcsname\rangle#4% \csname#2l\endcsname\langle#5\csname#2r\endcsname\vert}% - {\begingroup% + {\begingroup \phy@abopen\vert\mathopen{\phy@mathvphantom{#5}}#3\phy@abclose\rangle#4% - \phy@abopen\langle#5\mathclose{\phy@mathvphantom{#3}}\phy@abclose\vert% + \phy@abopen\langle#5\mathclose{\phy@mathvphantom{#3}}\phy@abclose\vert \endgroup}% }% } diff --git a/macros/latex/contrib/physics2/tex/phy-common.sty b/macros/latex/contrib/physics2/tex/phy-common.sty index f20d258365..e587c02bec 100644 --- a/macros/latex/contrib/physics2/tex/phy-common.sty +++ b/macros/latex/contrib/physics2/tex/phy-common.sty @@ -17,9 +17,10 @@ %% The Current Maintainer of this work is Zhang Tingxuan. %% \ProvidesFile{phy-common.sty} - [2023/01/25 `common' module of `physics2.sty'] -% Check if `unicode-math' loaded and (re)define the vert symbols. -% The `\relax'es here are for \ifx to compare. + [2023/03/29 `common' module of `physics2.sty'] +% Check if unicode-math loaded and (re)define the vert symbols. +% The \relax's here are for \ifx to compare. +% unicode-math sets these symbols in \fam1, \symoperators is set 1 in 2e kernel. \AtBeginDocument{\ifcsname symrm\endcsname \protected\def\|{\Udelimiter 0 \symoperators "2016 }% \protected\def\vert{\Udelimiter 0 \symoperators "007C\relax}% diff --git a/macros/latex/contrib/uvaletter/README.md b/macros/latex/contrib/uvaletter/README.md index eb1edbfc0a..0e200331ad 100644 --- a/macros/latex/contrib/uvaletter/README.md +++ b/macros/latex/contrib/uvaletter/README.md @@ -1,5 +1,5 @@