Transparency

From Wiki
Revision as of 12:27, 10 June 2020 by Garulfo (talk | contribs) (Garulfo moved page Color/Transparency to Transparency without leaving a redirect: simplification)
Jump to navigation Jump to search

Defining transparent colors

You can define transparent colors through setting t and a, e.g. t=0.5,a=1, where the first is the opacity and the latter the transparency mode (there are 17).

Beware, some PDF viewers and printshops can't handle transparencies in PDF!

In the following example by Hans Hagen the yellow blocks have been added to demonstrate the order in which the blocks are drawn on the page; the first yellow block is behind the transparent red and blue blocks, while the second is in front of them.

\definecolor [transparentred]  [r=1,t=.5,a=1]
\definecolor [transparentblue] [b=1,t=.5,a=1]
\definecolor [solidyellow]  [y=1,t=1,a=1]

\starttext

\startTEXpage
This is some sample text that goes behind the rectangles\hskip-8cm
\blackrule[width=2cm,height=1cm,depth=1cm,color=solidyellow]\hskip-0.67cm
\blackrule[width=2cm,height=2cm,color=transparentred]\hskip-0.67cm
\blackrule[width=2cm,height=1cm,depth=1cm,color=transparentblue]\hskip-0.67cm
\blackrule[width=2cm,height=2cm,color=solidyellow]\hskip2cm.
\stopTEXpage

\stoptext


Transparency modes

There are different algorithms for "mixing" transparent colors with their background, maybe you know them from the layer settings in Photoshop.

  • 0 none
  • 1 normal
  • 2 multiply
  • 3 screen
  • 4 overlay
  • 5 softlight
  • 6 hardlight
  • 7 colordodge
  • 8 colorburn
  • 9 darken
  • 10 lighten
  • 11 difference
  • 12 exclusion
  • 13 hue
  • 14 saturation
  • 15 color
  • 16 luminosity

They are defined in mkiv/lpdf-col.lua and demonstrated in the color manual.


Transparent images

Since October 2016, you can also make external figures and every other element transparent using \definetransparency and \starttransparent.

\definetransparency[tnormal]    [a=normal,t=.5]
\definetransparency[tmultiply]  [a=multiply,t=.5]
\definetransparency[tdifference][a=difference,t=.5]

\startoverlay
    {\framed[width=10cm,align=normal,foregroundcolor=red]{\input tufte }}
    {\starttransparent[tnormal]\externalfigure[cow.pdf][width=9cm]\stoptransparent}
\stopoverlay

\startoverlay
    {\framed[width=10cm,align=normal,foregroundcolor=red]{\input tufte }}
    {\starttransparent[tmultiply]\externalfigure[cow.pdf][width=9cm]\stoptransparent}
\stopoverlay

\startoverlay
    {\framed[width=10cm,align=normal,foregroundcolor=red]{\input tufte }}
    {\starttransparent[tdifference]\externalfigure[cow.pdf][width=9cm]\stoptransparent}
\stopoverlay


Rendering

Acrobat Reader might not render transparency using RGB in a PDF that is displayed on a monitor. If the colours do not appear correctly, add the following code:

\setupcolors[pagecolormodel=auto]

In Acrobat, when transparency is used, a different route is followed (at least in the past) when rendering. Rendering colorspaces might be adapted to the output medium so it's a combination of colorspace, monitor/paper, calibration, knockout/overprint, transparency groups, assumptions, and so forth.