From 669f118b45756491c4d06049f501796b22192227 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 11 Sep 2020 20:56:15 +0000 Subject: l3 (10sep20) git-svn-id: svn://tug.org/texlive/trunk@56323 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md | 13 +- Master/texmf-dist/doc/latex/l3backend/README.md | 2 +- .../doc/latex/l3experimental/CHANGELOG.md | 11 +- .../texmf-dist/doc/latex/l3experimental/README.md | 2 +- .../l3experimental/l3benchmark/l3benchmark.pdf | Bin 314255 -> 314255 bytes .../doc/latex/l3experimental/l3color/l3color.pdf | Bin 367535 -> 368703 bytes .../latex/l3experimental/l3draw/l3draw-code.pdf | Bin 606612 -> 606606 bytes .../doc/latex/l3experimental/l3draw/l3draw.pdf | Bin 489817 -> 489817 bytes .../latex/l3experimental/l3graphics/l3graphics.pdf | Bin 363123 -> 363123 bytes .../doc/latex/l3experimental/l3pdf/l3pdf-code.pdf | Bin 276730 -> 276730 bytes .../doc/latex/l3experimental/l3pdf/l3pdf.pdf | Bin 350795 -> 350792 bytes .../latex/l3experimental/l3str/l3str-format.pdf | Bin 344898 -> 344898 bytes .../l3experimental/l3sys-shell/l3sys-shell.pdf | Bin 311734 -> 311734 bytes .../doc/latex/l3experimental/xcoffins/xcoffins.pdf | Bin 372890 -> 372890 bytes .../doc/latex/l3experimental/xgalley/l3galley.pdf | Bin 385764 -> 385762 bytes .../doc/latex/l3experimental/xgalley/xgalley.pdf | Bin 285681 -> 285679 bytes .../texmf-dist/dvips/l3backend/l3backend-dvips.pro | 2 +- .../source/latex/l3backend/l3backend-basics.dtx | 18 +- .../source/latex/l3backend/l3backend-box.dtx | 6 +- .../source/latex/l3backend/l3backend-color.dtx | 291 +++++++++++++++++---- .../source/latex/l3backend/l3backend-draw.dtx | 6 +- .../source/latex/l3backend/l3backend-graphics.dtx | 2 +- .../source/latex/l3backend/l3backend-header.dtx | 6 +- .../source/latex/l3backend/l3backend-pdf.dtx | 14 +- .../l3experimental/l3benchmark/l3benchmark.dtx | 4 +- .../latex/l3experimental/l3color/l3color.dtx | 105 ++++---- .../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 +- .../source/latex/l3experimental/l3pdf/l3pdf.dtx | 4 +- .../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 | 4 +- .../latex/l3experimental/xgalley/xgalley.dtx | 4 +- .../tex/latex/l3backend/l3backend-dvipdfmx.def | 64 +++-- .../tex/latex/l3backend/l3backend-dvips.def | 147 +++++++++-- .../tex/latex/l3backend/l3backend-dvisvgm.def | 5 +- .../tex/latex/l3backend/l3backend-luatex.def | 61 +++-- .../tex/latex/l3backend/l3backend-pdftex.def | 59 +++-- .../tex/latex/l3backend/l3backend-xetex.def | 64 +++-- .../l3experimental/l3benchmark/l3benchmark.sty | 2 +- .../tex/latex/l3experimental/l3color/l3color.sty | 47 ++-- .../tex/latex/l3experimental/l3draw/l3draw.sty | 2 +- .../latex/l3experimental/l3graphics/l3graphics.sty | 2 +- .../tex/latex/l3experimental/l3pdf/l3pdf.sty | 2 +- .../latex/l3experimental/l3str/l3str-format.sty | 2 +- .../l3experimental/l3sys-shell/l3sys-shell.sty | 2 +- .../tex/latex/l3experimental/xcoffins/xcoffins.sty | 2 +- .../tex/latex/l3experimental/xgalley/l3galley.sty | 2 +- .../tex/latex/l3experimental/xgalley/xgalley.sty | 2 +- 58 files changed, 668 insertions(+), 327 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md index 5937d8be02c..959212901ad 100644 --- a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md @@ -6,6 +6,16 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2020-09-11] + +### Added +- Support for CIELAB separations with `dvips` + +### Fixed +- Some PDF object functions +- Separation color selection for `dvipdfmx`/XeTeX +- Logic for some aspects of CIELAB Separation color + ## [2020-09-01] ### Changed @@ -110,7 +120,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/2020-09-01...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2020-09-11...HEAD +[2020-09-11]: https://github.com/latex3/latex3/compare/2020-09-01...2020-09-11 [2020-09-01]: https://github.com/latex3/latex3/compare/2020-08-07...2020-09-01 [2020-08-07]: https://github.com/latex3/latex3/compare/2020-06-29...2020-08-07 [2020-06-29]: https://github.com/latex3/latex3/compare/2020-06-23...2020-06-29 diff --git a/Master/texmf-dist/doc/latex/l3backend/README.md b/Master/texmf-dist/doc/latex/l3backend/README.md index 86d0912e2cc..20a0301cf29 100644 --- a/Master/texmf-dist/doc/latex/l3backend/README.md +++ b/Master/texmf-dist/doc/latex/l3backend/README.md @@ -1,7 +1,7 @@ LaTeX3 Backend Drivers ====================== -Release 2020-09-01 +Release 2020-09-11 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/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md index 4a8085effb4..362059210b0 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md @@ -7,6 +7,11 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2020-09-11] + +### Fixed +- Typos in CIELAB support + ## [2020-09-01] ### Added @@ -24,7 +29,8 @@ this project uses date-based 'snapshot' version identifiers. ### Changed - Move drawing color functions to `l3color`, generalising the approach - with better `dvips` support + with better `dvips` support (viz. `\draw_color:n` becomes `\color_select:n`, + `\draw_color_[fill|stroke]:n` become `\color_[fill|stroke]:n`) ## [2020-07-17] @@ -168,7 +174,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/2020-09-01...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2020-09-11...HEAD +[2020-09-11]: https://github.com/latex3/latex3/compare/2020-09-01...2020-09-11 [2020-09-01]: https://github.com/latex3/latex3/compare/2020-08-07...2020-09-01 [2020-08-07]: https://github.com/latex3/latex3/compare/2020-07-17...2020-08-07 [2020-07-17]: https://github.com/latex3/latex3/compare/2020-06-18...2020-07-17 diff --git a/Master/texmf-dist/doc/latex/l3experimental/README.md b/Master/texmf-dist/doc/latex/l3experimental/README.md index a84954d21f1..7f968876102 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/README.md +++ b/Master/texmf-dist/doc/latex/l3experimental/README.md @@ -1,7 +1,7 @@ Experimental LaTeX3 Concepts ============================ -Release 2020-09-01 +Release 2020-09-11 Overview -------- diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf index f16030cee70..197eb04aa1e 100644 Binary files a/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf and b/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3color/l3color.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3color/l3color.pdf index 304b1941e3b..f2a6933a84b 100644 Binary files a/Master/texmf-dist/doc/latex/l3experimental/l3color/l3color.pdf and b/Master/texmf-dist/doc/latex/l3experimental/l3color/l3color.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf index 196604bf268..2226678a0eb 100644 Binary files a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf and b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf index e094bdd4ad5..ea0c2c3cd22 100644 Binary files a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf and b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf index 2faf2c17dc7..824722260e8 100644 Binary files a/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf and b/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf-code.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf-code.pdf index 7f780707201..b9936cc61eb 100644 Binary files a/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf-code.pdf and b/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf-code.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf.pdf index c52018c46a5..50f9afafa4b 100644 Binary files a/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf.pdf and b/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf index d245bb68bc6..9cde8e0e973 100644 Binary files a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf and b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf index 98c66b84219..6939e5e38e9 100644 Binary files a/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf and b/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf index b13cdfe00ca..3872ed532ba 100644 Binary files a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf and b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf b/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf index 0987073e2b0..aeb2cb074f3 100644 Binary files a/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf and b/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf b/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf index 4935f6eded8..9a3af8e4dcb 100644 Binary files a/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf and b/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf differ diff --git a/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro b/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro index 8d5bc5cbbd1..d459f8d47ae 100644 --- a/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro +++ b/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro @@ -22,7 +22,7 @@ /color.sc { } def /color.fc { } def TeXDict begin -/TeXcolorsetspotcolor { setcustomcolor } def +/TeXcolorseparation { setcolor } def end true setglobal /pdf.globaldict 4 dict def diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx index a90cd6bb059..abd972dca08 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 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -70,27 +70,27 @@ % \begin{macrocode} \ProvidesExplFile %<*dvipdfmx> - {l3backend-dvipdfmx.def}{2020-09-01}{} + {l3backend-dvipdfmx.def}{2020-09-11}{} {L3 backend support: dvipdfmx} % %<*dvips> - {l3backend-dvips.def}{2020-09-01}{} + {l3backend-dvips.def}{2020-09-11}{} {L3 backend support: dvips} % %<*dvisvgm> - {l3backend-dvisvgm.def}{2020-09-01}{} + {l3backend-dvisvgm.def}{2020-09-11}{} {L3 backend support: dvisvgm} % %<*luatex> - {l3backend-luatex.def}{2020-09-01}{} + {l3backend-luatex.def}{2020-09-11}{} {L3 backend support: PDF output (LuaTeX)} % %<*pdftex> - {l3backend-pdftex.def}{2020-09-01}{} + {l3backend-pdftex.def}{2020-09-11}{} {L3 backend support: PDF output (pdfTeX)} % %<*xetex> - {l3backend-xetex.def}{2020-09-01}{} + {l3backend-xetex.def}{2020-09-11}{} {L3 backend support: XeTeX} % % \end{macrocode} @@ -367,7 +367,9 @@ % \end{macro} % % \begin{macro}{\__kernel_backend_scope_begin:, \__kernel_backend_scope_end:} -% Scoping is done using the backend-specific specials. +% Scoping is done using the backend-specific specials. We use the versions +% originally from \texttt{xdvidfpmx} (\texttt{x:}) as these are well-tested +% \enquote{in the wild}. % \begin{macrocode} \cs_new_protected:Npn \__kernel_backend_scope_begin: { \__kernel_backend_literal:n { x:gsave } } diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx index 78cf2d9ebb1..039fa38c85b 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 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -250,7 +250,7 @@ % % \end{macrocode} % -% \subsection{\texttt{dvipdfmx} backend} +% \subsection{\texttt{dvipdfmx}/\XeTeX{} backend} % % \begin{macrocode} %<*dvipdfmx|xetex> @@ -280,7 +280,7 @@ % % \begin{macro}{\@@_backend_rotate:Nn} % \begin{macro}{\@@_backend_rotate_aux:Nn} -% Rotating in \texttt{(x)}dvipdmfx can be implemented using either PDF or +% Rotating in \texttt{dvipdmfx}/\XeTeX{} can be implemented using either PDF or % backend-specific code. The former approach however is not \enquote{aware} % of the content of boxes: this means that any embedded links would not be % adjusted by the rotation. As such, the backend-native approach is preferred: diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx index 165313c04b8..a9a86daebb1 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 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -311,57 +311,223 @@ % \begin{macro}{\@@_backend_select_separation:nn} % \begin{macrocode} \cs_new_protected:Npn \@@_backend_select_separation:nn #1#2 - { \@@_backend_select:n { setspotcolor ~ #1 ~ #2 } } + { \@@_backend_select:n { separation ~ #1 ~ #2 } } % \end{macrocode} % \end{macro} % -% \begin{macro}{\@@_backend_separation_init:nnnnn} -% \begin{macro}{\@@_backend_separation_init:nnn} -% \begin{macro}[EXP]{\@@_backend_separation_init:n} +% \begin{macro} +% { +% \@@_backend_separation_init:nnnnn, +% \@@_backend_separation_init:nxxnn, +% \@@_backend_separation_init_aux:nnnnn +% } +% \begin{macro}[EXP] +% { +% \@@_backend_separation_init_/DeviceCMYK:nnn , +% \@@_backend_separation_init_/DeviceGray:nnn , +% \@@_backend_separation_init_/DeviceRGB:nnn +% } +% \begin{macro}[EXP]{\@@_backend_separation_init_Device:Nn} +% \begin{macro}[EXP]{\@@_backend_separation_init:nnn} +% \begin{macro}[EXP]{\@@_backend_separation_init_count:n} +% \begin{macro}[EXP]{\@@_backend_separation_init_count:w} +% \begin{macro}[EXP]{\@@_backend_separation_init:nnnn} % \begin{macro}[EXP]{\@@_backend_separation_init:w} -% \begin{macro}{\@@_backend_separation_init_cielab:nnnnn} -% \begin{macro}{\@@_backend_separation_init_cielab:n} +% \begin{macro}[EXP]{\@@_backend_separation_init:n} +% \begin{macro}[EXP]{\@@_backend_separation_init:nw} +% \begin{macro}{\@@_backend_separation_init_CIELAB:nnn} % Initialising here means creating a small header set up plus massaging % some data. This comes about as we have to deal with PDF-focussed data, % which makes most sense \enquote{higher-up}. The approach is based on -% ideas from \url{https://tex.stackexchange.com/q/560093}. +% ideas from \url{https://tex.stackexchange.com/q/560093} plus using +% the PostScript manual for other aspects. % \begin{macrocode} \cs_new_protected:Npx \@@_backend_separation_init:nnnnn #1#2#3#4#5 { \bool_if:NT \g__kernel_backend_header_bool { \cs_if_exist:NTF \AtBeginDvi - { \AtBeginDvi } + { \exp_not:N \AtBeginDvi } { \use:n } { - \exp_not:N \@@_backend_separation_init:nnn - {#1} {#2} {#5} + \exp_not:N \@@_backend_separation_init_aux:nnnnn + {#1} {#2} {#3} {#4} {#5} } } } -\cs_new_protected:Npn \@@_backend_separation_init:nnn #1#2#3 +\cs_generate_variant:Nn \@@_backend_separation_init:nnnnn { nxx } +\cs_new_protected:Npn \@@_backend_separation_init_aux:nnnnn #1#2#3#4#5 { \__kernel_backend_literal:e { ! TeXDict ~ begin ~ - /color \int_use:N \g_@@_separation_int \c_space_tl - [#3] ~ aload ~ pop ~ ( \str_convert_pdfname:n {#1} ) ~ - find \@@_backend_separation_init:n {#2} customcolor ~ def ~ + /color \int_use:N \g_@@_separation_int + { + [ ~ + /Separation ~ ( \str_convert_pdfname:n {#1} ) ~ + [ ~ #2 ~ ] ~ + { + \cs_if_exist_use:cF { @@_backend_separation_init_ #2 :nnn } + { \@@_backend_separation_init:nnn } + {#3} {#4} {#5} + } + ] ~ setcolorspace + } ~ def ~ end } } +\cs_new:cpn { @@_backend_separation_init_ /DeviceCMYK :nnn } #1#2#3 + { \@@_backend_separation_init_Device:Nn 4 {#3} } +\cs_new:cpn { @@_backend_separation_init_ /DeviceGray :nnn } #1#2#3 + { \@@_backend_separation_init_Device:Nn 1 {#3} } +\cs_new:cpn { @@_backend_separation_init_ /DeviceRGB :nnn } #1#2#3 + { \@@_backend_separation_init_Device:Nn 2 {#3} } +\cs_new:Npn \@@_backend_separation_init_Device:Nn #1#2 + { + #2 ~ + \prg_replicate:nn {#1} + { #1 ~ index ~ mul ~ #1 ~ 1 ~ roll ~ } + \int_eval:n { #1 + 1 } ~ -1 ~ roll ~ pop + } +% \end{macrocode} +% For the generic case, we cannot use |/FunctionType 2| unfortunately, so +% we have to code that idea up in PostScript. Here, we will therefore assume +% that a range is \emph{always} given. First, we count values in each argument: +% at the backend level, we can assume there are always well-behaved with +% spaces present. +% \begin{macrocode} +\cs_new:Npn \@@_backend_separation_init:nnn #1#2#3 + { + \exp_args:Ne \@@_backend_separation_init:nnnn + { \@@_backend_separation_init_count:n {#2} } + {#1} {#2} {#3} + } +\cs_new:Npn \@@_backend_separation_init_count:n #1 + { \int_eval:n { 0 \@@_backend_separation_init_count:w #1 ~ \s_@@_stop } } +\cs_new:Npn \@@_backend_separation_init_count:w #1 ~ #2 \s_@@_stop + { + +1 + \tl_if_blank:nF {#2} + { \@@_backend_separation_init_count:w #2 \s_@@_stop } + } +% \end{macrocode} +% Now we implement the algorithm. In the terms in the PostScript manual, +% we have $\mathbf{N} = 1$ and $\mathbf{Domain} = [0~1]$, with +% $\mathbf{Range}$ as |#2|, $\mathbf{C0}$ as |#3| and $\mathbf{C1}$ +% as |#4|, with the number of output components in |#1|. So all we have +% to do is implement $y_{i} = \mathbf{C0}_{i} + x(\mathbf{C1}_{i} - +% \mathbf{C0}_{i})$ with lots of stack manipulation, then check the +% ranges. That's done by adding everything to the stack first, then using +% the fact we know all of the offsets. As manipulating the stack is tricky, +% we start by re-formatting the $\mathbf{C0}$ and $\mathbf{C1}$ arrays to +% be interleaved, and add a \texttt{0} to each pair: this is used +% to keep the stack of constant length while we are doing the first pass of +% mathematics. We then working through that list, calculating from the +% last to the first value before tidying up by removing all of the input +% values. We do that by first copying all of the final $y$ values to the +% end of the stack, then rolling everything so we can pop the now-unneeded +% material. +% \begin{macrocode} +\cs_new:Npn \@@_backend_separation_init:nnnn #1#2#3#4 + { + \@@_backend_separation_init:w #3 ~ \s_@@_stop #4 ~ \s_@@_stop + \prg_replicate:nn {#1} + { + pop ~ 1 ~ index ~ neg ~ 1 ~ index ~ add ~ + \int_eval:n { 3 * #1 } ~ index ~ mul ~ + 2 ~ index ~ add ~ + \int_eval:n { 3 * #1 } ~ #1 ~ roll ~ + } + \int_step_function:nnnN {#1} { -1 } { 1 } + \@@_backend_separation_init:n + \int_eval:n { 4 * #1 + 1 } ~ #1 ~ roll ~ + \prg_replicate:nn { 3 * #1 + 1 } { pop ~ } + \tl_if_blank:nF {#2} + { \@@_backend_separation_init:nw {#1} #2 ~ \s_@@_stop } + } +\cs_new:Npn \@@_backend_separation_init:w + #1 ~ #2 \s_@@_stop #3 ~ #4 \s_@@_stop + { + #1 ~ #3 ~ 0 ~ + \tl_if_blank:nF {#2} + { \@@_backend_separation_init:w #2 \s_@@_stop #4 \s_@@_stop } + } \cs_new:Npn \@@_backend_separation_init:n #1 + { \int_eval:n { #1 * 2 } ~ index ~ } +% \end{macrocode} +% Finally, we deal with the range limit if required. This is handled +% by splitting the range into pairs. It's then just a question of doing +% the comparisons, this time dropping everything except the desired +% result. +% \begin{macrocode} +\cs_new:Npn \@@_backend_separation_init:nw #1#2 ~ #3 ~ #4 \s_@@_stop { - \@@_backend_separation_init:w #1 /Device #1 /Device \s_@@_stop + #2 ~ #3 ~ + 2 ~ index ~ 2 ~ index ~ lt ~ + { ~ pop ~ exch ~ pop ~ } ~ + { ~ + 2 ~ index ~ 1 ~ index ~ gt ~ + { ~ exch ~ pop ~ exch ~ pop ~ } ~ + { ~ pop ~ pop ~ } ~ + ifelse ~ + } + ifelse ~ + #1 ~ 1 ~ roll ~ + \tl_if_blank:nF {#4} + { \@@_backend_separation_init:nw {#1} #4 \s_@@_stop } } -\cs_new:Npn \@@_backend_separation_init:w #1 /Device #2 /Device #3 \s_@@_stop - { \str_lowercase:n {#2} } % \end{macrocode} -% Currently no CIELAB support. +% CIELAB support uses the detail from the PostScript reference, page 227; +% other than that block of PostScript, this is the same as for PDF-based +% routes. % \begin{macrocode} -\cs_new_protected:Npn \@@_backend_separation_init_cielab:nnnnn #1#2#3#4#5 { } -\cs_new_protected:Npn \@@_backend_separation_init_cielab:n #1 { } +\cs_new_protected:Npn \@@_backend_separation_init_CIELAB:nnn #1#2#3 + { + \@@_backend_separation_init:nxxnn + {#2} + { + /CIEBasedABC ~ + << ~ + /RangeABC ~ [ ~ \c_@@_model_range_CIELAB_tl \c_space_tl ] ~ + /DecodeABC ~ + [ ~ + { ~ 16 ~ add ~ 116 ~ div ~ } ~ bind ~ + { ~ 500 ~ div ~ } ~ bind ~ + { ~ 200 ~ div ~ } ~ bind ~ + ] ~ + /MatrixABC ~ [ ~ 1 ~ 1 ~ 1 ~ 1 ~ 0 ~ 0 ~ 0 ~ 0 ~ -1 ~ ] ~ + /DecodeLMN ~ + [ ~ + { ~ + dup ~ 6 ~ 29 ~ div ~ ge ~ + { ~ dup ~ dup ~ mul ~ mul ~ ~ } ~ + { ~ 4 ~ 29 ~ div ~ sub ~ 108 ~ 841 ~ div ~ mul ~ } ~ + ifelse ~ + 0.9505 ~ mul ~ + } ~ bind ~ + { ~ + dup ~ 6 ~ 29 ~ div ~ ge ~ + { ~ dup ~ dup ~ mul ~ mul ~ } ~ + { ~ 4 ~ 29 ~ div ~ sub ~ 108 ~ 841 ~ div ~ mul ~ } ~ + ifelse ~ + } ~ bind ~ + { ~ + dup ~ 6 ~ 29 ~ div ~ ge ~ + { ~ dup ~ dup ~ mul ~ mul ~ } ~ + { ~ 4 ~ 29 ~ div ~ sub ~ 108 ~ 841 ~ div ~ mul ~ } ~ + ifelse ~ + 1.0890 ~ mul ~ + } ~ bind + ] ~ + /WhitePoint ~ + [ ~ \tl_use:c { c_@@_model_whitepoint_CIELAB_ #1 _tl } ~ ] ~ + >> + } + { \c_@@_model_range_CIELAB_tl } + { 100 ~ 0 ~ 0 } + {#3} + } % \end{macrocode} % \end{macro} % \end{macro} @@ -369,6 +535,11 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % \begin{macrocode} % @@ -386,16 +557,13 @@ % \end{macro} % % \begin{macro} -% {\@@_backend_separation_init:nnnnn, \@@_backend_separation_init_cielab:nnnnn} -% \begin{macro}{\@@_backend_separation_init_cielab:n} +% {\@@_backend_separation_init:nnnnn, \@@_backend_separation_init_CIELAB:nnn} % No support at present. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_separation_init:nnnnn #1#2#3#4#5 { } -\cs_new_protected:Npn \@@_backend_separation_init_cielab:nnnnn #1#2#3#4#5 { } -\cs_new_protected:Npn \@@_backend_separation_init_cielab:n #1 { } +\cs_new_protected:Npn \@@_backend_separation_init_CIELAB:nnnnnn #1#2#3 { } % \end{macrocode} % \end{macro} -% \end{macro} % % \begin{macrocode} % @@ -406,6 +574,7 @@ % \end{macrocode} % % \begin{macro}{\@@_backend_select_separation:nn} +% \begin{macro}{\@@_backend_select:n} % Different syntaxes here as the stacks are accessed very differently. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_select_separation:nn #1#2 @@ -415,32 +584,42 @@ %<*luatex|pdftex> { \@@_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } } % +%<*dvipdfmx|xetex> +\cs_new_protected:Npn \@@_backend_select:n #1 + { + \__kernel_backend_literal:n { pdf: bc ~ #1 } + \group_insert_after:N \@@_backend_reset: + } +% % \end{macrocode} % \end{macro} +% \end{macro} % % \begin{macro}{\@@_backend_separation_init:nnnnn} % \begin{macro}{\@@_backend_separation_init:n} -% \begin{macro}{\@@_backend_separation_init_cielab:nnnnn} -% \begin{macro}{\@@_backend_separation_init_cielab:n} +% \begin{macro}{\@@_backend_separation_init_CIELAB:nnn} % Initialising the PDF structures needs two parts: creating an object % containing the \enquote{real} name of the Separation, then adding a reference % to that to each page. The latter uses the internal name of the \texttt{cs}. % For \texttt{dvipdfmx}/\XeTeX{}, the backend does most of the work so we need a -% simplified version. +% simplified version. We use a separate object for the tint transformation +% following the model in the PDF reference. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_separation_init:nnnnn #1#2#3#4#5 { + \pdf_object_now:nx { dict } + { + /FunctionType ~ 2 + /Domain ~ [0 ~ 1] + \tl_if_blank:nF {#3} { /Range ~ [#3] } + /C0 ~ [#4] ~ + /C1 ~ [#5] /N ~ 1 + } \@@_backend_separation_init:n { /Separation / \str_convert_pdfname:n {#1} ~ #2 ~ - << - /FunctionType ~ 2 - /Domain ~ [0 ~ 1] - \tl_if_blank:nF {#3} { /Range ~ [#3] } - /C0 ~ [#4] ~ - /C1 ~ [#5] /N ~ 1 - >> + \pdf_object_last: } %<*luatex|pdftex> \use:x @@ -459,7 +638,7 @@ %<*dvipdfmx|xetex> \__kernel_backend_literal:x { - pdf:obj ~ @ color \int_use:N \g_@@_separation_int \c_space_tl + pdf:obj ~ @color \int_use:N \g_@@_separation_int \c_space_tl [#1] } % @@ -471,37 +650,37 @@ % For CIELAB colors, we need one object per document for the illuminant, % plus initialisation of the color space referencing that object. % \begin{macrocode} -\cs_new_protected:Npn \@@_backend_separation_init_cielab:nnnnn #1#2#3#4#5 +\cs_new_protected:Npn \@@_backend_separation_init_CIELAB:nnn #1#2#3 { + \pdf_object_if_exist:nF { @@_illuminant_CIELAB_ #1 } + { + \pdf_object_new:nn { @@_illuminant_CIELAB_ #1 } { array } + \pdf_object_write:nx { @@_illuminant_CIELAB_ #1 } + { + /Lab ~ + << + /WhitePoint ~ + [ \tl_use:c { c_@@_model_whitepoint_CIELAB_ #1 _tl } ] + /Range ~ [ \c_@@_model_range_CIELAB_tl ] + >> + } + } \@@_backend_separation_init:nnnnn {#2} - { \pdf_object_ref:n { @@_illuminant_cielab_ #1 } } - { \c_@@_model_range_lab_tl } + { \pdf_object_ref:n { @@_illuminant_CIELAB_ #1 } } + { \c_@@_model_range_CIELAB_tl } { 100 ~ 0 ~ 0 } - { #3 ~ #4 ~ #5 } + {#3} } \cs_if_exist:NF \pdf_object_now:nn - { \cs_gset_protected:Npn \@@_backend_separation_init_cielab:nnnnn #1#2#3#4#5 { } } -\cs_new_protected:Npn \@@_backend_separation_init_cielab:n #1 { - \pdf_object_new:nn { @@_illuminant_cielab_ #1 } { array } - \pdf_object_write:nx { @@_illuminant_cielab_ #1 } - { - /Lab ~ - << - /WhitePoint ~ - [ \tl_use:c { c_@@_model_whitepoint_cielab_ #1 _tl } ] - /Range ~ [ \c_@@_model_range_lab_tl ] - >> - } + \cs_gset_protected:Npn \@@_backend_separation_init_CIELAB:nnn #1#2#3 + { } } -\cs_if_exist:NF \pdf_object_new:nn - { \cs_gset_protected:Npn \@@_backend_separation_init_cielab:n #1 { } } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} -% \end{macro} % % \begin{macrocode} % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx index 00e9144e4a0..f28bfd13bf0 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 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -581,7 +581,9 @@ % matrix into rotations and a scaling, then use those operations as they % are handled by the backend. (There is backend support for matrix operations in % \texttt{dvipdfmx}/\XeTeX{}, but as a matched pair so not suitable for the -% \enquote{stand alone} transformation set up here.) +% \enquote{stand alone} transformation set up here.) The specials used here +% are from \texttt{xdvipdfmx} originally: they are well-tested, but probably +% equivalent to the \texttt{pdf:} versions! % \begin{macrocode} \cs_new_protected:Npn \@@_backend_cm:nnnn #1#2#3#4 { diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx index f4eeebbfcbc..bac80fa884d 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 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx index c2d0f874522..73cf1bc5ad3 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 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -67,12 +67,12 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{TeXcolorsetspotcolor, setspotcolor} +% \begin{macro}{TeXcolorseparation, separation} % Support for separation/spot colors: this strange naming is so % things work with the color stack. % \begin{macrocode} TeXDict begin -/TeXcolorsetspotcolor { setcustomcolor } def +/TeXcolorseparation { setcolor } def end % \end{macrocode} % \end{macro} diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx index f0f20e1b9a3..0763c411ebe 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 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -773,16 +773,18 @@ % % \begin{macro}[EXP]{\@@_backend_annotation_last:} % A tiny amount of extra data gets added here; we use \texttt{x}-type -% expansion to get the space in the right place and form. +% expansion to get the space in the right place and form. The \enquote{extra} +% space in the \LuaTeX{} version is \emph{required} as it is consumed in +% finding the end of the keyword. % \begin{macrocode} \cs_new:Npx \@@_backend_annotation_last: { \exp_not:N \int_value:w %<*luatex> - \exp_not:N \tex_pdffeedback:D lastannot + \exp_not:N \tex_pdffeedback:D lastannot ~ % %<*pdftex> - \exp_not:N \tex_pdfannot:D + \exp_not:N \tex_pdflastannot:D % \c_space_tl 0 ~ R } @@ -831,7 +833,7 @@ { \exp_not:N \int_value:w %<*luatex> - \exp_not:N \tex_pdffeedback:D lastlink + \exp_not:N \tex_pdffeedback:D lastlink ~ % %<*pdftex> \exp_not:N \tex_pdflastlink:D @@ -964,7 +966,7 @@ %<*pdftex> { \tex_pdflastobj:D } % - \prop_gput:Nnn \exp_not:N \g_@@_backend_object_prop {#1} {#2} + \prop_gput:Nnn \g_@@_backend_object_prop {#1} {#2} } \cs_new:Npn \@@_backend_object_ref:n #1 { \int_use:c { c_@@_backend_object_ \tl_to_str:n {#1} _int } ~ 0 ~ R } diff --git a/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx b/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx index 80079c1c416..370723ec90d 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 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -129,7 +129,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3benchmark}{2020-09-01}{} +\ProvidesExplPackage{l3benchmark}{2020-09-11}{} {L3 Experimental benchmarking} % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx b/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx index ec8266d06f3..f644bf5fdee 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -350,9 +350,10 @@ % example those involving separations (see % \url{https://helpx.adobe.com/indesign/using/spot-process-colors.html} % for details of the use of separations in print). Color models may be split -% into families; in the case of the basic \texttt{cmyk}, \texttt{gray} -% and \texttt{rgb} models, the family and the model itself are synonymous. This -% is not generally the case: see the PDF reference for more details. +% into families; for the standard device-based color models (\texttt{DeviceCMYK}, +% \texttt{DeviceRGB}, \texttt{DeviceGray}), these are synonymous. This +% is not generally the case: see the PDF reference for more details. (Note that +% \pkg{l3color} uses the shorter names \texttt{cmyk}, etc.) % % \begin{function}{\color_model_new:nnn} % \begin{syntax} @@ -375,7 +376,7 @@ % name of a spot color ink. Such a \meta{name} may contain spaces, etc., % which are not permitted in the \meta{model}. % \item \texttt{alternative-model} An alternative device colorspace, one of -% \texttt{cmyk}, \texttt{rgb}, \texttt{gray} or \texttt{cielab}. The three +% \texttt{cmyk}, \texttt{rgb}, \texttt{gray} or \texttt{CIELAB}. The three % parameter-based models work as described above; see below for % details of CIELAB colors. % \item \texttt{alternative-values} A comma-separated list of values @@ -384,7 +385,7 @@ % \end{itemize} % % CIELAB color separations are created using the -% \texttt{alternative-model = cielab} setting. These colors must also have an +% \texttt{alternative-model = CIELAB} setting. These colors must also have an % \texttt{illuminant} key, one of \texttt{a}, \texttt{c}, \texttt{e}, % \texttt{d50}, \texttt{d55}, \texttt{d65} or \texttt{d75}. The % \texttt{alternative-values} in this case are the three parameters $L*$, $a*$ @@ -412,7 +413,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3color}{2020-09-01}{} +\ProvidesExplPackage{l3color}{2020-09-11}{} {L3 Experimental color support} % \end{macrocode} % @@ -1525,47 +1526,34 @@ % % \begin{variable} % { -% \c_@@_model_whitepoint_cielab_a_tl , -% \c_@@_model_whitepoint_cielab_b_tl , -% \c_@@_model_whitepoint_cielab_e_tl , -% \c_@@_model_whitepoint_cielab_d50_tl , -% \c_@@_model_whitepoint_cielab_d55_tl , -% \c_@@_model_whitepoint_cielab_d65_tl , -% \c_@@_model_whitepoint_cielab_d75_tl +% \c_@@_model_whitepoint_CIELAB_a_tl , +% \c_@@_model_whitepoint_CIELAB_b_tl , +% \c_@@_model_whitepoint_CIELAB_e_tl , +% \c_@@_model_whitepoint_CIELAB_d50_tl , +% \c_@@_model_whitepoint_CIELAB_d55_tl , +% \c_@@_model_whitepoint_CIELAB_d65_tl , +% \c_@@_model_whitepoint_CIELAB_d75_tl % } % Whitepoint data for the CIELAB profiles. % \begin{macrocode} -\tl_const:Nn \c_@@_model_whitepoint_cielab_a_tl { 1.0985 ~ 1 ~ 0.3558 } -\tl_const:Nn \c_@@_model_whitepoint_cielab_b_tl { 0.9807~ 1 ~ 1.1822 } -\tl_const:Nn \c_@@_model_whitepoint_cielab_e_tl { 1 ~ 1 ~ 1 } -\tl_const:cn { c_@@_model_whitepoint_cielab_d50_tl } { 0.9642 ~, 1 ~ 0.8251 } -\tl_const:cn { c_@@_model_whitepoint_cielab_d55_tl } { 0.9568 ~ 1 ~ 0.9214 } -\tl_const:cn { c_@@_model_whitepoint_cielab_d65_tl } { 0.9504 ~ 1 ~ 1.0888 } -\tl_const:cn { c_@@_model_whitepoint_cielab_d75_tl } { 0.9497 ~ 1 ~ 1.2261 } +\tl_const:Nn \c_@@_model_whitepoint_CIELAB_a_tl { 1.0985 ~ 1 ~ 0.3558 } +\tl_const:Nn \c_@@_model_whitepoint_CIELAB_b_tl { 0.9807 ~ 1 ~ 1.1822 } +\tl_const:Nn \c_@@_model_whitepoint_CIELAB_e_tl { 1 ~ 1 ~ 1 } +\tl_const:cn { c_@@_model_whitepoint_CIELAB_d50_tl } { 0.9642 ~ 1 ~ 0.8251 } +\tl_const:cn { c_@@_model_whitepoint_CIELAB_d55_tl } { 0.9568 ~ 1 ~ 0.9214 } +\tl_const:cn { c_@@_model_whitepoint_CIELAB_d65_tl } { 0.9504 ~ 1 ~ 1.0888 } +\tl_const:cn { c_@@_model_whitepoint_CIELAB_d75_tl } { 0.9497 ~ 1 ~ 1.2261 } % \end{macrocode} % \end{variable} % -% \begin{variable}{\c_@@_model_range_cielab_tl} +% \begin{variable}{\c_@@_model_range_CIELAB_tl} % The range for CIELAB color spaces. % \begin{macrocode} -\tl_const:Nn \c_@@_model_range_cielab_tl { -128 ~ 127 ~ -128 ~ 127 } +\tl_const:Nn \c_@@_model_range_CIELAB_tl { 0 ~ 100 ~ -128 ~ 127 ~ -128 ~ 127 } % \end{macrocode} % \end{variable} % % \begin{macro}{\color_model_new:nnn, \@@_model_new:nnn} -% \begin{macro}{\@@_model_separation:n} -% \begin{macro}{\@@_model_separation:nn} -% \begin{macro}{\@@_model_separation:nnn} -% \begin{macro}{\@@_model_separation:w} -% \begin{macro} -% { -% \@@_model_separation_cmyk:nnnnnn , -% \@@_model_separation_gray:nnnnnn , -% \@@_model_separation_rgb:nnnnnn -% } -% \begin{macro}{\@@_model_convert:nnn} -% \begin{macro}{\@@_model_separation_cielab:nnnnnn} -% \begin{macro}{\@@_model_separation_cielab:nnnnnnn} % Set up a new model: in general this has to be handled by a family-dependent % function. To avoid some \enquote{interesting} questions with casing, we % fold the case of the family name. The key--value list should always be @@ -1596,6 +1584,21 @@ } } % \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@_model_separation:n} +% \begin{macro}{\@@_model_separation:nn} +% \begin{macro}{\@@_model_separation:nnn} +% \begin{macro}{\@@_model_separation:w} +% \begin{macro} +% { +% \@@_model_separation_cmyk:nnnnnn , +% \@@_model_separation_gray:nnnnnn , +% \@@_model_separation_rgb:nnnnnn +% } +% \begin{macro}{\@@_model_convert:nnn} +% \begin{macro}{\@@_model_separation_CIELAB:nnnnnn} +% \begin{macro}{\@@_model_separation_CIELAB:nnnnnnn} % Separations must have a \enquote{real} name, which is pretty easy to find. % \begin{macrocode} \cs_new_protected:Npn \@@_model_separation:n #1 @@ -1748,16 +1751,16 @@ % Setting up for CIELAB needs a bit more work: there is the illuminant and % the need for an appropriate object. % \begin{macrocode} -\cs_new_protected:Npn \@@_model_separation_cielab:nnnnnn #1#2#3#4#5#6 +\cs_new_protected:Npn \@@_model_separation_CIELAB:nnnnnn #1#2#3#4#5#6 { \prop_get:NnNF \l_@@_internal_prop { illuminant } \l_@@_internal_tl { \__kernel_msg_error:nnn { color } - { cielab-requires-illuminant } {#1} + { CIELAB-requires-illuminant } {#1} \tl_set:Nn \l_@@_internal_tl { d50 } } - \exp_args:NV \@@_model_separation_cielab:nnnnnnn + \exp_args:NV \@@_model_separation_CIELAB:nnnnnnn \l_@@_internal_tl {#1} {#2} {#3} {#4} {#5} {#6} } % \end{macrocode} @@ -1767,12 +1770,11 @@ % cannot be converted to anything else, we fallback to producing black: the % user should set up a second model for colors set up this way. % \begin{macrocode} -\cs_new_protected:Npn \@@_model_separation_cielab:nnnnnnn #1#2#3#4#5#6#7 +\cs_new_protected:Npn \@@_model_separation_CIELAB:nnnnnnn #1#2#3#4#5#6#7 { - \tl_if_exist:cTF { c_@@_model_whitepoint_cielab_ #1 _tl } + \tl_if_exist:cTF { c_@@_model_whitepoint_CIELAB_ #1 _tl } { - \@@_backend_separation_init_cielab:n {#1} - \@@_backend_separation_init_cielab:nnnnn {#2} {#3} {#4} {#5} {#6} + \@@_backend_separation_init_CIELAB:nnn {#1} {#3} { #4 ~ #5 ~ #6 } \cs_new:cpn { @@_convert_ #2 _cmyk:w } ##1 ~ ##2 \s_@@_stop { 0 ~ 0 ~ 0 ~ 1 } \cs_new:cpn { @@_convert_ #2 _rgb:w } ##1 ~ ##2 \s_@@_stop @@ -1782,7 +1784,7 @@ } { \__kernel_msg_error:nnn { color } - { unknown-cielab-illuminant } {#1} + { unknown-CIELAB-illuminant } {#1} } } % \end{macrocode} @@ -1794,7 +1796,6 @@ % \end{macro} % \end{macro} % \end{macro} -% \end{macro} % % \subsection{Diagnostics} % @@ -1830,12 +1831,12 @@ % \subsection{Messages} % % \begin{macrocode} -\__kernel_msg_new:nnnn { color } { cielab-requires-illuminant } +\__kernel_msg_new:nnnn { color } { CIELAB-requires-illuminant } { CIELAB~color~space~'#1'~require~an~illuminant. } { LaTeX~has~been~asked~to~create~a~separation~color~space~using~ CIELAB~specifications,~but~no~\\ \\ - \iow_indent:n { illuminant = } + \iow_indent:n { illuminant~=~ } \\ \\ key~was~given~with~the~correct~information.~LaTeX~will~use~illuminant~ 'd50'~for~recovery. @@ -1857,7 +1858,7 @@ { LaTeX~has~been~asked~to~create~a~separation~color~space,~ but~no~\\ \\ - \iow_indent:n { alternative-model = } + \iow_indent:n { alternative-model~=~ } \\ \\ key~was~given~with~the~correct~information. } @@ -1866,7 +1867,7 @@ { LaTeX~has~been~asked~to~create~a~separation~color~space,~ but~no~\\ \\ - \iow_indent:n { alternative-values = } + \iow_indent:n { alternative-values~=~ } \\ \\ key~was~given~with~the~correct~information. } @@ -1875,7 +1876,7 @@ { LaTeX~has~been~asked~to~create~a~separation~color~space,~ but~no~\\ \\ - \iow_indent:n { name = } + \iow_indent:n { name~=~ } \\ \\ key~was~given~with~the~correct~information. } @@ -1890,7 +1891,7 @@ { LaTeX~has~been~asked~to~create~a~separation~color~space,~ but~the~model~given~as\\ \\ - \iow_indent:n { alternative-model = } + \iow_indent:n { alternative-model~=~ } \\ \\ is~unknown. } @@ -1900,7 +1901,7 @@ LaTeX~has~been~asked~to~export~a~color~in~format~'#1',~ but~this~has~never~been~defined. } -\__kernel_msg_new:nnnn { color } { unknown-cielab-illuminant } +\__kernel_msg_new:nnnn { color } { unknown-CIELAB-illuminant } { Unknown~illuminant~model~'#1'. } { LaTeX~has~been~asked~to~use~create~a~color~space~using~CIELAB~ 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 940dd8c31de..afc4616dfbc 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 2020-09-01} +% \date{Released 2020-09-11} % % \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 50a8fd81c16..ffe0cd95884 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 2020-09-01} +% \date{Released 2020-09-11} % % \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 cba6efdb760..9f87bf357c0 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 2020-09-01} +% \date{Released 2020-09-11} % % \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 b6d9ba08372..aafe12bcc2f 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 2020-09-01} +% \date{Released 2020-09-11} % % \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 88d08888843..99edbf19921 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 2020-09-01} +% \date{Released 2020-09-11} % % \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 0ca26af807e..e6b35bf7908 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 2020-09-01} +% \date{Released 2020-09-11} % % \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 4b3298e0d1a..53cc03b98e7 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 2020-09-01} +% \date{Released 2020-09-11} % % \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 6329c05fb9d..e30bcf6d193 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 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx index 841eae28c0d..6d1e5e96aae 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 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -1136,7 +1136,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3draw}{2020-09-01}{} +\ProvidesExplPackage{l3draw}{2020-09-11}{} {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 15f963e60d0..6d74ceebb96 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 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -240,7 +240,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3graphics}{2020-09-01}{} +\ProvidesExplPackage{l3graphics}{2020-09-11}{} {L3 Experimental graphics inclusion support} % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx b/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx index 7be0907d0b8..e5af45a9b80 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -190,7 +190,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3pdf}{2020-09-01}{} +\ProvidesExplPackage{l3pdf}{2020-09-11}{} {L3 Experimental core PDF 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 8264409fb4f..775e5d809f5 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 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -166,7 +166,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3str-format}{2020-09-01}{} +\ProvidesExplPackage{l3str-format}{2020-09-11}{} {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 f3a06c643b0..807e7383d3f 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 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -135,7 +135,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3sys-shell}{2020-09-01}{} +\ProvidesExplPackage{l3sys-shell}{2020-09-11}{} {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 d890d28428c..4286442045a 100644 --- a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx @@ -56,7 +56,7 @@ % }^^A % } % -% \date{Released 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -675,7 +675,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xcoffins}{2020-09-01}{} +\ProvidesExplPackage{xcoffins}{2020-09-11}{} {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 73779d70a31..5de6c7c4aae 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 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -686,7 +686,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3galley}{2020-09-01}{} +\ProvidesExplPackage{l3galley}{2020-09-11}{} {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 77557731ad1..52667441b65 100644 --- a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Released 2020-09-01} +% \date{Released 2020-09-11} % % \maketitle % @@ -734,7 +734,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xgalley}{2020-09-01}{} +\ProvidesExplPackage{xgalley}{2020-09-11}{} {L3 Experimental galley} \RequirePackage{xparse,xtemplate,l3galley} % \end{macrocode} diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def index 54c4b43301d..ecef294a754 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvipdfmx.def}{2020-09-01}{} + {l3backend-dvipdfmx.def}{2020-09-11}{} {L3 backend support: dvipdfmx} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -87,19 +87,26 @@ } \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2 { \__color_backend_select:n { @#1 ~ [#2] } } +\cs_new_protected:Npn \__color_backend_select:n #1 + { + \__kernel_backend_literal:n { pdf: bc ~ #1 } + \group_insert_after:N \__color_backend_reset: + } \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { + \pdf_object_now:nx { dict } + { + /FunctionType ~ 2 + /Domain ~ [0 ~ 1] + \tl_if_blank:nF {#3} { /Range ~ [#3] } + /C0 ~ [#4] ~ + /C1 ~ [#5] /N ~ 1 + } \__color_backend_separation_init:n { /Separation / \str_convert_pdfname:n {#1} ~ #2 ~ - << - /FunctionType ~ 2 - /Domain ~ [0 ~ 1] - \tl_if_blank:nF {#3} { /Range ~ [#3] } - /C0 ~ [#4] ~ - /C1 ~ [#5] /N ~ 1 - >> + \pdf_object_last: } } \cs_if_exist:NF \pdf_object_now:nn @@ -108,36 +115,37 @@ { \__kernel_backend_literal:x { - pdf:obj ~ @ color \int_use:N \g__color_separation_int \c_space_tl + pdf:obj ~ @color \int_use:N \g__color_separation_int \c_space_tl [#1] } } -\cs_new_protected:Npn \__color_backend_separation_init_cielab:nnnnn #1#2#3#4#5 +\cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 { + \pdf_object_if_exist:nF { __color_illuminant_CIELAB_ #1 } + { + \pdf_object_new:nn { __color_illuminant_CIELAB_ #1 } { array } + \pdf_object_write:nx { __color_illuminant_CIELAB_ #1 } + { + /Lab ~ + << + /WhitePoint ~ + [ \tl_use:c { c__color_model_whitepoint_CIELAB_ #1 _tl } ] + /Range ~ [ \c__color_model_range_CIELAB_tl ] + >> + } + } \__color_backend_separation_init:nnnnn {#2} - { \pdf_object_ref:n { __color_illuminant_cielab_ #1 } } - { \c__color_model_range_lab_tl } + { \pdf_object_ref:n { __color_illuminant_CIELAB_ #1 } } + { \c__color_model_range_CIELAB_tl } { 100 ~ 0 ~ 0 } - { #3 ~ #4 ~ #5 } + {#3} } \cs_if_exist:NF \pdf_object_now:nn - { \cs_gset_protected:Npn \__color_backend_separation_init_cielab:nnnnn #1#2#3#4#5 { } } -\cs_new_protected:Npn \__color_backend_separation_init_cielab:n #1 { - \pdf_object_new:nn { __color_illuminant_cielab_ #1 } { array } - \pdf_object_write:nx { __color_illuminant_cielab_ #1 } - { - /Lab ~ - << - /WhitePoint ~ - [ \tl_use:c { c__color_model_whitepoint_cielab_ #1 _tl } ] - /Range ~ [ \c__color_model_range_lab_tl ] - >> - } - } -\cs_if_exist:NF \pdf_object_new:nn - { \cs_gset_protected:Npn \__color_backend_separation_init_cielab:n #1 { } } + \cs_gset_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 + { } + } \cs_new_protected:Npn \__color_backend_fill_cmyk:n #1 { \__kernel_backend_literal_pdf:n { #1 ~ k } } \cs_new_protected:Npn \__color_backend_fill_gray:n #1 diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def index 7065ad419dd..84ff37e80c0 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvips.def}{2020-09-01}{} + {l3backend-dvips.def}{2020-09-11}{} {L3 backend support: dvips} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -111,40 +111,157 @@ \cs_new_protected:Npn \__color_backend_reset: { \__kernel_backend_literal:n { color~pop } } \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2 - { \__color_backend_select:n { setspotcolor ~ #1 ~ #2 } } + { \__color_backend_select:n { separation ~ #1 ~ #2 } } \cs_new_protected:Npx \__color_backend_separation_init:nnnnn #1#2#3#4#5 { \bool_if:NT \g__kernel_backend_header_bool { \cs_if_exist:NTF \AtBeginDvi - { \AtBeginDvi } + { \exp_not:N \AtBeginDvi } { \use:n } { - \exp_not:N \__color_backend_separation_init:nnn - {#1} {#2} {#5} + \exp_not:N \__color_backend_separation_init_aux:nnnnn + {#1} {#2} {#3} {#4} {#5} } } } -\cs_new_protected:Npn \__color_backend_separation_init:nnn #1#2#3 +\cs_generate_variant:Nn \__color_backend_separation_init:nnnnn { nxx } +\cs_new_protected:Npn \__color_backend_separation_init_aux:nnnnn #1#2#3#4#5 { \__kernel_backend_literal:e { ! TeXDict ~ begin ~ - /color \int_use:N \g__color_separation_int \c_space_tl - [#3] ~ aload ~ pop ~ ( \str_convert_pdfname:n {#1} ) ~ - find \__color_backend_separation_init:n {#2} customcolor ~ def ~ + /color \int_use:N \g__color_separation_int + { + [ ~ + /Separation ~ ( \str_convert_pdfname:n {#1} ) ~ + [ ~ #2 ~ ] ~ + { + \cs_if_exist_use:cF { __color_backend_separation_init_ #2 :nnn } + { \__color_backend_separation_init:nnn } + {#3} {#4} {#5} + } + ] ~ setcolorspace + } ~ def ~ end } } -\cs_new:Npn \__color_backend_separation_init:n #1 +\cs_new:cpn { __color_backend_separation_init_ /DeviceCMYK :nnn } #1#2#3 + { \__color_backend_separation_init_Device:Nn 4 {#3} } +\cs_new:cpn { __color_backend_separation_init_ /DeviceGray :nnn } #1#2#3 + { \__color_backend_separation_init_Device:Nn 1 {#3} } +\cs_new:cpn { __color_backend_separation_init_ /DeviceRGB :nnn } #1#2#3 + { \__color_backend_separation_init_Device:Nn 2 {#3} } +\cs_new:Npn \__color_backend_separation_init_Device:Nn #1#2 + { + #2 ~ + \prg_replicate:nn {#1} + { #1 ~ index ~ mul ~ #1 ~ 1 ~ roll ~ } + \int_eval:n { #1 + 1 } ~ -1 ~ roll ~ pop + } +\cs_new:Npn \__color_backend_separation_init:nnn #1#2#3 + { + \exp_args:Ne \__color_backend_separation_init:nnnn + { \__color_backend_separation_init_count:n {#2} } + {#1} {#2} {#3} + } +\cs_new:Npn \__color_backend_separation_init_count:n #1 + { \int_eval:n { 0 \__color_backend_separation_init_count:w #1 ~ \s__color_stop } } +\cs_new:Npn \__color_backend_separation_init_count:w #1 ~ #2 \s__color_stop { - \__color_backend_separation_init:w #1 /Device #1 /Device \s__color_stop + +1 + \tl_if_blank:nF {#2} + { \__color_backend_separation_init_count:w #2 \s__color_stop } + } +\cs_new:Npn \__color_backend_separation_init:nnnn #1#2#3#4 + { + \__color_backend_separation_init:w #3 ~ \s__color_stop #4 ~ \s__color_stop + \prg_replicate:nn {#1} + { + pop ~ 1 ~ index ~ neg ~ 1 ~ index ~ add ~ + \int_eval:n { 3 * #1 } ~ index ~ mul ~ + 2 ~ index ~ add ~ + \int_eval:n { 3 * #1 } ~ #1 ~ roll ~ + } + \int_step_function:nnnN {#1} { -1 } { 1 } + \__color_backend_separation_init:n + \int_eval:n { 4 * #1 + 1 } ~ #1 ~ roll ~ + \prg_replicate:nn { 3 * #1 + 1 } { pop ~ } + \tl_if_blank:nF {#2} + { \__color_backend_separation_init:nw {#1} #2 ~ \s__color_stop } + } +\cs_new:Npn \__color_backend_separation_init:w + #1 ~ #2 \s__color_stop #3 ~ #4 \s__color_stop + { + #1 ~ #3 ~ 0 ~ + \tl_if_blank:nF {#2} + { \__color_backend_separation_init:w #2 \s__color_stop #4 \s__color_stop } + } +\cs_new:Npn \__color_backend_separation_init:n #1 + { \int_eval:n { #1 * 2 } ~ index ~ } +\cs_new:Npn \__color_backend_separation_init:nw #1#2 ~ #3 ~ #4 \s__color_stop + { + #2 ~ #3 ~ + 2 ~ index ~ 2 ~ index ~ lt ~ + { ~ pop ~ exch ~ pop ~ } ~ + { ~ + 2 ~ index ~ 1 ~ index ~ gt ~ + { ~ exch ~ pop ~ exch ~ pop ~ } ~ + { ~ pop ~ pop ~ } ~ + ifelse ~ + } + ifelse ~ + #1 ~ 1 ~ roll ~ + \tl_if_blank:nF {#4} + { \__color_backend_separation_init:nw {#1} #4 \s__color_stop } + } +\cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 + { + \__color_backend_separation_init:nxxnn + {#2} + { + /CIEBasedABC ~ + << ~ + /RangeABC ~ [ ~ \c__color_model_range_CIELAB_tl \c_space_tl ] ~ + /DecodeABC ~ + [ ~ + { ~ 16 ~ add ~ 116 ~ div ~ } ~ bind ~ + { ~ 500 ~ div ~ } ~ bind ~ + { ~ 200 ~ div ~ } ~ bind ~ + ] ~ + /MatrixABC ~ [ ~ 1 ~ 1 ~ 1 ~ 1 ~ 0 ~ 0 ~ 0 ~ 0 ~ -1 ~ ] ~ + /DecodeLMN ~ + [ ~ + { ~ + dup ~ 6 ~ 29 ~ div ~ ge ~ + { ~ dup ~ dup ~ mul ~ mul ~ ~ } ~ + { ~ 4 ~ 29 ~ div ~ sub ~ 108 ~ 841 ~ div ~ mul ~ } ~ + ifelse ~ + 0.9505 ~ mul ~ + } ~ bind ~ + { ~ + dup ~ 6 ~ 29 ~ div ~ ge ~ + { ~ dup ~ dup ~ mul ~ mul ~ } ~ + { ~ 4 ~ 29 ~ div ~ sub ~ 108 ~ 841 ~ div ~ mul ~ } ~ + ifelse ~ + } ~ bind ~ + { ~ + dup ~ 6 ~ 29 ~ div ~ ge ~ + { ~ dup ~ dup ~ mul ~ mul ~ } ~ + { ~ 4 ~ 29 ~ div ~ sub ~ 108 ~ 841 ~ div ~ mul ~ } ~ + ifelse ~ + 1.0890 ~ mul ~ + } ~ bind + ] ~ + /WhitePoint ~ + [ ~ \tl_use:c { c__color_model_whitepoint_CIELAB_ #1 _tl } ~ ] ~ + >> + } + { \c__color_model_range_CIELAB_tl } + { 100 ~ 0 ~ 0 } + {#3} } -\cs_new:Npn \__color_backend_separation_init:w #1 /Device #2 /Device #3 \s__color_stop - { \str_lowercase:n {#2} } -\cs_new_protected:Npn \__color_backend_separation_init_cielab:nnnnn #1#2#3#4#5 { } -\cs_new_protected:Npn \__color_backend_separation_init_cielab:n #1 { } \cs_new_protected:Npn \__color_backend_fill_cmyk:n #1 { \__kernel_backend_postscript:n { /color.fc { #1 ~ setcmykcolor } def } } \cs_new_protected:Npn \__color_backend_fill_gray:n #1 diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def index fed3c0d3721..a2616cd5741 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvisvgm.def}{2020-09-01}{} + {l3backend-dvisvgm.def}{2020-09-11}{} {L3 backend support: dvisvgm} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -122,8 +122,7 @@ { \__kernel_backend_literal:n { color~pop } } \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2 { } \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { } -\cs_new_protected:Npn \__color_backend_separation_init_cielab:nnnnn #1#2#3#4#5 { } -\cs_new_protected:Npn \__color_backend_separation_init_cielab:n #1 { } +\cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnnnnn #1#2#3 { } \cs_new_protected:Npn \__color_backend_fill_cmyk:n #1 { \__color_backend_cmyk:nw { fill } #1 \s__color_stop } \cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1 diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def index 309dfca33cf..f7eb09b28bc 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-luatex.def}{2020-09-01}{} + {l3backend-luatex.def}{2020-09-11}{} {L3 backend support: PDF output (LuaTeX)} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -125,17 +125,19 @@ { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } } \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { + \pdf_object_now:nx { dict } + { + /FunctionType ~ 2 + /Domain ~ [0 ~ 1] + \tl_if_blank:nF {#3} { /Range ~ [#3] } + /C0 ~ [#4] ~ + /C1 ~ [#5] /N ~ 1 + } \__color_backend_separation_init:n { /Separation / \str_convert_pdfname:n {#1} ~ #2 ~ - << - /FunctionType ~ 2 - /Domain ~ [0 ~ 1] - \tl_if_blank:nF {#3} { /Range ~ [#3] } - /C0 ~ [#4] ~ - /C1 ~ [#5] /N ~ 1 - >> + \pdf_object_last: } \use:x { @@ -151,32 +153,33 @@ { \pdf_object_now:nx { array } {#1} } -\cs_new_protected:Npn \__color_backend_separation_init_cielab:nnnnn #1#2#3#4#5 +\cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 { + \pdf_object_if_exist:nF { __color_illuminant_CIELAB_ #1 } + { + \pdf_object_new:nn { __color_illuminant_CIELAB_ #1 } { array } + \pdf_object_write:nx { __color_illuminant_CIELAB_ #1 } + { + /Lab ~ + << + /WhitePoint ~ + [ \tl_use:c { c__color_model_whitepoint_CIELAB_ #1 _tl } ] + /Range ~ [ \c__color_model_range_CIELAB_tl ] + >> + } + } \__color_backend_separation_init:nnnnn {#2} - { \pdf_object_ref:n { __color_illuminant_cielab_ #1 } } - { \c__color_model_range_lab_tl } + { \pdf_object_ref:n { __color_illuminant_CIELAB_ #1 } } + { \c__color_model_range_CIELAB_tl } { 100 ~ 0 ~ 0 } - { #3 ~ #4 ~ #5 } + {#3} } \cs_if_exist:NF \pdf_object_now:nn - { \cs_gset_protected:Npn \__color_backend_separation_init_cielab:nnnnn #1#2#3#4#5 { } } -\cs_new_protected:Npn \__color_backend_separation_init_cielab:n #1 { - \pdf_object_new:nn { __color_illuminant_cielab_ #1 } { array } - \pdf_object_write:nx { __color_illuminant_cielab_ #1 } - { - /Lab ~ - << - /WhitePoint ~ - [ \tl_use:c { c__color_model_whitepoint_cielab_ #1 _tl } ] - /Range ~ [ \c__color_model_range_lab_tl ] - >> - } + \cs_gset_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 + { } } -\cs_if_exist:NF \pdf_object_new:nn - { \cs_gset_protected:Npn \__color_backend_separation_init_cielab:n #1 { } } \cs_new_protected:Npn \__color_backend_fill_cmyk:n #1 { \__kernel_backend_literal_pdf:n { #1 ~ k } } \cs_new_protected:Npn \__color_backend_fill_gray:n #1 @@ -479,7 +482,7 @@ \cs_new:Npx \__pdf_backend_annotation_last: { \exp_not:N \int_value:w - \exp_not:N \tex_pdffeedback:D lastannot + \exp_not:N \tex_pdffeedback:D lastannot ~ \c_space_tl 0 ~ R } \cs_new_protected:Npn \__pdf_backend_link_begin_goto:nnw #1#2 @@ -499,7 +502,7 @@ \cs_new:Npx \__pdf_backend_link_last: { \exp_not:N \int_value:w - \exp_not:N \tex_pdffeedback:D lastlink + \exp_not:N \tex_pdffeedback:D lastlink ~ \c_space_tl 0 ~ R } \cs_new_protected:Npn \__pdf_backend_link_margin:n #1 @@ -555,7 +558,7 @@ \int_const:cn { c__pdf_backend_object_ \tl_to_str:n {#1} _int } { \tex_pdffeedback:D lastobj } - \prop_gput:Nnn \exp_not:N \g__pdf_backend_object_prop {#1} {#2} + \prop_gput:Nnn \g__pdf_backend_object_prop {#1} {#2} } \cs_new:Npn \__pdf_backend_object_ref:n #1 { \int_use:c { c__pdf_backend_object_ \tl_to_str:n {#1} _int } ~ 0 ~ R } diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def index 1307f33a12c..85d24278f52 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-pdftex.def}{2020-09-01}{} + {l3backend-pdftex.def}{2020-09-11}{} {L3 backend support: PDF output (pdfTeX)} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -125,17 +125,19 @@ { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } } \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { + \pdf_object_now:nx { dict } + { + /FunctionType ~ 2 + /Domain ~ [0 ~ 1] + \tl_if_blank:nF {#3} { /Range ~ [#3] } + /C0 ~ [#4] ~ + /C1 ~ [#5] /N ~ 1 + } \__color_backend_separation_init:n { /Separation / \str_convert_pdfname:n {#1} ~ #2 ~ - << - /FunctionType ~ 2 - /Domain ~ [0 ~ 1] - \tl_if_blank:nF {#3} { /Range ~ [#3] } - /C0 ~ [#4] ~ - /C1 ~ [#5] /N ~ 1 - >> + \pdf_object_last: } \use:x { @@ -151,32 +153,33 @@ { \pdf_object_now:nx { array } {#1} } -\cs_new_protected:Npn \__color_backend_separation_init_cielab:nnnnn #1#2#3#4#5 +\cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 { + \pdf_object_if_exist:nF { __color_illuminant_CIELAB_ #1 } + { + \pdf_object_new:nn { __color_illuminant_CIELAB_ #1 } { array } + \pdf_object_write:nx { __color_illuminant_CIELAB_ #1 } + { + /Lab ~ + << + /WhitePoint ~ + [ \tl_use:c { c__color_model_whitepoint_CIELAB_ #1 _tl } ] + /Range ~ [ \c__color_model_range_CIELAB_tl ] + >> + } + } \__color_backend_separation_init:nnnnn {#2} - { \pdf_object_ref:n { __color_illuminant_cielab_ #1 } } - { \c__color_model_range_lab_tl } + { \pdf_object_ref:n { __color_illuminant_CIELAB_ #1 } } + { \c__color_model_range_CIELAB_tl } { 100 ~ 0 ~ 0 } - { #3 ~ #4 ~ #5 } + {#3} } \cs_if_exist:NF \pdf_object_now:nn - { \cs_gset_protected:Npn \__color_backend_separation_init_cielab:nnnnn #1#2#3#4#5 { } } -\cs_new_protected:Npn \__color_backend_separation_init_cielab:n #1 { - \pdf_object_new:nn { __color_illuminant_cielab_ #1 } { array } - \pdf_object_write:nx { __color_illuminant_cielab_ #1 } - { - /Lab ~ - << - /WhitePoint ~ - [ \tl_use:c { c__color_model_whitepoint_cielab_ #1 _tl } ] - /Range ~ [ \c__color_model_range_lab_tl ] - >> - } + \cs_gset_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 + { } } -\cs_if_exist:NF \pdf_object_new:nn - { \cs_gset_protected:Npn \__color_backend_separation_init_cielab:n #1 { } } \cs_new_protected:Npn \__color_backend_fill_cmyk:n #1 { \__kernel_backend_literal_pdf:n { #1 ~ k } } \cs_new_protected:Npn \__color_backend_fill_gray:n #1 @@ -479,7 +482,7 @@ \cs_new:Npx \__pdf_backend_annotation_last: { \exp_not:N \int_value:w - \exp_not:N \tex_pdfannot:D + \exp_not:N \tex_pdflastannot:D \c_space_tl 0 ~ R } \cs_new_protected:Npn \__pdf_backend_link_begin_goto:nnw #1#2 @@ -555,7 +558,7 @@ \int_const:cn { c__pdf_backend_object_ \tl_to_str:n {#1} _int } { \tex_pdflastobj:D } - \prop_gput:Nnn \exp_not:N \g__pdf_backend_object_prop {#1} {#2} + \prop_gput:Nnn \g__pdf_backend_object_prop {#1} {#2} } \cs_new:Npn \__pdf_backend_object_ref:n #1 { \int_use:c { c__pdf_backend_object_ \tl_to_str:n {#1} _int } ~ 0 ~ R } diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def index 1250c1577f0..bc40c6ee387 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-xetex.def}{2020-09-01}{} + {l3backend-xetex.def}{2020-09-11}{} {L3 backend support: XeTeX} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -87,19 +87,26 @@ } \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2 { \__color_backend_select:n { @#1 ~ [#2] } } +\cs_new_protected:Npn \__color_backend_select:n #1 + { + \__kernel_backend_literal:n { pdf: bc ~ #1 } + \group_insert_after:N \__color_backend_reset: + } \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { + \pdf_object_now:nx { dict } + { + /FunctionType ~ 2 + /Domain ~ [0 ~ 1] + \tl_if_blank:nF {#3} { /Range ~ [#3] } + /C0 ~ [#4] ~ + /C1 ~ [#5] /N ~ 1 + } \__color_backend_separation_init:n { /Separation / \str_convert_pdfname:n {#1} ~ #2 ~ - << - /FunctionType ~ 2 - /Domain ~ [0 ~ 1] - \tl_if_blank:nF {#3} { /Range ~ [#3] } - /C0 ~ [#4] ~ - /C1 ~ [#5] /N ~ 1 - >> + \pdf_object_last: } } \cs_if_exist:NF \pdf_object_now:nn @@ -108,36 +115,37 @@ { \__kernel_backend_literal:x { - pdf:obj ~ @ color \int_use:N \g__color_separation_int \c_space_tl + pdf:obj ~ @color \int_use:N \g__color_separation_int \c_space_tl [#1] } } -\cs_new_protected:Npn \__color_backend_separation_init_cielab:nnnnn #1#2#3#4#5 +\cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 { + \pdf_object_if_exist:nF { __color_illuminant_CIELAB_ #1 } + { + \pdf_object_new:nn { __color_illuminant_CIELAB_ #1 } { array } + \pdf_object_write:nx { __color_illuminant_CIELAB_ #1 } + { + /Lab ~ + << + /WhitePoint ~ + [ \tl_use:c { c__color_model_whitepoint_CIELAB_ #1 _tl } ] + /Range ~ [ \c__color_model_range_CIELAB_tl ] + >> + } + } \__color_backend_separation_init:nnnnn {#2} - { \pdf_object_ref:n { __color_illuminant_cielab_ #1 } } - { \c__color_model_range_lab_tl } + { \pdf_object_ref:n { __color_illuminant_CIELAB_ #1 } } + { \c__color_model_range_CIELAB_tl } { 100 ~ 0 ~ 0 } - { #3 ~ #4 ~ #5 } + {#3} } \cs_if_exist:NF \pdf_object_now:nn - { \cs_gset_protected:Npn \__color_backend_separation_init_cielab:nnnnn #1#2#3#4#5 { } } -\cs_new_protected:Npn \__color_backend_separation_init_cielab:n #1 { - \pdf_object_new:nn { __color_illuminant_cielab_ #1 } { array } - \pdf_object_write:nx { __color_illuminant_cielab_ #1 } - { - /Lab ~ - << - /WhitePoint ~ - [ \tl_use:c { c__color_model_whitepoint_cielab_ #1 _tl } ] - /Range ~ [ \c__color_model_range_lab_tl ] - >> - } - } -\cs_if_exist:NF \pdf_object_new:nn - { \cs_gset_protected:Npn \__color_backend_separation_init_cielab:n #1 { } } + \cs_gset_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 + { } + } \cs_new_protected:Npn \__color_backend_fill_cmyk:n #1 { \__kernel_backend_literal_pdf:n { #1 ~ k } } \cs_new_protected:Npn \__color_backend_fill_gray:n #1 diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty index 32e0160e734..25891307496 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty @@ -20,7 +20,7 @@ %% %% File: l3benchmark.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3benchmark}{2020-09-01}{} +\ProvidesExplPackage{l3benchmark}{2020-09-11}{} {L3 Experimental benchmarking} \sys_if_engine_luatex:TF { diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty index 715d0ca1d16..0d6d0ca16c6 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty @@ -20,7 +20,7 @@ %% %% File: l3color.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3color}{2020-09-01}{} +\ProvidesExplPackage{l3color}{2020-09-11}{} {L3 Experimental color support} \tl_new:N \l__color_internal_tl \scan_new:N \s__color_mark @@ -699,14 +699,14 @@ { \tl_set:Nx #1 {#2} } \prop_new:N \l__color_internal_prop \int_new:N \g__color_separation_int -\tl_const:Nn \c__color_model_whitepoint_cielab_a_tl { 1.0985 ~ 1 ~ 0.3558 } -\tl_const:Nn \c__color_model_whitepoint_cielab_b_tl { 0.9807~ 1 ~ 1.1822 } -\tl_const:Nn \c__color_model_whitepoint_cielab_e_tl { 1 ~ 1 ~ 1 } -\tl_const:cn { c__color_model_whitepoint_cielab_d50_tl } { 0.9642 ~, 1 ~ 0.8251 } -\tl_const:cn { c__color_model_whitepoint_cielab_d55_tl } { 0.9568 ~ 1 ~ 0.9214 } -\tl_const:cn { c__color_model_whitepoint_cielab_d65_tl } { 0.9504 ~ 1 ~ 1.0888 } -\tl_const:cn { c__color_model_whitepoint_cielab_d75_tl } { 0.9497 ~ 1 ~ 1.2261 } -\tl_const:Nn \c__color_model_range_cielab_tl { -128 ~ 127 ~ -128 ~ 127 } +\tl_const:Nn \c__color_model_whitepoint_CIELAB_a_tl { 1.0985 ~ 1 ~ 0.3558 } +\tl_const:Nn \c__color_model_whitepoint_CIELAB_b_tl { 0.9807 ~ 1 ~ 1.1822 } +\tl_const:Nn \c__color_model_whitepoint_CIELAB_e_tl { 1 ~ 1 ~ 1 } +\tl_const:cn { c__color_model_whitepoint_CIELAB_d50_tl } { 0.9642 ~ 1 ~ 0.8251 } +\tl_const:cn { c__color_model_whitepoint_CIELAB_d55_tl } { 0.9568 ~ 1 ~ 0.9214 } +\tl_const:cn { c__color_model_whitepoint_CIELAB_d65_tl } { 0.9504 ~ 1 ~ 1.0888 } +\tl_const:cn { c__color_model_whitepoint_CIELAB_d75_tl } { 0.9497 ~ 1 ~ 1.2261 } +\tl_const:Nn \c__color_model_range_CIELAB_tl { 0 ~ 100 ~ -128 ~ 127 ~ -128 ~ 127 } \cs_new_protected:Npn \color_model_new:nnn #1#2#3 { \exp_args:Nee \__color_model_new:nnn @@ -858,24 +858,23 @@ \c_space_tl \exp_not:N \s__color_stop } } -\cs_new_protected:Npn \__color_model_separation_cielab:nnnnnn #1#2#3#4#5#6 +\cs_new_protected:Npn \__color_model_separation_CIELAB:nnnnnn #1#2#3#4#5#6 { \prop_get:NnNF \l__color_internal_prop { illuminant } \l__color_internal_tl { \__kernel_msg_error:nnn { color } - { cielab-requires-illuminant } {#1} + { CIELAB-requires-illuminant } {#1} \tl_set:Nn \l__color_internal_tl { d50 } } - \exp_args:NV \__color_model_separation_cielab:nnnnnnn + \exp_args:NV \__color_model_separation_CIELAB:nnnnnnn \l__color_internal_tl {#1} {#2} {#3} {#4} {#5} {#6} } -\cs_new_protected:Npn \__color_model_separation_cielab:nnnnnnn #1#2#3#4#5#6#7 +\cs_new_protected:Npn \__color_model_separation_CIELAB:nnnnnnn #1#2#3#4#5#6#7 { - \tl_if_exist:cTF { c__color_model_whitepoint_cielab_ #1 _tl } + \tl_if_exist:cTF { c__color_model_whitepoint_CIELAB_ #1 _tl } { - \__color_backend_separation_init_cielab:n {#1} - \__color_backend_separation_init_cielab:nnnnn {#2} {#3} {#4} {#5} {#6} + \__color_backend_separation_init_CIELAB:nnn {#1} {#3} { #4 ~ #5 ~ #6 } \cs_new:cpn { __color_convert_ #2 _cmyk:w } ##1 ~ ##2 \s__color_stop { 0 ~ 0 ~ 0 ~ 1 } \cs_new:cpn { __color_convert_ #2 _rgb:w } ##1 ~ ##2 \s__color_stop @@ -885,7 +884,7 @@ } { \__kernel_msg_error:nnn { color } - { unknown-cielab-illuminant } {#1} + { unknown-CIELAB-illuminant } {#1} } } \cs_new_protected:Npn \color_show:n #1 @@ -908,12 +907,12 @@ { \msg_show_item_unbraced:nn { model } {#1} } -\__kernel_msg_new:nnnn { color } { cielab-requires-illuminant } +\__kernel_msg_new:nnnn { color } { CIELAB-requires-illuminant } { CIELAB~color~space~'#1'~require~an~illuminant. } { LaTeX~has~been~asked~to~create~a~separation~color~space~using~ CIELAB~specifications,~but~no~\\ \\ - \iow_indent:n { illuminant = } + \iow_indent:n { illuminant~=~ } \\ \\ key~was~given~with~the~correct~information.~LaTeX~will~use~illuminant~ 'd50'~for~recovery. @@ -935,7 +934,7 @@ { LaTeX~has~been~asked~to~create~a~separation~color~space,~ but~no~\\ \\ - \iow_indent:n { alternative-model = } + \iow_indent:n { alternative-model~=~ } \\ \\ key~was~given~with~the~correct~information. } @@ -944,7 +943,7 @@ { LaTeX~has~been~asked~to~create~a~separation~color~space,~ but~no~\\ \\ - \iow_indent:n { alternative-values = } + \iow_indent:n { alternative-values~=~ } \\ \\ key~was~given~with~the~correct~information. } @@ -953,7 +952,7 @@ { LaTeX~has~been~asked~to~create~a~separation~color~space,~ but~no~\\ \\ - \iow_indent:n { name = } + \iow_indent:n { name~=~ } \\ \\ key~was~given~with~the~correct~information. } @@ -968,7 +967,7 @@ { LaTeX~has~been~asked~to~create~a~separation~color~space,~ but~the~model~given~as\\ \\ - \iow_indent:n { alternative-model = } + \iow_indent:n { alternative-model~=~ } \\ \\ is~unknown. } @@ -978,7 +977,7 @@ LaTeX~has~been~asked~to~export~a~color~in~format~'#1',~ but~this~has~never~been~defined. } -\__kernel_msg_new:nnnn { color } { unknown-cielab-illuminant } +\__kernel_msg_new:nnnn { color } { unknown-CIELAB-illuminant } { Unknown~illuminant~model~'#1'. } { LaTeX~has~been~asked~to~use~create~a~color~space~using~CIELAB~ diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty index 3df21b0ac45..292d4fe6f35 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty @@ -28,7 +28,7 @@ %% %% File: l3draw.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3draw}{2020-09-01}{} +\ProvidesExplPackage{l3draw}{2020-09-11}{} {L3 Experimental core drawing support} \RequirePackage { l3color } \scan_new:N \s__draw_mark diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty index e0aab473e3a..797321a00dc 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty @@ -20,7 +20,7 @@ %% %% File: l3graphics.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3graphics}{2020-09-01}{} +\ProvidesExplPackage{l3graphics}{2020-09-11}{} {L3 Experimental graphics inclusion support} \ior_new:N \l__graphics_tmp_ior \tl_new:N \l__graphics_tmp_tl diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty b/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty index 7f9640f2dfe..018102c7a98 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty @@ -20,7 +20,7 @@ %% %% File: l3pdf.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3pdf}{2020-09-01}{} +\ProvidesExplPackage{l3pdf}{2020-09-11}{} {L3 Experimental core PDF support} \scan_new:N \s__pdf_stop \bool_new:N \g__pdf_init_bool diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty index 50a8da96d89..bee09eb299b 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty @@ -20,7 +20,7 @@ %% %% File: l3str-format.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3str-format}{2020-09-01}{} +\ProvidesExplPackage{l3str-format}{2020-09-11}{} {L3 Experimental string formatting} \cs_generate_variant:Nn \use:nn { nf } \cs_generate_variant:Nn \use:nnn { fnf } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty index 733cedf6edd..97e8ba69c8f 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty @@ -20,7 +20,7 @@ %% %% File: l3sys-shell.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3sys-shell}{2020-09-01}{} +\ProvidesExplPackage{l3sys-shell}{2020-09-11}{} {L3 Experimental system shell functions} \scan_new:N \s__sys_stop \quark_new:N \q__sys_nil diff --git a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty index b49642fc2e6..f745fb21f8f 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty @@ -20,7 +20,7 @@ %% %% File: xcoffins.dtx \RequirePackage{xparse} -\ProvidesExplPackage{xcoffins}{2020-09-01}{} +\ProvidesExplPackage{xcoffins}{2020-09-11}{} {L3 Experimental design level coffins} \keys_define:nn { coffin } { diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty index 5079bb06a79..9e66d0a8cd1 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty @@ -32,7 +32,7 @@ }% \endinput } -\ProvidesExplPackage{l3galley}{2020-09-01}{} +\ProvidesExplPackage{l3galley}{2020-09-11}{} {L3 Experimental galley code} \int_new:N \l__galley_tmp_int \seq_new:N \g__galley_tmpa_seq diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty index 90536a80800..5a074a0d7ac 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty @@ -20,7 +20,7 @@ %% %% File: xgalley.dtx \RequirePackage{xparse} -\ProvidesExplPackage{xgalley}{2020-09-01}{} +\ProvidesExplPackage{xgalley}{2020-09-11}{} {L3 Experimental galley} \RequirePackage{xparse,xtemplate,l3galley} \clist_new:N \l__galley_tmpa_clist -- cgit v1.2.3