Est-il possible de hiérarchiser les commandes de changement de couleurs, pour que certaines soient prioritaires sur d'autres ? Par exemple, quand je fais \documentclass{minimal} \usepackage{xcolor} \begin{document} \def\vert#1{{\color{green}#1}} \def\rouge#1{{\color{red}#1}} \rouge{\vert{a}} \end{document} j'obtiens un \def\vert#1{{\color[level=1]{green}#1}} \def\rouge#1{{\color[level=2]{red}#1}} \rouge{\vert{a}} donnerait un |
Avec https://tex.stackexchange.com/a/573099/36296 : \documentclass{minimal} \usepackage{xcolor} \begin{document} \def\vert#1{{\color{green}#1}} \def\rouge#1{{\color{red}\renewcommand\color[2][]{}#1}} \rouge{\vert{a}} \end{document} Publiée 02 Jui '22, 14:18 samcarter 1
Merci. J'avais pensé à une solution comme ça ; ça marche bien, mais ça ne permet de définir qu'un seul niveau. Je voudrais généraliser...
(02 Jui '22, 14:29)
nmarkey
|
Voici une solution. \documentclass{article \usepackage{xcolor} \newcounter{xcolor} \renewcommand{\thexcolor}{% \ifcase\value{xcolor}% black\or %0 green\or %1 blue\or %2 yellow\or %3 purple\or %4 red\fi} %5 \newcommand{\mtvert}{\setcolorvalue{1}} \newcommand{\mtblue}{\setcolorvalue{2}} \newcommand{\mtyellow}{\setcolorvalue{3}} \newcommand{\mtpurple}{\setcolorvalue{4}} \newcommand{\mtred}{\setcolorvalue{5}} \newcommand\setcolorvalue[2]{% \ifnum\value{xcolor}<#1\relax \setcounter{xcolor}{#1}\fi {\color{\thexcolor}#2}% \setcounter{xcolor}{0}} \begin{document} Bonjour le monde \mtvert{Bonjour le monde} \mtvert{\mtred{Bonjour le monde} Hello World!} Bonjour le monde \mtred{\mtvert{Bonjour le monde}} \mtblue{\mtvert{Bonjour le monde}} \mtvert{\mtblue{Bonjour le monde}} \mtblue{\mtyellow{\mtvert{Bonjour le monde}} Hello World!} \mtred{\mtblue{Bonjour le monde}} \end{document} |