Hi everybody, I don't get context colours working in tikz. There were several issues on the mailing list in the past and the solution always seems to be some kind of hack. But none of the hacks work (with a current context). Example: \usemodule [tikz] \definecolor [darkblue] [b=.2] \starttext \starttikzpicture % works \fill [blue] (0,0) circle(1); % fails % \fill [darkblue] (0,0) circle(1); \stoptikzpicture \stoptext I get the following error: Runaway argument? 0 0 0.2 rg 0 0 0.2 RG\pgf@stop {darkblue}\else \edef \pgf@marshal {\noexpand \ETC. ! File ended while scanning use of \pgfutil@context@parse@gray. system > tex > error on line 0 in file : File ended while scanning use of \pgfutil@conte xt@parse@gray ... <empty file> <inserted text> \par Marco
On 15-5-2012 12:16, Marco wrote:
Hi everybody,
I don't get context colours working in tikz. There were several issues on the mailing list in the past and the solution always seems to be some kind of hack. But none of the hacks work (with a current context). Example:
\usemodule [tikz] \definecolor [darkblue] [b=.2] \starttext \starttikzpicture % works \fill [blue] (0,0) circle(1);
% fails % \fill [darkblue] (0,0) circle(1); \stoptikzpicture \stoptext
I get the following error:
Runaway argument? 0 0 0.2 rg 0 0 0.2 RG\pgf@stop {darkblue}\else \edef \pgf@marshal {\noexpand \ETC. ! File ended while scanning use of \pgfutil@context@parse@gray.
system> tex> error on line 0 in file : File ended while scanning use of \pgfutil@conte xt@parse@gray ...
<empty file>
<inserted text> \par
In pgfutil-context.def there is a macro \def\pgfutil@registercolor#1{% \edef\pgf@temp{\PDFcolor{#1}}% \edef\pgf@marshal{\noexpand\pgfutil@in@{g}{\pgf@temp}}% \pgf@marshal \ifpgfutil@in@ \expandafter\pgfutil@context@parse@gray\pgf@temp\pgf@stop{#1}% \else \edef\pgf@marshal{\noexpand\pgfutil@in@{rg}{\pgf@temp}}% \pgf@marshal \ifpgfutil@in@ \expandafter\pgfutil@context@parse@rgb\pgf@temp\pgf@stop{#1}% \else \edef\pgf@marshal{\noexpand\pgfutil@in@{k}{\pgf@temp}}% \pgf@marshal \ifpgfutil@in@ \expandafter\pgfutil@context@parse@cmyk\pgf@temp\pgf@stop{#1}% \else \PackageError{pgf}{Color #1 has an unsupported color model.}{}% \pgfutil@definecolor{#1}{gray}{0}% \fi \fi \fi } which tests for gray (g) before rgb (rg) but I think should reverse that order \def\pgfutil@registercolor#1{% \edef\pgf@temp{\PDFcolor{#1}}% \edef\pgf@marshal{\noexpand\pgfutil@in@{rg}{\pgf@temp}}% \pgf@marshal \ifpgfutil@in@ \expandafter\pgfutil@context@parse@rgb\pgf@temp\pgf@stop{#1}% \else \edef\pgf@marshal{\noexpand\pgfutil@in@{g}{\pgf@temp}}% \pgf@marshal \ifpgfutil@in@ \expandafter\pgfutil@context@parse@gray\pgf@temp\pgf@stop{#1}% \else \edef\pgf@marshal{\noexpand\pgfutil@in@{k}{\pgf@temp}}% \pgf@marshal \ifpgfutil@in@ \expandafter\pgfutil@context@parse@cmyk\pgf@temp\pgf@stop{#1}% \else \PackageError{pgf}{Color #1 has an unsupported color model.}{}% \pgfutil@definecolor{#1}{gray}{0}% \fi \fi \fi } feel free to test this and submit it as patch to the tikz maintainers. For mkiv the whole checker/converter can be replaced by a few lines of code but I won't bother you with that. Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On 2012-05-15 Hans Hagen
In pgfutil-context.def there is a macro
[…]
which tests for gray (g) before rgb (rg) but I think should reverse that order
[…]
feel free to test this and submit it as patch to the tikz maintainers.
Thanks for the code. I tested the code with the graphs I created so far and it seems to work fine. However, my graphics don't fiddle with “fancy” stuff (transparency, etc.). I submitted the patch and a bug report. The future will show the side effects.
For mkiv the whole checker/converter can be replaced by a few lines of code but I won't bother you with that.
I have no clue about the internals of the colour models of ConTeXt and TikZ. You don't want me to mess with that :) Regards Marco Patzer
On 2012-05-18 "Philipp A."
also check this: http://tex.stackexchange.com/questions/27952/cmyk-context-colors-in-tikz
The colour conversion code is already included in the tikz module. But it works only for cmyk colours, for rgb it fails: \definecolor [c] [c=1] % works \definecolor [b] [b=1] % fails I submitted a bug report including Hans' patch which, at least for me, doesn't seem to break anything. We'll see how long it will take to include the fix. Marco
participants (3)
-
Hans Hagen
-
Marco
-
Philipp A.