Я хочу по-разному покрасить отдельные группы большого числа. НапримерКак покрасить группы большого числа в LaTeX
111222333444.555
Я хочу быть 111 красными, 222, чтобы быть зелеными, 333, чтобы быть синим, а 444,555 быть черным.
До сих пор я использовал это:
\newcommand{ \byte}[1]{{\textcolor[rgb]{0.0,0.0,0.0}{#1}}}
\newcommand{\kilobyte}[1]{{\textcolor[rgb]{0.0,0.0,0.5}{#1}}}
\newcommand{\megabyte}[1]{{\textcolor[rgb]{0.0,0.0,1.0}{#1}}}
\newcommand{\gigabyte}[1]{{\textcolor[rgb]{0.7,0.0,0.0}{#1}}}
\newcommand{\BBx}[1]{{\byte{#1}}}
\newcommand{\KBx}[2]{{\kilobyte{#1},\BBx{#2}}}
\newcommand{\MBx}[3]{{\megabyte{#1},\KBx{#2}{#3}}}
\def\BBrelax#1\relax{\BBx{#1}}
\def\KBrelax#1,#2\relax{\KBx{#1}{#2}}
\def\MBrelax#1,#2,#3\relax{\MBx{#1}{#2}{#3}}
\def\BB#1{\BBrelax#1\relax}
\def\KB#1{\KBrelax#1\relax}
\def\MB#1{\MBrelax#1\relax}
и я хотел бы написать
\MB{111,222,333.444} blah blah blah \KB{111,222}
Но это имеет тот недостаток, что я сам определить, насколько большой номер и использовать правильную команду в зависимости от количества цифр, и мне пришлось отделить их вручную. Однако теперь я загружаю эти данные автоматически (csvreader), поэтому мне нужна команда, чтобы делать все это автоматически.
В основном я ищу реализацию команды, где я могу сказать
\mynumber{111222333444.666, red, green, blue, black}
\mynumber{111222.333, red, green, blue, black}
и он делает правильную вещь для меня (последние 3 цифры в том числе десятичных знаков будет черным, тысячи синий, миллионы зеленых, и миллиарды красные). Было бы хорошо иметь верхнюю границу (например, для обработки максимального количества групп), но она должна иметь возможность обрабатывать большие числа, а также небольшие числа.
Что я пробовал: я попытался использовать команду \ num и \ sepnum, обе кажутся неспособными делать то, что я хочу. Я попытался реализовать его сам с помощью fp и некоторых умных вычислений, но для этого мне понадобилось бы модульное и целочисленное деление с плавающей запятой, оба они не поддерживаются этим пакетом.
Любые идеи? Заранее спасибо.
Edit: Я хочу, чтобы использовать его как это:
\documentclass{article}
\usepackage{csvsimple} % for csv reader
\RequirePackage{xcolor}
\begin{document}
\myno{.555}
\myno{111222333444.555}
\myno{111222333444}
\myno{444555666777888999.12345}
\begin{figure}[htp!]
\centering
\csvreader[tabular=r r, table head=Hello & World\\]{test.csv}{Foo=\foo,Bar=\bar}{\myno{\foo} & \myno{\bar}}
\caption{Baz}
\label{figure:baz}
\end{figure}
\end{document}
с файлом CSV (test.csv):
Foo,Bar
1,2
222,333
222333.444,11122233344555
upvote потому что он работает. Если бы вы могли объяснить мне, как (в комментарии или в редакции), я буду отмечать его также как принято. – loonytune
Другая проблема: хотя она работает в текстовом формате, как я описал, я использую его в csv-ридере. там все числа остаются черными. любые идеи почему? – loonytune
Пожалуйста, отправьте сообщение MWE. – Jagath