11

I'm fiddling with source code display (Objective-C) and the listings package. I want to colour comments the same green that appears in XCode. I determined that it has an RGB value of 67, 133, 34. To use this I need to divide by 255 since this is the format/value range of input parameters to

\definecolor{green}{rgb}{0.34,0.52,0.14}

Is there any way to write a macro in latex that divides by 255? Thanks.

In response to comment:

If I do

\usepackage{listings} % For source code display.
\usepackage{courier} % For source code display.
\usepackage{xcolor}

\lstset{basicstyle=\footnotesize\ttfamily}
\lstset{language=[Objective]C}
\definecolor{green}{rgb}{67,133,34}
\lstset{commentstyle=\color{green}}

instead of

\usepackage{listings} % For source code display.
\usepackage{courier} % For source code display.
\usepackage{color}

\lstset{basicstyle=\footnotesize\ttfamily}
\lstset{language=[Objective]C}
\definecolor{green}{rgb}{0.34,0.52,0.14}
\lstset{commentstyle=\color{green}}

the comment in my source code listing vanishes.

Matt N.
  • 543
  • 6
  • 13

1 Answers1

21

With the package xcolor you can define colors using the range 0–255 with the RGB color model:

\definecolor{mygreen}{RGB}{67,133,34}

(notice the uppercase letters). A more complicated way using color would be

\documentclass{article}
\usepackage{color}
\makeatletter
\newcommand{\defineRGBcolor}[2]{%
  \begingroup
  \def\color@values{\@gobble}%
  \@for\next:=#2\do{%
    \count0=\next\relax
    \multiply\count0 100
    \divide\count0 255
    \edef\color@values{\color@values,0.\number\count0}%
  }%
  \edef\x{\endgroup\noexpand\definecolor{#1}{rgb}{\color@values}}\x
}
\makeatother
\defineRGBcolor{agreen}{67, 133, 34}
\definecolor{bgreen}{rgb}{0.26,0.52,0.13}
\begin{document}
\textcolor{agreen}{ABCDEF}

\textcolor{bgreen}{ABCDEF}
\end{document}

The rgb value 0.26,0.52,0.13 is what really corresponds to 67,133,34 dividing by 255.

egreg
  • 1,121,712
  • Thank you very much! Btw, do you by any chance know how to colour numbers (numerical constants) in source code listings using the listings package? I didn't find out how and now I suspect it might be impossible. (unless I write my own listings package?) – Matt N. Mar 13 '13 at 17:33
  • 1
    @MattN. That's a very different question. I believe there's something on the site. – egreg Mar 13 '13 at 17:36
  • @MattN. You can find it here: http://tex.stackexchange.com/a/32176/24276 – DennisH Mar 13 '13 at 17:59
  • you can use the same RGB syntax in the original color package as well in most back end drivers. (All of the original ones at least). – David Carlisle Mar 13 '13 at 18:35