
¿Cómo colorear solo los coeficientes de un sistema de ecuaciones alineado? Estoy intentando hacer algo como esto:
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*}
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:
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 tokcycle
solo en la medida en que empleo su macro de creación de lista de tokens \addcytoks
para crear el \cytoks
registro de tokens.
Utilizo listofitems
para 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}
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 xcolor
paquete. Sus comandos más simples que colorean un texto son \color
y \textcolor
.
\textcolor
aceptadosargumentos 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.\color
solo 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 colorR
.
Entonces, por ejemplo, cuando LaTeX lee \color{R}{I_{1}}
, cambia al color R
y 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 \systeme
funciona, 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 array
entorno.
\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 \systeme
comando.