¿Cómo colorear sólo los coeficientes de un sistema de ecuaciones?

¿Cómo colorear sólo los coeficientes de un sistema de ecuaciones?

¿Cómo colorear solo los coeficientes de un sistema de ecuaciones alineado? Estoy intentando hacer algo como esto:

ingrese la descripción de la imagen aquí

Y hasta ahora, he intentado usar estos paquetes y definir estos colores:

\usepackage{amsmath,systeme}
\usepackage{xcolor}
\definecolor{V}{HTML}{00a2e8}
\definecolor{R}{HTML}{fbc200}
\definecolor{B}{HTML}{000000}

El problema que tengo es que aparentemente el entorno del sistema no me permite colorear el signo menos de los coeficientes (supongo que los está usando para identificar cada término de las ecuaciones) ni el símbolo igual. Entonces esto es lo que he probado:

\begin{equation*}\mathcolor{R}{
  \systeme[I_{1}I_{2}I_{3}I_{4}]{
    6\color{B}{I_{1}}-3\color{B}{I_{2}} -1\color{B}{I_{3}}=\color{V}{5},
    -3\color{B}{I_{1}} +7\color{B}{I_{2}} -2\color{B}{I_{4}}=\color{V}{-23},
    -1\color{B}{I_{1}}+3\color{B}{I_{3}} -1\color{B}{I_{4}}=\color{V}{5},
    -2\color{B}{I_{2}} -1\color{B}{I_{3}} +4\color{B}{I_{4}}=\color{V}{3}
  }}
\end{equation*}

Aquí, el problema con este enfoque es que el delimitador y el símbolo igual son amarillos y cuando intento colorearlos de negro, aparece un mensaje de error que dice: "! L'indice n'est pas un nombre entier!."

Por otro lado, cuando intento esto:

    \begin{equation}
\systeme*{
    \color{R}{6}\color{B}{I_{1}} -\color{R}{3}\color{B}{I_{2}}-\color{R}{1}\color{B}{I_{3}}=\color{V}{5},
    \color{R}-3\color{B}{I_{1}}+\color{R}{7}\color{B}{I_{2}} -\color{R}{2}\color{B}{I_{4}}=\color{V}{-23},
    \color{R}{-1}\color{B}{I_{1}}+\color{R}{3}\color{B}{I_{3}}-\color{R}{1}\color{B}{I_{4}}=\color{V}{5},
    \color{R}-\color{R}{2}\color{B}{I_{2}}-\color{R}{1}\color{B}{I_{3}} +\color{R}{4}\color{B}{I_{4}}=\color{V}{3}
}
\end{equation}

Obtengo este resultado:

Y el problema aquí es que no puedo colorear los signos menos, aparentemente por la misma razón que no puedo colorear los símbolos iguales en el método anterior.

Sé que técnicamente los signos menos, mientras escribí las ecuaciones, no son parte de los coeficientes, sino más bien una forma abreviada de decir + (-k) donde k es un número real. Pero pensé que podría haber una manera de obtener la versión formateada en LaTeX de la primera imagen que subí. Por lo tanto, si tienes alguna idea de cuál es esa forma, te estaré muy agradecido :)

PD: Por si alguien se lo pregunta, ese es el sistema que obtengo de un circuito eléctrico, de ahí proviene el nombre de las variables.

Respuesta1

Aquí lo construyo desde cero como TABstack. Lo uso tokcyclesolo en la medida en que empleo su macro de creación de lista de tokens \addcytokspara crear el \cytoksregistro de tokens.

Utilizo listofitemspara analizar los coeficientes y construir el registro de token, que al final se pasa al TABstack.

La sintaxis es

\mysystem{<color1>}{<color2>}{<Variable>}{<coefficients>}

El MWE:

