Resultado Esperado

Resultado Esperado

Tengo un anidado foreach, donde cada bucle está en el mismo rango de números. Quiero aplicar un estilo que depende de la relación entre los números ( \my \xen el código de ejemplo), es decir, si son iguales, si el primero es menor que el segundo o si el segundo es menor que el primero.

Prefiero una solución con estilos tikz siempre que no sea extremadamente complicada; otras soluciones también son aceptables (como el uso de macros).

Código de ejemplo

El código podría verse así (sin el orzuelo conditional styleimplementado).

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

Resultado Esperado

En el siguiente resultado, se utilizan tachado, negrita y simple como estilos ejemplares, porque SO no permite texto en color que yo sepa.

12 3

1 23

1 2 3

Respuesta1

Esto fue mucho más fácil de lo esperado. El siguiente estilo incluso permite especificar los estilos condicionales como argumentos.

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

Producción

ingrese la descripción de la imagen aquí

Respuesta2

Puedes evaluar una condición y pasarla a tus propias claves de estilo.

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

ingrese la descripción de la imagen aquí

Tenga en cuenta que minimalla clase no está destinada a usuarios sino a desarrolladores de LaTeX. La clase mínima real para usuarios finales es article.

información relacionada