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.

lockstep
  • 250,273
Nanoc
  • 171

1 Answers1

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

  • +1 Is it possible to change the hard-coded list of {*}{{{\color{red}*}}}1 into a looping form? – Display Name Jul 20 '11 at 21:26
  • 1
    This also colors numbers inside comments, though. – Clément Nov 15 '11 at 07: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 '12 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 '14 at 12:48
  • @xport I know your question is old, but, if you're still interested, look at egreg's answer to http://tex.stackexchange.com/questions/164442/how-can-i-redefine-my-macro-to-accept-a-charcode-instead-of-a-character – jub0bs Aug 16 '14 at 12:12
  • @Jubobs How can I only change the figures in only a flow? – Duy Jun 08 '17 at 23:13