\documentclass{article}
\usepackage{listofitems,tokcycle,xcolor,tabstackengine}
\TABstackMath
\newcommand\mysystem[4]{%
 \begingroup
 \setsepchar{\\/&}%
 \readlist\zlist{#4}%
 \foreachitem\z\in\zlist[]{%
   \foreachitem\zz\in\zlist[\zcnt]{%
     \if\relax\zz\relax\addcytoks{&}\ifnum\zzcnt=1\relax\else
       \addcytoks{&&}\fi\else
     \ifnum\zzcnt=\listlen\zlist[1]\addcytoks{&{}={}&}\relax\else
       \ifnum\zzcnt=1\else\ifnum\zz<0\addcytoks{&&}\else
         \addcytoks{&{}+{}&}\fi\fi\fi
     \ifnum\zzcnt=\listlen\zlist[1]\relax\addcytoks{\textcolor{#2}\bgroup}%
       \else\addcytoks{\textcolor{#1}\bgroup}\fi
     \addcytoks[1]{\expandafter{\zz}\egroup}%
     \ifnum\zzcnt=\listlen\zlist[1]\relax
       \ifnum\zcnt=\listlen\zlist[]\else\addcytoks{\\}\fi\else
         \addcytoks{#3_}\addcytoks[1]{\expandafter{\zzcnt}}%
       \addcytoks{&}\fi
     \fi
   }%
}
\renewcommand\stackalignment{r}%
\expandafter\tabbedCenterstack\expandafter{\the\cytoks}
\endgroup
}
\setstackgap{L}{1.2\normalbaselineskip}
\begin{document}
\[
\left\{\mysystem{orange!80!black}{cyan!80!black}{I}
  {6&-3&-1&&5\\-3&7&&-2&-23\\-1&&3&-1&5\\&-2&-1&4&3}\right.
\]
\end{document}

ingrese la descripción de la imagen aquí

Si se desea un espacio vertical diferente entre las ecuaciones, se puede modificar esta línea en el preámbulo,

\setstackgap{L}{1.2\normalbaselineskip}

Respuesta2

Primero, supongo por tu código que no entendiste los comandos básicos del xcolorpaquete. Sus comandos más simples que colorean un texto son \colory \textcolor.

  • \textcoloraceptadosargumentos obligatorios, siendo el primero un color válido y el segundo la entrada que desea que se genere en ese color. Creo que así es como pretendías usarlo \color, pero no es así como funciona.

  • \colorsolo tomaunoargumento obligatorio que es un color definido. Cuando llamas \color{R}, le pides a LaTeX que escriba todo (en el grupo actual) que sigue en el color R.

Entonces, por ejemplo, cuando LaTeX lee \color{R}{I_{1}}, cambia al color Ry luego la lectura continúa desde {I_{1}}, lo cual no se toma como argumento de \color.

Además, no estoy totalmente seguro de cómo \systemefunciona, pero hasta donde yo sé, alinea el sistema de ecuaciones usando los signos y las variables, por lo que parece probable que el uso de comandos de color estropee la alineación.

Por lo tanto, creo que te recomendaría que uses algo más para hacer el sistema de ecuaciones. El siguiente ejemplo utiliza un arrayentorno.

\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\usepackage{xcolor}
\definecolor{V}{HTML}{00a2e8}
\definecolor{R}{HTML}{fbc200}
\definecolor{B}{HTML}{000000}
\newcommand*{\I}[1]{\textcolor{B}{I_{#1}}}
\newcommand*{\p}{\textcolor{B}{+}}
\newenvironment{systemeq}{%
    \renewcommand{\arraycolsep}{0pt}
    \left\{
    \begin{array}{>{\color{R}}r @{\mkern\medmuskip}%
                  >{\color{R}}c @{\mkern\medmuskip}%
                  >{\color{R}}r @{\mkern\medmuskip}%
                  >{\color{R}}c @{\mkern\medmuskip}%
                  >{\color{R}}r @{\mkern\medmuskip}%
                  >{\color{R}}c @{\mkern\medmuskip}%
                  >{\color{R}}r%
                  @{\mkern\thickmuskip{=}\mkern\thickmuskip}%
                  >{\color{V}}l}%
}{%
    \end{array}
    \right.
}
\begin{document}
\[
\begin{systemeq}
     6\I{1} &  - & 3\I{2} &  - & 1\I{3} &    &        &   5 \\
    -3\I{1} & \p & 7\I{2} &    &        &  - & 2\I{4} & -23 \\
    -1\I{1} &    &        & \p & 3\I{3} &  - & 1\I{4} &   5 \\
            &  - & 2\I{2} &  - & 1\I{3} & \p & 4\I{4} &   3
\end{systemeq}
\]
\end{document}

Este enfoque funciona bien, pero por supuesto es menos automático que el uso habitual del \systemecomando.

información relacionada