방정식 시스템의 계수만 색칠하는 방법은 무엇입니까?

방정식 시스템의 계수만 색칠하는 방법은 무엇입니까?

정렬된 방정식 시스템의 계수에만 색상을 지정하는 방법은 무엇입니까? 나는 이런 식으로하려고합니다 :

여기에 이미지 설명을 입력하세요

지금까지 저는 다음 패키지를 사용하고 다음 색상을 정의해 보았습니다.

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

내가 가진 문제는 시스템 환경에서 계수의 빼기 기호(방정식의 모든 항을 식별하는 데 사용하는 것 같습니다)나 등호에 색상을 지정할 수 없다는 것입니다. 그래서 이것이 제가 시도한 것입니다:

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

여기서 이 접근 방식의 문제점은 구분 기호와 등호 기호가 노란색이고 이를 검정색으로 표시하려고 하면 다음과 같은 오류 메시지가 표시된다는 것입니다. "! L'indice n'est pas un nombre entier !."

반면에 이것을 시도하면 다음과 같습니다.

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

나는 다음과 같은 결과를 얻습니다.

그리고 여기서 문제는 빼기 기호에 색상이 지정되지 않는다는 것입니다. 분명히 이전 접근 방식에서 등호 기호에 색상을 지정할 수 없는 것과 같은 이유 때문입니다.

기술적으로는 제가 방정식을 작성할 때 빼기 기호가 계수의 일부가 아니라 오히려 +(-k)를 단축하여 표현하는 방식이라는 것을 알고 있습니다. 여기서 k는 실수입니다. 그런데 처음 업로드한 이미지의 LaTeX 형식 버전을 얻을 수 있는 방법이 있지 않을까 생각했습니다. 그러므로 그 방법이 무엇인지 아시면 알려주시면 감사하겠습니다. :)

추신: 누군가 궁금해할 경우를 대비해 말씀드리자면, 이는 제가 전기 회로에서 얻은 시스템이므로 변수의 이름이 여기서 유래되었습니다.

답변1

여기서는 TABstack으로 처음부터 빌드합니다. 나는 tokcycle토큰 목록 구축 매크로를 사용 \addcytoks하여\cytoks 사용합니다 .

나는 사용한다listofitems 계수를 구문 분석하고 토큰 레지스터를 구축하는 데 사용하며, 이는 결국 TABstack에 전달됩니다.

구문은

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

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}

여기에 이미지 설명을 입력하세요

방정식 사이에 서로 다른 수직 공간이 필요한 경우, 서문에서 이 줄을 변경할 수 있습니다.

\setstackgap{L}{1.2\normalbaselineskip}

답변2

첫째, 귀하의 코드에서 패키지의 기본 명령을 오해한 것 같습니다 xcolor. 텍스트에 색상을 지정하는 가장 간단한 명령은 \color및 입니다 \textcolor.

  • \textcolor걸립니다필수 인수입니다. 첫 번째는 유효한 색상이고 두 번째는 해당 색상으로 출력하려는 ​​입력입니다. 나는 이것이 당신이 사용하려는 방식이라고 생각 \color하지만 작동 방식은 아닙니다.

  • \color소요하나정의된 색상인 필수 인수입니다. 을 호출하면 \color{R}LaTeX에게 색상 뒤에 오는 모든 항목(현재 그룹의)을 쓰도록 요청합니다 R.

예를 들어 LaTeX가 를 읽을 때 \color{R}{I_{1}}색상으로 전환한 다음 의 인수로 사용되지 않는 R에서 읽기가 계속됩니다 .{I_{1}}\color

또한 어떻게 작동하는지 잘 모르겠지만 \systeme내가 아는 한 기호와 변수를 사용하여 방정식 시스템을 정렬하므로 색상 명령을 사용하면 정렬이 엉망이 될 가능성이 있는 것 같습니다.

그러므로 방정식 시스템을 만들려면 다른 것을 사용하는 것이 좋습니다. 다음 예에서는 array환경을 사용합니다.

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

이 접근 방식은 잘 작동하지만 물론 일반적인 명령 사용보다 덜 자동적입니다 \systeme.

관련 정보