[dev-context] problem with TikZ & ConTeXt MKIV

Aditya Mahajan adityam at umich.edu
Wed Jul 22 02:05:02 CEST 2009


On Mon, 20 Jul 2009, Hans Hagen wrote:

> Mojca Miklavec wrote:
>> With 2009.07.20 09:35 MKIV & latest TikZ I get (among many other
>> errors that follow)
>> 
>> ! Undefined control sequence.
>> \pgfutil at addpdfresource@colorspaces ...olorspaces
>>                                                   {#1}
>> l.396 ...rspaces{ /pgfprgb [/Pattern /DeviceRGB] }
>> 
>> ?
>> 
>> I don't know if that's a problem with TikZ or ConTeXt (no time to
>> debug now, but maybe I can try to prepare some minimal example that
>> fails; later). ConTeXt MKII works fine on the same document.
>
> this has to do with the fact that tikz manipulates documents resources
>
> it probably went unnnoticed in previous mkiv and mkii, but that way tikz was 
> obscuring regular context resource handling (i.e. when you use mp an tikz 
> mixed one of them wins with respect to resources so the other kind's graphics 
> fail to view i.e. shades, transparencies, etc)
>
> therefore in mkiv all access is shielded and goes via special macros:
>
> \pdfbackendsetextgstate {name}{legal pdf}
> \pdfbackendsetcolorspace{name}{legal pdf}
> \pdfbackendsetpattern   {name}{legal pdf}
> \pdfbackendsetshade     {name}{legal pdf}
>
> normal "legal pdf" is a reference like 123 0 R
>
> If more access is needed, i can add it but it will always go via an interface 
> as in mkiv most \pdfcommands are going away.
>
> So, tikz needs to be adapted to this. A few weeks ago I looked at it but 
> found out that i had an old version so delayed it.

I am using the latest context minimals with latest tikz.

Test file:

\logginall
\usemodule[tikz]
\starttext
\input knuth
\stoptext


The log file says

\pgfutil at addpdfresource@colorspaces #1->\appendtoPDFdocumentcolorspaces 
{#1}
#1<- /pgfprgb [/Pattern /DeviceRGB]
{undefined}

So, \appendtoPDFdocumentcolorspaces is undefined.

Now, \append...colorspaces is defined in back-pdf.tex which AFAIU that 
file is not loaded. It is redefined in spec-fdf.mkii, so mkii uses that 
defininition. In mkiv, back-pdf.mkiv defines \pdfbackendsetcolorspace.

So, which command should tikz use so that it works with both mkii and 
mkiv. Or should it do a \beginLUATEX redefinition of some macros for mkiv?
The relavant tikz file is tex/generic/pgf/pgfutil-context.def so the 
changes there will not affect latex.

Aditya


More information about the dev-context mailing list