
정렬된 방정식 시스템의 계수에만 색상을 지정하는 방법은 무엇입니까? 나는 이런 식으로하려고합니다 :
지금까지 저는 다음 패키지를 사용하고 다음 색상을 정의해 보았습니다.
\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*}
반면에 이것을 시도하면 다음과 같습니다.
\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
.