11

How can I convert a color name (such as used with the xcolor package) to a pdfliteral code, like q 1 0 0 rg (for red)?

raphink
  • 31,894
  • What is the context here? The drivers for the color package normally deal with this for LaTeX users, as this keeps code driver-independent. Also, with a sufficiently up-to-date pdfTeX or LuaTeX, why use \pdfliteral rather than \pdfcolorstack? – Joseph Wright Sep 19 '11 at 09:28
  • @JosephWright The context is in Lua code, and I can't use \color there because I'm inserting PDF annotations from the Lua code. – raphink Sep 19 '11 at 09:30
  • The way that named colours are done is by defining what they convert to: a colour model and then some values. I'd imagine a Lua solution would be done the same way. Can't you just access the appropriate macro definitions from the Lua end? – Joseph Wright Sep 19 '11 at 09:36
  • @JosephWright Sure, then I guess my question would be if there is such a macro which converts a color name into a space separated triplet of RGB components? – raphink Sep 19 '11 at 09:38

1 Answers1

14
\pdfcompresslevel=0 % to make everything visible in the pdf 
\documentclass{article}
\usepackage{xcolor}
\def\usecolor#1{\csname\string\color@#1\endcsname\space}

\begin{document}
foo
\pdfliteral{\usecolor{red}}
bar
\end{document}

in pdf it is: 1 0 0 rg 1 0 0 RG