2

This is a sort of followup on this question of mine about overprinting.

Apparantly, I don't understand how global options are passed from classes to packages as well as I hoped I did. This

\documentclass{article}

\usepackage[overprint]{colorspace}
\usepackage{tikz}

%% Patch from other question removed, not relevant for this
%% actual problem.

\definespotcolor{spotcolor}{Spotcolor}{0,1,0,0}

\newcommand{\colbg}{spotcolor!10}

\begin{document}

\begin{tikzpicture}
    \draw[fill=\colbg] (0,0) rectangle (10,4);
    \fill[spotcolor!70] (4,2) rectangle (6,1);
    \draw[fill=spotcolor] (2,2) rectangle (3,3);
    \draw[fill=spotcolor!20] (9,2) rectangle (7,3);
    \node at (5,3) { Text };
\end{tikzpicture}

\end{document}

works as expected (if I add in the patch from the other linked question). Now, my actual documentclass has a cmyk option for setting up various color requirements, but if I change the documentclass to \documentclass[cmyk]{article}, the document no longer compiles with an obscure error message Paragraph ended before \c@lor@@cmyk was complete. If I vary the actual code a little, I can also trigger a Argument of \c@lor@@cmyk has an extra }.

This has me really confused. I realize that the global cmyk option gets passed down to the packages, but neither colorspace nor tikz actually has a cmyk option. (Adding it manually to either package, I get a Unknown option cmyk for package error message.

So, how then can that global option mess with something internally?

2

Open the manual of colorspace with texdoc colorspaceon the command line. On p. 1 in the first line you see this sentence:

It requires xcolor, which is loaded if it has not been before.

Open the xcolor manual. On p. 7 its options (!) are listed. Finding: »cmyk«.

colorspace loads xcolor, xcolor reads the global option cmyk. Does this answer your question?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.