예상 결과

예상 결과

foreach각 루프가 동일한 숫자 범위에 걸쳐 있는 중첩이 있습니다 . 숫자 사이의 관계(예제 코드 \m에서 ) 에 따라 스타일을 적용하고 싶습니다 \x. 즉, 숫자가 같은지, 첫 번째가 두 번째보다 낮는지, 두 번째가 첫 번째보다 낮은지 여부에 따라 스타일을 적용하고 싶습니다.

나는 극도로 복잡하지 않은 한 tikz 스타일의 솔루션을 선호하며 다른 솔루션도 허용됩니다(예: 매크로 사용).

예제 코드

코드는 다음과 같을 수 있습니다(다래끼는 conditional style구현되지 않음).

\documentclass{minimal}
\usepackage{tikz} 
\begin{document}

\foreach \m in {1,...,3} {%
\noindent
\begin{tikzpicture}
    \foreach \x in {1,...,3} {%
        \node[conditional style=\x wrt \m] at (\x,0) {\x};
    }
\end{tikzpicture}
\par
}
\end{document}

예상 결과

다음 출력에서는 SO가 컬러 텍스트 afaik을 허용하지 않기 때문에 취소선, 볼드체 및 일반 스타일이 예시 스타일로 사용됩니다.

12 3

1 2

1 2

답변1

이것은 예상보다 훨씬 쉬웠습니다. 다음 스타일을 사용하면 조건부 스타일을 인수로 지정할 수도 있습니다.

\documentclass{minimal}
\usepackage{tikz} 
\begin{document}

\foreach \m in {1,...,10} {%
\noindent
\begin{tikzpicture}[%
    compare/.code n args={5}{%
        \ifnum##1<##2
            \pgfkeysalso{##3}
        \else
            \ifnum##1>##2
                \pgfkeysalso{##5}
            \else
                \pgfkeysalso{##4}
            \fi
        \fi}
    ]
    \foreach \x in {1,...,10} {%
        \node[compare={\x}{\m}{blue}{black}{red}] at (\x,0) {\x};
    }
\end{tikzpicture}
\par
}
\end{document}

산출

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

답변2

조건을 평가하고 이를 자신만의 스타일 키에 전달할 수 있습니다.

\documentclass{article}
\usepackage{tikz}
\tikzset{
  mystyle/.is choice,
  mystyle/.default=0,
  mystyle/1/.style=mytrue,
  mystyle/0/.style=myeq,
  mystyle/-1/.style=myfalse,
  myeq/.style={black,draw},
  mytrue/.style=blue,
  myfalse/.style=red
}
\begin{document}
\begin{tikzpicture}
\foreach \m in {1,...,10}{%
  \foreach \x in {1,...,10}{%
    \pgfmathtruncatemacro\mychoice{ifthenelse(\x==\m,0,{ifthenelse(\x>\m,1,-1)})}
    \node[mystyle=\mychoice] at (\x,-\m) {\x};
  }
}
\end{tikzpicture}
\end{document}

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

클래스 는 minimal사용자를 위한 것이 아니라 LaTeX 개발자를 위한 것입니다. 최종 사용자를 위한 실제 최소 클래스는 입니다 article.

관련 정보