texlive[56323] Master/texmf-dist: l3 (10sep20)
commits+karl at tug.org
commits+karl at tug.org
Fri Sep 11 22:56:15 CEST 2020
Revision: 56323
http://tug.org/svn/texlive?view=revision&revision=56323
Author: karl
Date: 2020-09-11 22:56:15 +0200 (Fri, 11 Sep 2020)
Log Message:
-----------
l3 (10sep20)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
trunk/Master/texmf-dist/doc/latex/l3backend/README.md
trunk/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md
trunk/Master/texmf-dist/doc/latex/l3experimental/README.md
trunk/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf
trunk/Master/texmf-dist/doc/latex/l3experimental/l3color/l3color.pdf
trunk/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf
trunk/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf
trunk/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf
trunk/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf-code.pdf
trunk/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf.pdf
trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
trunk/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf
trunk/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf
trunk/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
trunk/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf
trunk/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro
trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
trunk/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
trunk/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
trunk/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
trunk/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty
trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
trunk/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
Modified: trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md 2020-09-11 20:56:15 UTC (rev 56323)
@@ -6,6 +6,16 @@
## [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 @@
- 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
Modified: trunk/Master/texmf-dist/doc/latex/l3backend/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3backend/README.md 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/doc/latex/l3backend/README.md 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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
Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md 2020-09-11 20:56:15 UTC (rev 56323)
@@ -7,6 +7,11 @@
## [Unreleased]
+## [2020-09-11]
+
+### Fixed
+- Typos in CIELAB support
+
## [2020-09-01]
### Added
@@ -24,7 +29,8 @@
### 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 @@
- 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
Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3experimental/README.md 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/doc/latex/l3experimental/README.md 2020-09-11 20:56:15 UTC (rev 56323)
@@ -1,7 +1,7 @@
Experimental LaTeX3 Concepts
============================
-Release 2020-09-01
+Release 2020-09-11
Overview
--------
Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3color/l3color.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf-code.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro
===================================================================
--- trunk/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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
Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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}
%</dvipdfmx>
%<*dvips>
- {l3backend-dvips.def}{2020-09-01}{}
+ {l3backend-dvips.def}{2020-09-11}{}
{L3 backend support: dvips}
%</dvips>
%<*dvisvgm>
- {l3backend-dvisvgm.def}{2020-09-01}{}
+ {l3backend-dvisvgm.def}{2020-09-11}{}
{L3 backend support: dvisvgm}
%</dvisvgm>
%<*luatex>
- {l3backend-luatex.def}{2020-09-01}{}
+ {l3backend-luatex.def}{2020-09-11}{}
{L3 backend support: PDF output (LuaTeX)}
%</luatex>
%<*pdftex>
- {l3backend-pdftex.def}{2020-09-01}{}
+ {l3backend-pdftex.def}{2020-09-11}{}
{L3 backend support: PDF output (pdfTeX)}
%</pdftex>
%<*xetex>
- {l3backend-xetex.def}{2020-09-01}{}
+ {l3backend-xetex.def}{2020-09-11}{}
{L3 backend support: XeTeX}
%</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 } }
Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-11}
%
% \maketitle
%
@@ -250,7 +250,7 @@
%</luatex|pdftex>
% \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:
Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-11}
%
% \maketitle
%
@@ -311,20 +311,36 @@
% \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}
+% {
+% \@@_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}[EXP]{\@@_backend_separation_init:n}
-% \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: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
{
@@ -331,37 +347,187 @@
\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}
%</dvips>
@@ -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}
%</dvisvgm>
@@ -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 } }
%</luatex|pdftex>
+%<*dvipdfmx|xetex>
+\cs_new_protected:Npn \@@_backend_select:n #1
+ {
+ \__kernel_backend_literal:n { pdf: bc ~ #1 }
+ \group_insert_after:N \@@_backend_reset:
+ }
+%</dvipdfmx|xetex>
% \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]
}
%</dvipdfmx|xetex>
@@ -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}
%</dvipdfmx|luatex|pdftex|xetex>
Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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
{
Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-11}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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}
Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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 ~
%</luatex>
%<*pdftex>
- \exp_not:N \tex_pdfannot:D
+ \exp_not:N \tex_pdflastannot:D
%</pdftex>
\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 ~
%</luatex>
%<*pdftex>
\exp_not:N \tex_pdflastlink:D
@@ -964,7 +966,7 @@
%<*pdftex>
{ \tex_pdflastobj:D }
%</pdftex>
- \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 }
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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}
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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 = <basis> }
+ \iow_indent:n { illuminant~=~<basis> }
\\ \\
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 = <model> }
+ \iow_indent:n { alternative-model~=~<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 = <model> }
+ \iow_indent:n { alternative-values~=~<model> }
\\ \\
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 = <formal~name> }
+ \iow_indent:n { name~=~<formal~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 = <model> }
+ \iow_indent:n { alternative-model~=~<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~
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-11}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-11}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-11}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-11}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-11}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-11}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-11}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-09-01}
+% \date{Released 2020-09-11}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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}
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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}
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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}
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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}
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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}
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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}
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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}
%
Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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}
Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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_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
Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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: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
+ {
+ +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
{
- \__color_backend_separation_init:w #1 /Device #1 /Device \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: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_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_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
Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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
Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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 }
Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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 }
Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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_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
Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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
{
Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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 = <basis> }
+ \iow_indent:n { illuminant~=~<basis> }
\\ \\
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 = <model> }
+ \iow_indent:n { alternative-model~=~<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 = <model> }
+ \iow_indent:n { alternative-values~=~<model> }
\\ \\
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 = <formal~name> }
+ \iow_indent:n { name~=~<formal~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 = <model> }
+ \iow_indent:n { alternative-model~=~<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~
Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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
Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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
Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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
Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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 }
Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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
Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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 }
{
Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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
Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty 2020-09-11 20:52:13 UTC (rev 56322)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty 2020-09-11 20:56:15 UTC (rev 56323)
@@ -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
More information about the tex-live-commits
mailing list.