Wie färbt man nur die Koeffizienten eines Gleichungssystems?

Wie färbt man nur die Koeffizienten eines Gleichungssystems?

Wie färbt man nur die Koeffizienten eines ausgerichteten Gleichungssystems? Ich versuche, so etwas zu tun:

Bildbeschreibung hier eingeben

Und bisher habe ich versucht, diese Pakete zu verwenden und diese Farben zu definieren:

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

Mein Problem ist, dass die Systemumgebung es mir anscheinend nicht erlaubt, das Minuszeichen der Koeffizienten (ich nehme an, sie werden verwendet, um jeden Term in den Gleichungen zu identifizieren) oder das Gleichheitszeichen einzufärben. Also habe ich Folgendes versucht:

\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*}

Das Problem bei diesem Ansatz besteht darin, dass das Trennzeichen und das Gleichheitszeichen gelb sind und wenn ich versuche, sie schwarz zu färben, erhalte ich die Fehlermeldung: „! L'indice n'est pas un nombre entier !.“

Wenn ich andererseits Folgendes versuche:

    \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}

Ich erhalte diese Ausgabe:

Und hier besteht das Problem darin, dass ich die Minuszeichen nicht einfärbe, anscheinend aus demselben Grund, aus dem ich die Gleichheitszeichen im vorherigen Ansatz nicht einfärben kann.

Ich weiß, dass die Minuszeichen, wie ich die Gleichungen geschrieben habe, technisch gesehen nicht Teil der Koeffizienten sind, sondern eine verkürzte Art, + (-k) auszudrücken, wobei k eine reelle Zahl ist. Aber ich dachte, dass es vielleicht eine Möglichkeit gibt, die LaTeX-formatierte Version des ersten Bildes zu erhalten, das ich hochgeladen habe. Wenn Sie also eine Idee haben, wie das geht, wäre ich Ihnen sehr dankbar :)

PS: Falls sich jemand fragt, das ist das System, das ich aus einem Stromkreis erhalte, daher stammen die Namen der Variablen.

Antwort1

Hier baue ich es von Grund auf als TABstack. Ich verwende es tokcyclenur insoweit, als ich sein Token-Listen-Erstellungsmakro verwende, \addcytoksum das \cytoksToken-Register aufzubauen.

Ich verwende es listofitems, um die Koeffizienten zu analysieren und das Token-Register aufzubauen, das am Ende an den TABstack übergeben wird.

Syntax ist

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

Das 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}

Bildbeschreibung hier eingeben

Wenn ein anderer vertikaler Abstand zwischen den Gleichungen gewünscht wird, kann man diese Zeile in der Präambel ändern.

\setstackgap{L}{1.2\normalbaselineskip}

Antwort2

Erstens vermute ich anhand Ihres Codes, dass Sie die grundlegenden Befehle des xcolorPakets missverstanden haben. Die einfachsten Befehle zum Einfärben eines Textes sind \colorund \textcolor.

  • \textcolordauertzweiobligatorische Argumente, wobei das erste eine gültige Farbe und das zweite die Eingabe ist, die in dieser Farbe ausgegeben werden soll. Ich denke, so wollten Sie es verwenden \color, aber so funktioniert es nicht.

  • \colordauert nureinsobligatorisches Argument, das eine definierte Farbe ist. Wenn Sie aufrufen \color{R}, fordern Sie LaTeX auf, alles (in der aktuellen Gruppe), was folgt, in die Farbe zu schreiben R.

Wenn LaTeX beispielsweise liest \color{R}{I_{1}}, wechselt es zur Farbe Rund wird dann mit dem Lesen von fortgesetzt {I_{1}}, was nicht als Argument von übernommen wird \color.

Ich bin mir auch nicht ganz sicher, wie \systemees funktioniert, aber soweit ich weiß, richtet es das Gleichungssystem mithilfe der Vorzeichen und Variablen aus, daher scheint es wahrscheinlich, dass die Verwendung von Farbbefehlen die Ausrichtung durcheinander bringt.

Daher würde ich Ihnen empfehlen, etwas anderes zu verwenden, um das Gleichungssystem zu erstellen. Das folgende Beispiel verwendet eine arrayUmgebung.

\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}

Dieser Ansatz funktioniert gut, ist aber natürlich weniger automatisch als die übliche Verwendung des \systemeBefehls.

verwandte Informationen