17

I'm using the listings package and was already able to modify the color of the keywords and almost all elements I was interested in. The only thing that remains is the color of the digits. I'd like to have all numbers within my source codes to be coloured in red. Do you know any smart way of doing this ?

I was able to change the colour of single digits but not of whole numbers. Any help would be greatly appreciated.

2

1 Answer 1

20
\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{listings}
\lstset{literate=%
    {0}{{{\color{red}0}}}1
    {1}{{{\color{red}1}}}1
    {2}{{{\color{red}2}}}1
    {3}{{{\color{red}3}}}1
    {4}{{{\color{red}4}}}1
    {5}{{{\color{red}5}}}1
    {6}{{{\color{red}6}}}1
    {7}{{{\color{red}7}}}1
    {8}{{{\color{red}8}}}1
    {9}{{{\color{red}9}}}1
}
\begin{document}

\begin{lstlisting}
This is a test
123 + 456 = 789
\end{lstlisting}

\end{document}

enter image description here

6
  • +1 Is it possible to change the hard-coded list of {*}{{{\color{red}*}}}1 into a looping form? Jul 20, 2011 at 21:26
  • 1
    This also colors numbers inside comments, though.
    – Clément
    Nov 15, 2011 at 7:17
  • 12
    @Clément: Add a star before the zero, i.e. {0}{{{\color{red}0}}}1 -> *{0}{{{\color{red}0}}}1 to only colour outside of strings and comments. You only need to do this once, so not for the rest of the numerals.
    – qubyte
    Jan 31, 2012 at 15:57
  • 3
    However, be aware that, with those literate replacements of digits, if you define identifiers containing digits, listings won't be able to recognise those identifiers as such. For instance, if you have alsoletter={1},morekeywords={test1},keywordstyle=\color{blue}, then Herbert's literate replacements will prevent test8 from being coloured in blue.
    – jub0bs
    Feb 17, 2014 at 12:48
  • @xport I know your question is old, but, if you're still interested, look at egreg's answer to tex.stackexchange.com/questions/164442/…
    – jub0bs
    Aug 16, 2014 at 12:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .