[Tikzdevice-bugs] Context and tikz?

Charlie Sharpsteen chuck at sharpsteen.net
Tue Apr 19 23:57:17 CEST 2011


On Tue, Apr 19, 2011 at 2:13 PM, mat <matthieu.stigler at gmail.com> wrote:

>  Charlie
>
> Wonderful!! It's exactly what I needed! And you did it so fast,
> congratulations!
>

Just make sure you double-check that the text in your plot still looks OK as
I didn't have time to implement proper calculations of text size for
`metapost`---the device still falls back to using LaTeX which does things
differently from ConTeXt.



> The way you did it is really nice, since it seems the color def are not
> rewritten each time, which allows one to set them "globally". Now for the
> pentone color: as I understood it, the most standard case will be one spot
> color, used with different "tints" (ie percentage). For my case for example,
> it implied this:
> \definecolor[PantoneBlue][c=1, m=0.58,y=0,k=0.29]
>
> \definespotcolor[PantoneBlueHundredSpot][PantoneBlue][p=1,e=Pantone 294 C]
> \definespotcolor[PantoneBlueSixtySpot][PantoneBlue][p=0.6,e=Pantone 294 C]
> \definespotcolor[PantoneBlueFourtySpot][PantoneBlue][p=0.4,e=Pantone 294 C]
> ....
>
> So a function like:
> define_metap_tint( Rname='PantoneBlueFourty', colRef='Pantone 294 C',
> tint=0.4)
>
> could be very useful!!!
>

I'll look into the tinting---I left it at a default of 1 because I don't
fully understand how it works and would need to read up a little bit more. I
think you may be able to achieve a similar effect using R's transparency
settings---in my experiments an object printed with 100% opacity was
represented in the spot color channel by a solid black shape which I presume
indicates a full layer of ink. An object set to 60% opacity was represented
in a shade of gray which I would presume means that less ink is being laid
down.

The part I am not sure about is if setting the opacity achieves the same
effect as tinting the color.


One more remark: as the code stands now, it allows only "R color names"
> since:
>  grDevices::col2rgb(rgb_value)
> only accept R color names. I changed for my purpose in:
> if ( is.character(rgb_value) ) {
>     if(rgb_value%in%colors()) {
>         rgb_value <- grDevices::col2rgb(rgb_value)
> } else {
>       rgb_value <- grDevices::col2rgb(eval(parse(text=rgb_value))))
> }
> #might be wrong as I'm writing trying to remember
>
> would something like this make sense?
>

I'm not sure exactly what your code is trying to do---but feel free to
modify the functions any way you see fit!  The only important bit is that
the color definition has to accept a vector of three integers as
a valid input as that is what is emitted by the C code of the device.
 Automatically translating character strings into RGB values is just
a convenience for us humans.



> Finally, the colors defs:
>
>  \definecolor
>    [Red]
>    [r=1.000,g=0.000,b=0.000]
> did not appear in the tex file? Is this expected? Could it be made
> automatical?
>

The color definitions should get written into the tex file when dev.off() is
called. If you have an example of a plot where this isn't happening, send it
to me and I'll try to puzzle out what is going wrong.


I think as it stands the feature is already nice, so it can only improve :-)
> And sure, adding the possibility to have spotcolors in R with tikzDevice is
> a really nice feature, great you intend to work on it!!!!!
>
> Finally, yes I hope it will work for the printer. Would be nice to find
> some professional but unfortunately all the graphical designer we consulted
> have no idea of these low-levels manipulation, and none could understand the
> "hacking" done. So we can't really know until printing whether fine or not (
> a big issue is whether the black color should also be written with such
> "separation" code, so that the printer put black on second scale... no idea
> is necessary or not).
>

I originally had the definition of black default to a spot color, but I
reversed it as I figured that it is already separated onto the K channel of
CMYK in the PDF.  It would be pretty easy to change back to a spot color,
just edit the appropriate entry in the `setTikzDefaults` function in
deviceUtils.R. I'm hoping that isolating colors on separate channels in the
PDF will be enough for a professional printer to easily set up a run, but I
am not a professional so I don't know for sure :-)



> Thanks so much!!
>

You're welcome! Hope it helps with the book!

-Charlie


More information about the Tikzdevice-bugs mailing list