From cee1cf1fa4bae5836fd774f55d623142edad60e3 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 7 Oct 2016 22:26:00 +0000 Subject: colorspace (6oct16) git-svn-id: svn://tug.org/texlive/trunk@42228 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/colorspace/README | 28 +- .../texmf-dist/doc/latex/colorspace/colorspace.pdf | Bin 1602098 -> 99617 bytes .../texmf-dist/doc/latex/colorspace/colorspace.tex | 422 +++++++++++++++------ .../doc/latex/colorspace/colorspaceshade.png | Bin 16162 -> 15861 bytes .../texmf-dist/tex/latex/colorspace/colorspace.sty | 63 ++- 5 files changed, 379 insertions(+), 134 deletions(-) (limited to 'Master') diff --git a/Master/texmf-dist/doc/latex/colorspace/README b/Master/texmf-dist/doc/latex/colorspace/README index 879142307a7..f0d84ee7cda 100644 --- a/Master/texmf-dist/doc/latex/colorspace/README +++ b/Master/texmf-dist/doc/latex/colorspace/README @@ -1,25 +1,29 @@ colorspace ----------- -PDF color spaces. Currently, it supports: +This package provides some tools related to PDF color spaces and color +management. It requires xcolor, which is loaded if it has not been +before. -* spot colors -* mixing inks (spot and process), up to 4 +Currently it supports what I think are the most common tools: + +* Spot colors (CMYK and CIE LAB) +* Mixed spot and process colors (up to 4) * ICC based default CMYK, RGB and Gray spaces -* overprinting +* Overprinting -It requires xcolor and currently only supports pdftex and luatex. +Currently only pdftex and luatex are supported. It seems to work with tikz. -For example, to define a spot color, just say: +For example, to define a spot color, just say something like: \definespotcolor{foo}{BarTone 555 GN}{.3, .4, .5, .6} -That's all. +That's all. -Those docs, like the package itself, are still somewhat tentative, but -the basic behaviour described here will be preserved in future -versions. +What's new +---------- -Version 1.1.1 is compatible with luatex 0.95 +* 1.2.0 CIE LAB spot colors (including mixed inks with a CMYK alternative) +* 1.1.1 is compatible with luatex 0.95 -2016-06-19 \ No newline at end of file +2016-10-05 \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/colorspace/colorspace.pdf b/Master/texmf-dist/doc/latex/colorspace/colorspace.pdf index 1f281e82080..41fad0fd656 100644 Binary files a/Master/texmf-dist/doc/latex/colorspace/colorspace.pdf and b/Master/texmf-dist/doc/latex/colorspace/colorspace.pdf differ diff --git a/Master/texmf-dist/doc/latex/colorspace/colorspace.tex b/Master/texmf-dist/doc/latex/colorspace/colorspace.tex index 6613c07c94a..53075191ed7 100644 --- a/Master/texmf-dist/doc/latex/colorspace/colorspace.tex +++ b/Master/texmf-dist/doc/latex/colorspace/colorspace.tex @@ -21,26 +21,33 @@ %% This work consists of the files colorspace.tex and colorspace.sty. \documentclass[a4paper]{ltxguide} -\title{\textsf{colorspace}\\\large Version 1.1.1} +\title{\textsf{colorspace}\\\large Version 1.2.0} \author{Javier Bezos\\\texttt{http://www.texnia.com}} -\date{2016-09-12} +\date{2016-10-05} \raggedright \parskip=.8ex +\advance\oddsidemargin-.7cm +\advance\textwidth2cm +\addtolength{\textheight}{3.5cm} +\addtolength{\topmargin}{-2cm} \newif\ifcolorspace \newif\iftikz -\usepackage{graphicx} +\usepackage{graphicx,bera} \IfFileExists{colorspace.sty}{% - \usepackage{colorspace}% + \usepackage[illuminant=d65]{colorspace}% \definespotcolor{foo}{BarTone 555 GN}{.8,.2,.5,.3}% \definespotcolor{foob}{BarTone 666 GN}[rgb]{.8, .2, .4}% + \definespotcolor{foolab}{BarTone 888 LB}[alt=lab]% + {50, -30, -40/1, .20, .15, .07}% % \definecolorspace{fooshaded}{mixed}{foo,black}% + \definecolorspace{labshaded}{mixed}{foolab,foob}% % \definecolor{sfoo}{fooshaded}{1,0} \definecolor{sblack}{fooshaded}{0,1} @@ -54,13 +61,29 @@ \tikztrue}{} \def\showclr#1#{\testclr{#1}} -\def\testclr#1#2{{\fboxsep0pt\fbox{\colorbox#1{#2}{\phantom{XX}}}}} +\def\testclr#1#2{{\fboxsep0pt\fbox{\colorbox#1{#2}{\phantom{,MM}}}}} + +\makeatletter +\def\@begintheorem#1#2{% + \list{}{}% + \global\advance\@listdepth\m@ne + \item[{\sffamily\bfseries\color{foob}\MakeUppercase{#1}}]}% +\makeatother +\newtheorem{warning}{Warning} +\newtheorem{note}{Note} +\newtheorem{example}{Example} \begin{document} -\maketitle +{\fontsize{48}{48}\selectfont colorspace\par} +{\LARGE Spot colors, mixed inks and more\par} +\vspace*{1ex} +Version 1.2.0 (2016-10-05)\par +Javier Bezos (\texttt{http://www.texnia.com}) -The aim of this package is, as the name implies, to provide tools for +\vspace*{6ex} + +The aim of this package is, as its name implies, to provide tools for PDF color spaces. It requires \textsf{xcolor}, which is loaded if it has not been before. It seems to work with \textsf{tikz}. @@ -68,10 +91,11 @@ Currently it supports what I think are the most common tools: \begin{itemize} \item Spot colors, with a clean user interface, and including tints (with the |!| notation). +\item CIE LAB spot colors. \item Proper switching of color spaces. \item Mixed spot and process colors (up to 4), like shades (ie, a spot - color with black). -\item ICC based default CMYK, RGB and Gray spaces. + color with black). Also CIE LAB if a CMYK equivalent is provided. +\item ICC based (or ``tagged'') default CMYK, RGB and Gray spaces. \item Overprinting (across pages, using the color stack). \end{itemize} Currently only \textsf{pdftex} and \textsf{luatex} are @@ -90,7 +114,7 @@ They apply to text and line art only, not external images. For the latter, \textsf{graphicx} provides a plea of (undocumented) transformations: \texttt{interpolate}, \texttt{decodearray}, \texttt{maskarray}, \texttt{intent}, \texttt{ocobjnum}, and -\texttt{ocobjref}. For transparencies, see \textsf{transparent}, by +\texttt{ocobjref}. For transparency, see \textsf{transparent}, by Heiko Oberdiek. This package is still evolving, but the basic behaviour described here @@ -103,128 +127,267 @@ This package is built on the previous attempts to provide spot colors and other additional features by Jens Elstner, Stephan Lehmke and Siep Kroonenberg (with some inspiration from \textsf{ConTeXt}, too). -It does not provide a list of Pantone, TrueMatch, Folcoltone, Toyo, -etc., colors. Currently you can find quite easily CMYK equivalents on -the web, and after all they are intended to be used with a -``physical'' palette (and not, as sometimes done, just picking a color -just because looks nice on screen). +\section{CMYK spot colors} -\section{Spot colors} +Spot colors are defined with a single macro: \begin{decl} |\definespotcolor{}{}{}| \end{decl} -Write, for example: +Here || is the \LaTeX{} name, as used in \verb|\color| and +the like, || is the PDF name (usually taken from a swatch +book; multiple spaces are collapsed into one) as shown by PDF viewers, +and the four numbers are the CMYK equivalent. \LaTeX{} knows nothing +about the PDF name, which is just a string to be written to the +generated file, while the PDF knows nothing about the \LaTeX{} name. + +To mix inks, see below. + +\begin{example} + Write, for example: \begin{verbatim} \definespotcolor{foo}{BarTone 555 GN}{.8,.2,.5,.3} \end{verbatim} -\ifcolorspace - for \showclr{foo}. -\fi - -That's all. Here \verb|foo| is the \LaTeX{} name, as used in -\verb|\color| and the like, \verb|BarTone 555 GN| is the PDF name -(multiple spaces are collapsed into one) as shown by PDF readers, and -the four numbers are the CMYK equivalent. \LaTeX{} knows nothing about -the PDF name, which is just a string to be written to the generated -file, while the PDF knows nothing about the \LaTeX{} name. + This creates the color \showclr{foo}, which is used in \LaTeX{} as + |\color{foo}|. If you preflight the PDF file you will see a color + named `BarTone 555 GN' besides cyan, magenta, yellow and black. You can use tints as usual in \textsf{xcolor}, like: \begin{verbatim} \color{foo!50} -\colorlet{foo60}{foo!50} +\colorlet{foo50}{foo!50} \end{verbatim} \ifcolorspace which would produce \showclr{foo!50}, and \fi -even set tints from other tints. To mix inks, see below. +even set tints from other tints. +\end{example} -The special PDF names \verb|All| (for all plates) and \verb|None| work -as expected: +\begin{note} + The special PDF names \verb|All| (for all plates) and \verb|None| + work as expected: \begin{verbatim} \definespotcolor{registration}{All}{1,1,1,1} \end{verbatim} +\end{note} + +\begin{note} + Remember as far PDF is concerned a spot color is a color space on + its own. +\end{note} + +\begin{note} + This package does not provide a list of Pantone, TrueMatch, HKS, + Folcoltone, Toyo, etc., colors. Currently you can find quite easily + CMYK equivalents on the web, and after all they are intended to be + used with a ``physical'' swatch book (and not, as often done, by + picking a color from a ``virtual'' palette just because it looks + nice on screen). +\end{note} + +\begin{decl} +|\definespotcolor{}{}[]{}| +\end{decl} -Internally, only CMYK is used for the equivalent color, but you can define -the latter with another name space, which is then converted: +Internally, only CMYK is used for the equivalent color, but with this +variant you can define the latter with another name space, which is +then converted. +\begin{example} The following definition is based on RGB: \begin{verbatim} \definespotcolor{foob}{BarTone 666 GN}[rgb]{.8, .2, .4} \end{verbatim} -\ifcolorspace -which yields \showclr{foob}. -\fi -Remember as far PDF is concerned a spot color is a color space on its -own. - -\section{Mixing spot colors} + which yields \showclr{foob}. Here \textsf{xcolor} just + converts this value to CMYK, which is still the space used + internally. +\end{example} + +\begin{warning} + This conversion relies on the \textsf{xcolor} numerical methods, + which do not take into account any color profile and therefore + should be avoided in production if the alternate space is going to + be actually used. It is provided just for convenience in drafting or + in contexts where accuracy is not essential. +\end{warning} + +\section{CIE LAB spot colors} + +Instead of targeting the CMYK space, spot colors may be defined using +the CIE LAB (also known as L*a*b*, or even just Lab) space. Unlike the +default CMYK space, which is by default device dependend, the Lab +space is device independent. To define a Lab spot color, you must +first set the illuminant with the package option |illuminant|, which +takes a value: +\begin{verbatim} +\usepackage[illuminant=d65]{colorspace} +\end{verbatim} +Values are \texttt{a}, \texttt{c}, \texttt{e}, \texttt{d50}, +\texttt{d55}, \texttt{d65}, \texttt{d75}. +The command to define a color is: \begin{decl} - |\definecolorspace{}{mixed}{}| +|\definespotcolor{}{}[alt=lab]{}| \end{decl} +Note the optional argument with the string |alt=lab| (which cannot be +combined with a model). The three || have ranges +\textit{L}* $=$ $0$\ldots$100$, \textit{a}* $=$ $-$128$\ldots$127, +\textit{b}* $=$ $-$128{\ldots}127, respectively. -To mix spot colors you must first declare a color space (or model) -including them. This is done with something like: +\begin{example} + With \begin{verbatim} -\definecolorspace{name}{mixed}{color1,color2,color3} +\definespotcolor{foolab}{BarTone 888 LB}[alt=lab]{50, -30, -40} \end{verbatim} -(The second argument is the type of color space.) For example, if we -have two spot colors named \verb|spot1| and \verb|spot2|, and we want -in addition yellow: +the result is \showclr{foolab}. An example of tint is +\verb|\color{foolab!30}| (\showclr{foolab!30}). +\end{example} + +\begin{warning} + The package does not warn if the color falls outside the gamut of + the CMYK space or if the color is not visible. To put it in + other words, you should not just write some arbitrary values to see + what happens. +\end{warning} + +\begin{warning} + This model is not available in \textsf{xcolor}. If you need some + transformation, you must resort to an external tool like + \textsf{transicc} (or \textsf{icctrans}) included in Little + CMS\footnote{\texttt{http://www.littlecms.com/1/downloads.htm}}. +\end{warning} + +\begin{warning} + There is no default illuminant -- it must be set if Lab colors are + defined. +\end{warning} + +\begin{note} + The observer is currently only 2$^\circ$ (1931). +\end{note} + +The Lab space allows to define colors accurately, but there is a price +to pay -- mixing Lab colors is not in general possible except after +converting them somehow to CMYK or RGB.\footnote{There are no simple +rules to carry out those transformations, which, I think, explains why +\textsf{xcolor} does not support Lab at all}. Since currently mixing +colors in this package is based on CMYK, you must provide an alternate +value as shown, if mixed inks are required\footnote{Internally, and +in PDF jargon, Lab is the ``alternate space'' and ``tints transforms'' +are based on CMYK}: \begin{verbatim} -\definecolorspace{spot12y}{mixed}{spot1,spot2,yellow} +\definespotcolor{foolab}{BarTone 888 LB}[alt=lab]{50, -30, -40/1, .20, .15, .07} \end{verbatim} -A typical usage, for shades, would be: + +\section{Mixing spot colors} + +To mix spot colors you must first declare a color space (or model) +including them. This is done with the following macro: + +\begin{decl} + |\definecolorspace{}{mixed}{}| +\end{decl} + +Here, || is the name to be used in |\color| and the +like as the color model. The second argument is the string |mixed|, +and the last one is a list of up to 4 colors, either defined with +\textsf{xcolor} using the CMYK model or spot. + +\begin{example} + A simple and typical usage would be for shades: \begin{verbatim} \definecolorspace{fooshaded}{mixed}{foo,black} \end{verbatim} - -Then, you can define a color with: + Then, you can define a color in this new model named + \verb|fooshaded| with: \begin{verbatim} -\definecolor{mix12y}{spot12y}{.5,.4,.6} \definecolor{darkfoo}{fooshaded}{.6,.3} \end{verbatim} -or set it with +Or set it with: \begin{verbatim} -\color[spot12y]{.5,.4,.3} \color[fooshaded]{.6,.3} \end{verbatim} +In both cases, the mix is 60\% \verb|foo| and 30\% \verb|black|. +\end{example} -Due to internal limitations of \textsf{xcolor}, no more than four -colors are allowed. - -The alternate color space in the PDF file is that of the spot colors -(which means currently it is CMYK). +\begin{example} + If we have two spot colors named \verb|spot1| and \verb|spot2|, and + we want in addition yellow: +\begin{verbatim} +\definecolorspace{mix12y}{mixed}{spot1,spot2,yellow} +\end{verbatim} +To define a new color based on this space: +\begin{verbatim} +\definecolor{mix12y}{mix12y}{.5,.4,.6} +\end{verbatim} +And to set it: +\begin{verbatim} +\color[mix12y]{.5,.4,.6} +\end{verbatim} +\end{example} -As with spot colors, the only operation allowed is \verb|!| for tints -(ie, \verb|color!num|). But there is an easy trick to mix colors with -\verb|!| and \verb|color,num| -- just define an ortogonal set of -colors based on the new color model: +\begin{example} +Here is a duotone mixing the \verb|foob| and \verb|foolab| colors defined above: \begin{verbatim} -\definecolor{xspot1}{spot12y}{1,0,0} -\definecolor{xspot2}{spot12y}{0,1,0} -\definecolor{xyellow}{spot12y}{0,0,1} +\definecolorspace{labshaded}{mixed}{foolab,foob} \end{verbatim} -and then you can say: +The colors corresponding to: +\begin{verbatim} +\color[labshaded]{1,0} \color[labshaded]{.8,.2} +\color[labshaded]{.6,.4} \color[labshaded]{.4,.6} +\color[labshaded]{.2,.8} \color[labshaded]{0,1} +\end{verbatim} +are \showclr[labshaded]{1,0} \showclr[labshaded]{.8,.2} + \showclr[labshaded]{.6,.4} \showclr[labshaded]{.4,.6} + \showclr[labshaded]{.2,.8} \showclr[labshaded]{0,1} +\end{example} + +\begin{warning} + Due to internal limitations of \textsf{xcolor}, no more than four + colors are allowed. +\end{warning} + +\begin{note} + The alternate color space in the PDF file is that of the spot colors + (which means currently it is CMYK). +\end{note} + +\begin{note} + There is an easy trick to mix colors with \verb|!| and + \verb|color,num| -- just define an ortogonal set of colors based on + the new color model: +\begin{verbatim} +\definecolor{xspot1}{mix12y}{1,0,0} +\definecolor{xspot2}{mix12y}{0,1,0} +\definecolor{xyellow}{mix12y}{0,0,1} +\end{verbatim} + and then you can say: \begin{verbatim} \color{xspot1!30!xspot2!40!xyellow} -\color{spot12y:xspot1,3;xspot2,2;xyellow,1} +\color{mix12y:xspot1,3;xspot2,2;xyellow,1} \end{verbatim} -Of course, it is just a trick and a better and direct interface is -under study (none of those provided by \textsf{xcolor} fits really -with the new |mixed| models). + Of course, it is just a trick and a better and direct interface is + under study (none of those provided by \textsf{xcolor} fits well + with the new |mixed| models). +\end{note} + +\begin{warning} + Mixing colors in \verb|\color|, \verb|\definecolor| and the like + from diferent spaces can lead to unexpected results (currently no + checking is done). +\end{warning} Color series (see the \textsf{xcolor} documentation) are also partially supported. For example: \begin{verbatim} -\definecolorseries{test}{spot12y}{grad}[spot12y]{.95,.85,.55}{3,11,17} -\definecolorseries{test}{spot12y}{last}{xyellow!50}{xspotA} +\definecolorseries{test}{mix12y}{grad}[mix12y]{.95,.85,.55}{3,11,17} +\definecolorseries{test}{mix12y}{last}{xyellow!50}{xspotA} \end{verbatim} \ifcolorspace -Here is a example with some of the described -techniques, based on the |fooshaded| space defined above (figure 1 -shows the |foo| plate): +\begin{example} + Here is a example with some of the described techniques, based on + the |fooshaded| space defined above (figure 1 shows the |foo| + plate): \begin{verbatim} \definecolor{sfoo}{fooshaded}{1,0} @@ -233,14 +396,14 @@ shows the |foo| plate): \def\testclr#1{{\fboxsep0pt\fbox{\colorbox{#1}{\phantom{XX}}}}} \resetcolorseries[8]{shseries} \begin{tabular}{cccccccc} -0 \testclr{shseries!!+} & -1 \testclr{shseries!!+} & -2 \testclr{shseries!!+} & -3 \testclr{shseries!!+} & -4 \testclr{shseries!!+} & -5 \testclr{shseries!!+} & -6 \testclr{shseries!!+} & -7 \testclr{shseries!!+} + 0 \testclr{shseries!!+} & + 1 \testclr{shseries!!+} & + 2 \testclr{shseries!!+} & + 3 \testclr{shseries!!+} & + 4 \testclr{shseries!!+} & + 5 \testclr{shseries!!+} & + 6 \testclr{shseries!!+} & + 7 \testclr{shseries!!+} \end{tabular} \end{verbatim} @@ -248,36 +411,35 @@ shows the |foo| plate): \def\testclr#1{{\fboxsep0pt\fbox{\colorbox{#1}{\phantom{XX}}}}} \resetcolorseries[8]{shseries} \begin{tabular}{cccccccc} -0 \testclr{shseries!!+} & -1 \testclr{shseries!!+} & -2 \testclr{shseries!!+} & -3 \testclr{shseries!!+} & -4 \testclr{shseries!!+} & -5 \testclr{shseries!!+} & -6 \testclr{shseries!!+} & -7 \testclr{shseries!!+} + 0 \testclr{shseries!!+} & + 1 \testclr{shseries!!+} & + 2 \testclr{shseries!!+} & + 3 \testclr{shseries!!+} & + 4 \testclr{shseries!!+} & + 5 \testclr{shseries!!+} & + 6 \testclr{shseries!!+} & + 7 \testclr{shseries!!+} \end{tabular} \endgroup +\end{example} \fi \begin{figure} \fbox{\includegraphics[width=\linewidth]{colorspaceshade.png}} \caption{Plate for the \texttt{foo} spot color as shown by Adobe -Acrobat. Note the \texttt{foob} spot color defined in this document -is listed, too.} +Acrobat. Note both \texttt{foob} and \texttt{foolab}, +defined in this document, are listed, too.} \end{figure} -The key is not to mix a |mixed| model with other color models. - \section{Page color spaces} Each PDF page must know which colors will be used (other than the -predefined CMYK, RGB and Gray). By default, \textsf{colorspace} turn +predefined CMYK, RGB and Gray). By default, \textsf{colorspace} turns on for every page all newly defined colors, and that will be fine in -most cases. However, you may want to set explicitly the list. Use this -feature with care, because (1) the asynchronous nature of \TeX{} -(remember it affects the whole current page), and (2) each -distinct color list creates a PDF resource. +most cases. However, you may want to set explicitly the list (for +covers or plates). Use this feature with care, because (1) the +asynchronous nature of \TeX{} (remember it affects the whole current +page), and (2) each distinct color list creates a PDF resource. \begin{decl} |\pagecolorspace{}|\\ @@ -292,7 +454,7 @@ set something like: (It can be empty.) To return to the default color space, which contains all the defined spot colors, use \verb|\resetpagecolorspace|. -\section{ICC Based spaces} +\section{ICC based spaces} \begin{decl} |\definecolorspace*{}{iccbased}{}| @@ -300,7 +462,7 @@ contains all the defined spot colors, use \verb|\resetpagecolorspace|. The starred version \verb|\definecolorspace*| does not define a new color model, but sets the behaviour of the three basic color spaces (CMYK, RGB and Gray). When belonging to the same space, the last -definition for that space takes precedence and its considered the +definition for that space takes precedence and it is considered the default one. It cannot be used to define new colors or set them. Currently, only a type is supported -- \verb|iccbased|. For example, @@ -310,18 +472,46 @@ example, The space it applies to is read from the ICC profile. -Note those ICC spaces does not go to the output intent dictionary (see -the \textsf{pdfx} package). The latter, as the PDF reference explains, -supplements rather than replaces the ICC profiles in a default color -space. - The name can be used in \verb|\pagecolorspace|. Alternatively, there are 3 reserved names: \verb|*rgb|, \verb|*gray|, \verb|*cmyk|, which -stand for the current default spaces. Named ICC based spaces are not -set by \verb|\resetpagecolorspace|, but the starred named are. On the -other hand, the starred names are not set automatically by -|\pagecolorspace|, and you must set them explicitly if you want them -to be active. +stand for the last-defined, default ICC based spaces. Named ICC based +spaces are not set by \verb|\resetpagecolorspace|, but the starred +named are. On the other hand, the starred names are not set +automatically by |\pagecolorspace|, and you must set them explicitly +if you want them to be active. + +\begin{note} + Those ICC spaces do not go to the output intent dictionary (see + the \textsf{pdfx} package). The latter, as the PDF reference + explains, supplements rather than replaces the ICC profiles in a + default color space. +\end{note} + +\begin{example} + Given the following declarations: +\begin{verbatim} +\definecolorspace*{sRGB}{iccbased}{sRGB Profile.icc} +\definecolorspace*{colormatch}{ColorMatchRGB.icc} +\end{verbatim} + and remembering the RGB space is always active (like the CMYK and + Gray ones), +\begin{verbatim} +\pagecolorspace{} +\end{verbatim} +leaves the RGB space unprofiled; +\begin{verbatim} +\pagecolorspace{sRGB} +\end{verbatim} +sets the RGB space to sRGB; while the following are (in this +particular example) equivalent: +\begin{verbatim} +\pagecolorspace{colormatch} +\pagecolorspace{*rgb} +\resetpagecolorspace +\end{verbatim} + + +\end{example} \section{Overprinting} @@ -346,11 +536,17 @@ something like: Since the color stack is used, pdf\TeX{} $\ge$ 1.40 is required. +\begin{warning} + Some PDF viewers ignore this setting. +\end{warning} + \section{Version} 1.1.1. No new features. Just internal changes related to \textsc{luatex} and new manual. +1.2.0. CIE LAB spot colors and |illuminant|. Manual rewritten. + \end{document} diff --git a/Master/texmf-dist/doc/latex/colorspace/colorspaceshade.png b/Master/texmf-dist/doc/latex/colorspace/colorspaceshade.png index 0c500a5429b..a19328e0411 100644 Binary files a/Master/texmf-dist/doc/latex/colorspace/colorspaceshade.png and b/Master/texmf-dist/doc/latex/colorspace/colorspaceshade.png differ diff --git a/Master/texmf-dist/tex/latex/colorspace/colorspace.sty b/Master/texmf-dist/tex/latex/colorspace/colorspace.sty index 39e2bf5fb3b..376116409c1 100644 --- a/Master/texmf-dist/tex/latex/colorspace/colorspace.sty +++ b/Master/texmf-dist/tex/latex/colorspace/colorspace.sty @@ -21,7 +21,7 @@ %% This work consists of the files colorspace.tex and colorspace.sty. \ProvidesPackage{colorspace} - [2016/09/12 v1.1.1 PDF color spaces (spot colors...) for + [2016/10/05 v1.2.0 PDF color spaces (spot colors...) for pdftex and luatex] \edef\spc@savedcatcodes{% @@ -49,9 +49,7 @@ \protected\def\spc@Colorstack{\pdfextension colorstack} \def\spc@Colorstackinit{\pdffeedback colorstackinit} \fi - -% - + \def\spc@unknown#1#2{% \@ifundefined{#1}% {\PackageError{colorspace}{Unknown #2}% @@ -130,6 +128,25 @@ \newcommand\definespotcolor[2]{\protected@edef\spc@tempa{{#1}{#2}}\spc@defsc} \newcommand\spc@defsc[2][cmyk]{\expandafter\spc@defsc@i\spc@tempa{#1}{#2}} + +\def\spc@splitbar#1#2#3/#4\@nil{% + \def#1{#3}% + \def#2{#4}} + +\let\spc@lab@values\relax + +\@namedef{spc@opt@alt=lab}#1{% + \@expandtwoargs\in@{/}{#1}% + \ifin@ + \spc@splitbar\spc@lab@values\spc@the@cmyk#1\@nil + \else + \def\spc@lab@values{#1}% + \def\spc@the@cmyk{0,0,0,0}% dummy + \fi + \def\spc@tempd##1,{% comma -> space + \ifx\@empty##1\else##1 \expandafter\spc@tempd\fi}% + \edef\spc@lab@values{\expandafter\spc@tempd\spc@lab@values,\@empty,}} + \def\spc@defsc@i#1#2#3#4{% \def\spc@tempc##1 ##2{% Converts spaces to #20 ##1% @@ -145,11 +162,22 @@ {This spot name was taken by `##2'.}% \fi} \spc@csall - \definecolor{#1}{cmyk:#3}{#4}% internally always cmyk - \expandafter\spc@cmyktospot{#1}\spc@tempb % Convert from cmyk to spot - \immediate\spc@Obj{[ /Separation /\spc@tempb\space - /DeviceCMYK << /FunctionType 2 /Domain [0 1] - /C0 [0 0 0 0] /C1 [\spc@tempa] /N 1 >> ]}% pdf separation + \@ifundefined{spc@opt@\zap@space#3 \@empty}% + {\definecolor{#1}{cmyk:#3}{#4}}% + {\@nameuse{spc@opt@\zap@space#3 \@empty}{#4}% + \definecolor{#1}{cmyk}{\spc@the@cmyk}}% + \expandafter\spc@cmyktospot{#1}\spc@tempb % Convert cmyk > spot + \ifx\spc@lab@values\relax + \immediate\spc@Obj{[ /Separation /\spc@tempb\space + /DeviceCMYK << /FunctionType 2 /Domain [0 1] + /C0 [0 0 0 0] /C1 [\spc@tempa] /N 1 >> ]}% pdf separation + \else + \immediate\spc@Obj{[ /Separation /\spc@tempb\space + \spc@illum@ref << /FunctionType 2 /Domain [0 1] + /Range[0 100 -128 127 -128 127] + /C0 [100 0 0] /C1 [\spc@lab@values] /N 1 >> ]}% pdf separation + \global\let\spc@lab@values\relax + \fi \expandafter\xdef\csname spc@ir@#1\endcsname{% /&\spc@tempb\space\the\spc@Lastobj\space 0 R}% save ref to obj \let\spc@elt\relax @@ -160,6 +188,23 @@ \resetpagecolorspace \fi} +% Options for illuminants: + +\def\spc@illum@obj#1{% + \immediate\spc@Obj{[ /Lab + << /WhitePoint [#1] /Range [-128 127 -128 127] >> ]}% + \xdef\spc@illum@ref{\the\spc@Lastobj\space 0 R }} + +% 1931, 2-degree observer. c is deprecated + +\DeclareOption{illuminant=a}{\spc@illum@obj{1.0985 1 0.3558}} +\DeclareOption{illuminant=c}{\spc@illum@obj{0.9807 1 1.1822}} +\DeclareOption{illuminant=e}{\spc@illum@obj{1 1 1}} +\DeclareOption{illuminant=d50}{\spc@illum@obj{0.9642 1 0.8251}} +\DeclareOption{illuminant=d55}{\spc@illum@obj{0.9568 1 0.9214}} +\DeclareOption{illuminant=d65}{\spc@illum@obj{0.9504 1 1.0888}} +\DeclareOption{illuminant=d75}{\spc@illum@obj{0.9497 1 1.2261}} + % Page color spaces. The arrays mapping the spot colors to the obj % refs are saved into the pdf as objects, and then we also save its % reference for later recovery. Well, \pdfpageresources is not -- cgit v1.2.3