From 3768cf87942daac44d14a6bd2cb2d2ede497b8d0 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 30 Mar 2023 20:05:05 +0000 Subject: l3 (30mar23) git-svn-id: svn://tug.org/texlive/trunk@66710 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/l3backend/l3backend-basics.dtx | 16 +- .../source/latex/l3backend/l3backend-box.dtx | 4 +- .../source/latex/l3backend/l3backend-color.dtx | 164 +++++++++++---------- .../source/latex/l3backend/l3backend-draw.dtx | 4 +- .../source/latex/l3backend/l3backend-graphics.dtx | 4 +- .../source/latex/l3backend/l3backend-header.dtx | 4 +- .../source/latex/l3backend/l3backend-opacity.dtx | 67 ++++++++- .../source/latex/l3backend/l3backend-pdf.dtx | 4 +- .../source/latex/l3backend/l3backend.ins | 28 ++++ .../l3experimental/l3benchmark/l3benchmark.dtx | 6 +- .../latex/l3experimental/l3bitset/l3bitset.dtx | 4 +- .../latex/l3experimental/l3draw/l3draw-boxes.dtx | 2 +- .../latex/l3experimental/l3draw/l3draw-layers.dtx | 2 +- .../latex/l3experimental/l3draw/l3draw-paths.dtx | 2 +- .../latex/l3experimental/l3draw/l3draw-points.dtx | 2 +- .../latex/l3experimental/l3draw/l3draw-scopes.dtx | 2 +- .../l3experimental/l3draw/l3draw-softpath.dtx | 2 +- .../latex/l3experimental/l3draw/l3draw-state.dtx | 2 +- .../l3experimental/l3draw/l3draw-transforms.dtx | 2 +- .../source/latex/l3experimental/l3draw/l3draw.dtx | 4 +- .../latex/l3experimental/l3graphics/l3graphics.dtx | 4 +- .../latex/l3experimental/l3opacity/l3opacity.dtx | 6 +- .../latex/l3experimental/l3str/l3str-format.dtx | 4 +- .../l3experimental/l3sys-shell/l3sys-shell.dtx | 4 +- .../latex/l3experimental/xcoffins/xcoffins.dtx | 4 +- .../latex/l3experimental/xgalley/l3galley.dtx | 6 +- .../latex/l3experimental/xgalley/xgalley.dtx | 6 +- Master/texmf-dist/source/latex/l3kernel/expl3.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3basics.dtx | 5 +- .../source/latex/l3kernel/l3bootstrap.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3box.dtx | 2 +- .../source/latex/l3kernel/l3candidates.dtx | 10 +- .../texmf-dist/source/latex/l3kernel/l3cctab.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3clist.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3coffins.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3color.dtx | 65 ++++++-- .../texmf-dist/source/latex/l3kernel/l3debug.dtx | 2 +- .../source/latex/l3kernel/l3deprecation.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3doc.dtx | 2 +- .../source/latex/l3kernel/l3docstrip.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3expan.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3file.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3flag.dtx | 2 +- .../source/latex/l3kernel/l3fp-assign.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3fp-aux.dtx | 2 +- .../source/latex/l3kernel/l3fp-basics.dtx | 2 +- .../source/latex/l3kernel/l3fp-convert.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3fp-expo.dtx | 2 +- .../source/latex/l3kernel/l3fp-extended.dtx | 2 +- .../source/latex/l3kernel/l3fp-logic.dtx | 2 +- .../source/latex/l3kernel/l3fp-parse.dtx | 2 +- .../source/latex/l3kernel/l3fp-random.dtx | 2 +- .../source/latex/l3kernel/l3fp-round.dtx | 2 +- .../source/latex/l3kernel/l3fp-traps.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3fp-trig.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3fp.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3fparray.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3int.dtx | 2 +- .../source/latex/l3kernel/l3intarray.dtx | 2 +- .../source/latex/l3kernel/l3kernel-functions.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3keys.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3legacy.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3luatex.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3msg.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3names.dtx | 3 +- Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3prg.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3prop.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3quark.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3regex.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3seq.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3skip.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3sort.dtx | 2 +- .../source/latex/l3kernel/l3str-convert.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3str.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3sys.dtx | 2 +- .../source/latex/l3kernel/l3text-case.dtx | 123 ++++++++++++++-- .../source/latex/l3kernel/l3text-map.dtx | 2 +- .../source/latex/l3kernel/l3text-purify.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3text.dtx | 2 +- .../source/latex/l3kernel/l3tl-analysis.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3tl.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3token.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3unicode.dtx | 2 +- 84 files changed, 453 insertions(+), 220 deletions(-) (limited to 'Master/texmf-dist/source/latex') diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx index 918ddaa06d1..1f821aff253 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx index f7e1c7d37a5..ae7e2281fc3 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx index 1aff7262eba..786282333e0 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx index d9f4f53cffa..6577bc30087 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx index a347bddccfe..b042bd04e50 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx index 69062bf2417..595e6a29247 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx index 465e51804a0..3f3dd1c84a0 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx index 321a4baa0e3..bb80237d4da 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3backend/l3backend.ins b/Master/texmf-dist/source/latex/l3backend/l3backend.ins index cfa8ece9846..5b8945f0127 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend.ins +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx b/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx index e3d41c80844..e8290bc4353 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-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/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx b/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx index e4a40a7d7f2..f3b7c26e1ce 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3bitset/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/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx index 504d92ce26a..c03fa2770ad 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-01-24} +% \date{Released 2023-03-30} % % \maketitle % 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 aa930cfcc75..36f3433092d 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-01-24} +% \date{Released 2023-03-30} % % \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 7201051b826..70b7608f2bf 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-01-24} +% \date{Released 2023-03-30} % % \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 01b82b4a8ea..6467e012021 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-01-24} +% \date{Released 2023-03-30} % % \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 4663049adfc..9727e9ce6e7 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-01-24} +% \date{Released 2023-03-30} % % \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 971a4236af7..234c4930ef9 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-01-24} +% \date{Released 2023-03-30} % % \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 defbbf9a927..86275a52263 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-01-24} +% \date{Released 2023-03-30} % % \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 23febfae6c9..e7d370a2455 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-01-24} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx index 6affc2f4275..c3d10d3b3ea 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-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/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx b/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx index ed7f01717d0..942b15fd7d9 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3graphics/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/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx b/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx index eceff60d450..4d2de0fc69d 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-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/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx index 5ab07243730..05f466dbd40 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-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/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx b/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx index 0f0852a95c7..f830455bf62 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-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/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx index 8794786d59f..7b41377cc2e 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-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/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx index 1770aa7fadb..405b248b648 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-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/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx index 4510cba15bc..b4505281256 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-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/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx index 269b471a76d..263dff0730e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx index 6188e7b7cc0..37af99717ed 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx index 2760747db3e..73064e4ce4d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx index 2ab05edbc62..26fb88edd96 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx index 7b4ce3695ce..3b804316c2e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx index a03c9ffcedf..8233acdc79d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx index 4c9dc79db2a..c8a9d89bcb3 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx index 2166c0bfde8..4a496da85ff 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx index 218f560acbd..017cad63c5c 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx index fbba62fa365..854f4f5b619 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx index e002e78421e..1e8af300224 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx index 9143ccc7df4..f4f19d5aaac 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx index ec8530dd71f..750356ac9f5 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx index d89d8192fff..d8a6c8cc996 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx index 411ac9f3d72..dfc1c6338dd 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx index 5f1ba433132..e30f49f7f28 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx index c1836f77ca5..3efd5655759 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx index a10f589f672..0391f3e34fc 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx index a9798f492e8..9af50e58506 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx index 31a53d3b86e..d7a1936e773 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx index da1d0e77b37..1ea73e116e7 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx index 0ab976ed16d..5384037de14 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx index 5f513092be3..2956f840a59 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx index 1d5eac4aa4f..ef58cd8600b 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx index 9be2dae96fe..a8929a1faed 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx index 0e6342be596..e721fc76c51 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx index 999cd850a27..c09a940b1be 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx index 48a2f063852..07f5211c98e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx index e7214655937..7cf429eaf83 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx index 9a6d43d7ef1..121be8ee5b0 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx index 0d35d20c1d0..b90f881036d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx index 1f3a7ecac72..8dc10287a81 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx index 884b51bd90c..ddf3ed637e3 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx index 80fb0e087d7..46509752170 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx index f98c7e3e011..dfb25ad07b6 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx index 7820193676d..e25d630c234 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx index c2fea024e32..e2c93d95049 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx index 109a2aebe44..edf14241cd2 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx b/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx index 21a114b2728..eacb62eb6fc 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx index 76bda184a82..86e1e0e3394 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx index 5e9779b3d6f..dc611ae192e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx index fa9bc7f6069..2f52ef9d1e7 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx index 8c0006ec8ec..09d078cd548 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx index 88a69a9ea5f..47e48b2e1e5 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx index 7c9b2177db5..36e70ce35ac 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx index f833f789da5..e92a11b5286 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx index b09bc5f3c0a..09539a13def 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx index 60a5d4763bc..c9229b83b50 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx index 3c7415c50d0..23115dde504 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx index e8e07d236ca..b93243040da 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx index 00ac1655c3e..8d350649330 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx index 3fcc7dccf1c..247dd7a0c37 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx index 8440ecbdbc9..eb5d2bede7a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx index dc6ae26d453..8a281accd7e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx index b6a7ddfb37d..70f545d0cf8 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx index 24d565f1006..ad94a328479 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx index efe38cd6e7c..664a788f4f0 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-02-22} +% \date{Released 2023-03-30} % % \maketitle % -- cgit v1.2.3