0

can anybody help me adding some colour to this code, for example the digits, cancel, borrow and answer all being different colours.

\documentclass{article}
\usepackage{stringstrings,stackengine}
\newcommand\showdiff[2]{%
  \let\savediff\relax%
  \def\borrow{}%
  \xdef\borrowed{0}%
  \ifnum#1>32\relax\showdiffengine{#1}{#2}\else
    {\ttfamily\Longstack[r]{#1\,{} \underline{-#2\,} {< 0\,}}}\fi
}
\newcommand\showdiffengine[2]{%
  \xdef\opA{#1}%
  \xdef\opB{#2}%
  \lastdigits{\opA}{\opB}%
  \ifnum\borrowed=1\relax\xdef\XdigA{\the\numexpr\digA- 1}\else\xdef\XdigA{\digA}\fi%
   \ifnum\XdigA<0\relax\xdef\XdigA{9}\xdef\futureborrowed{1}\else
    \xdef\futureborrowed{0}\fi
   \edef\coldiff{\the\numexpr\XdigA-\digB\relax}%
   \ifnum\coldiff<0\relax%
    \xdef\borrow{1}%
    \edef\coldiff{\the\numexpr\borrow\XdigA-\digB\relax}%
   \else
    \xdef\borrow{}%
  \fi
  \ifnum\borrowed=0\relax%
    \savestack{\thediff}{\ttfamily\Longstack[l]{%
      \tiny\bllap[1.5\baselineskip]{\borrow} \XdigA{} \underline{\VdigB\kern3pt} %
        \coldiff}}%
  \else
    \savestack{\thediff}{\ttfamily\Longstack[l]{%
     \tiny\brlap[.7\baselineskip]{\borrow\the\numexpr\XdigA} \crossout{\digA} %
        \underline{\VdigB\kern3pt} \coldiff}}%
   \fi
   \if\relax\borrow\relax\xdef\borrowed{0}\else\xdef\borrowed{1}\fi
   \savestack{\savediff}{\thediff\savediff}%
   \ifnum\futureborrowed>0\relax\xdef\borrowed{1}\xdef\fugureborrowed{0}\fi
   \nextcolumn{\opA}{\opB}%
   \ifnum\numexpr0\opA+0\opB>0\relax\showdiffengine{\opA}{\opB}%
   \else
    \Longstack{\underline{\ttfamily-\,} {}}\savediff\fi%
 }
 \newcommand\crossout[1]{\stackengine{0pt}{#1}{/}{O}{c}{F}{F}{L}}
 \newcommand\lastdigits[2]{%
   \substring[q]{#1}{$}{$}%
   \xdef\digA{\thestring}%
   \xdef\VdigA{\digA}\if0\digA\ifnum#1=0\relax\xdef\VdigA{~}\fi\fi%
   \substring[q]{#2}{$}{$}%
   \xdef\digB{\thestring}%
   \xdef\VdigB{\digB}\if0\digB\ifnum#2=0\relax\xdef\VdigB{~}\fi\fi%
 }
 \newcommand\nextcolumn[2]{%
   \substring[q]{#1}{1}{$-1}%
   \xdef\opA{0\thestring}%
   \substring[q]{#2}{1}{$-1}%
   \xdef\opB{0\thestring}%
 }
 \begin{document}

\showdiff{135}{49}\qquad

\end{document}

enter image description here

Paul A
  • 1,055
  • 4
  • 14

1 Answers1

1

With some colors added.

d

\documentclass{article}
\usepackage{stringstrings,stackengine}

\usepackage{xcolor}% added <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \colorlet{digits}{green} \colorlet{cross}{teal} \colorlet{upper}{blue} \colorlet{answer}{gray} \colorlet{borrow}{red}

\newcommand\showdiff[2]{% \let\savediff\relax% \def\borrow{}% \xdef\borrowed{0}% \ifnum#1>32\relax\showdiffengine{#1}{#2}\else {\ttfamily\Longstack[r]{#1,{} \underline{-#2,} {< 0,}}}\fi } \newcommand\showdiffengine[2]{% \xdef\opA{#1}% \xdef\opB{#2}% \lastdigits{\opA}{\opB}% \ifnum\borrowed=1\relax\xdef\XdigA{\the\numexpr\digA- 1}\else\xdef\XdigA{\digA}\fi% \ifnum\XdigA<0\relax\xdef\XdigA{9}\xdef\futureborrowed{1}\else \xdef\futureborrowed{0}\fi \edef\coldiff{\the\numexpr\XdigA-\digB\relax}% \ifnum\coldiff<0\relax% \xdef\borrow{1}% \edef\coldiff{\the\numexpr\borrow\XdigA-\digB\relax}% \else \xdef\borrow{}% \fi \ifnum\borrowed=0\relax% \savestack{\thediff}{% \ttfamily\Longstack[l]{% \tiny\bllap[1.5\baselineskip]{\textcolor{borrow}{\borrow}} \textcolor{digits}{\XdigA{}} \underline{\textcolor{digits}{\VdigB}\kern3pt} % <<<<<<<<<<< \textcolor{answer}{\coldiff}}}% <<<<<<<<<<< \else \savestack{\thediff}{\ttfamily\Longstack[l]{% \tiny\brlap[.7\baselineskip]{\color{upper}\borrow\the\numexpr\XdigA} \crossout{\textcolor{digits}{\digA}} % % <<<<<<<<<<< \underline{\textcolor{digits}{\VdigB}\kern3pt}% \ \textcolor{answer}{\coldiff}}}% <<<<<<<<<<<<<<<<<< \fi \if\relax\borrow\relax\xdef\borrowed{0}\else\xdef\borrowed{1}\fi \savestack{\savediff}{\thediff\savediff}% \ifnum\futureborrowed>0\relax\xdef\borrowed{1}\xdef\fugureborrowed{0}\fi \nextcolumn{\opA}{\opB}% \ifnum\numexpr0\opA+0\opB>0\relax\showdiffengine{\opA}{\opB}% \else \Longstack{\underline{\ttfamily-,} {}}\savediff\fi% } \newcommand\crossout[1]{\stackengine{0pt}{#1}{\textcolor{cross}{/}}{O}{c}{F}{F}{L}}% <<<<<<<<<<<<<<<<<<, \newcommand\lastdigits[2]{% \substring[q]{#1}{$}{$}% \xdef\digA{\thestring}% \xdef\VdigA{\digA}\if0\digA\ifnum#1=0\relax\xdef\VdigA{~}\fi\fi% \substring[q]{#2}{$}{$}% \xdef\digB{\thestring}% \xdef\VdigB{\digB}\if0\digB\ifnum#2=0\relax\xdef\VdigB{~}\fi\fi% } \newcommand\nextcolumn[2]{% \substring[q]{#1}{1}{$-1}% \xdef\opA{0\thestring}% \substring[q]{#2}{1}{$-1}% \xdef\opB{0\thestring}% } \begin{document} \Large

\showdiff{135}{49}\bigskip          

\showdiff{2022}{1776}\bigskip

\end{document}

Simon Dispa
  • 39,141