Combinaciones de cadenas

Combinaciones de cadenas

Acabo de empezar a utilizar la biblioteca en cadena. Quiero mostrar 3 niveles de comprensión con cada cadena.

cadena 1. Cadena de campos iniciales 2. Cadena de explicación 3. Imágenes

ingrese la descripción de la imagen aquí

En algún momento de mi documento, quiero mostrar chain 1solo, luego chain 1 & 2, luego chain 1 & 3y finalmente solo chain 3.

Necesitaba alinear la cadena y el uso de right ofno me permite utilizar ifdeclaraciones. Así que solo necesito un poco de ayuda para usar condicionalmente el mismo código para tener una combinación de cadenas.

Aquí está MWE

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{chains}
\def\Couleur{orange}

\begin{document}


\begin{tikzpicture}[
        start chain=1 going below, 
        start chain=2 going right,
        start chain=3 going below,
        node distance=2mm,
    Champs/.style={
        on chain=1,
        rectangle,
        rounded corners,
        draw=blue!30, 
        very thick,
        text centered,
        text width=3cm,
        minimum height=12mm,
        fill=blue!20
        },
    desc/.style={
        on chain=2,
        rectangle,
        draw=blue!10, 
        very thick,
        text centered,
        text width=6cm,
        minimum height=12mm,
        fill=blue!5
        },
    symb/.style={Champs,
        on chain=3,
        text width=2.3cm,
        },
    every node/.append style = {
        on chain},
    ]

{[start chain=1]
   \node[Champs,]                       (Level1) {Field 1};
   \node[Champs,below=0.1cm of Level1]  (Level2) {Field 2};
   \node[Champs,below=0.1cm of Level2]  (Level3) {Field 3};
   \node[Champs,below=0.1cm of Level3,fill=\Couleur!50]     (Level4) {Field 4};
   \node[Champs,below=0.1cm of Level4]  (Level5) {Field 5};
   \node[Champs,below=0.1cm of Level5]  (Level6) {Field 6};
}

{[start chain=2]
   \node[desc,right=of Level1]      (Desc1) {Description a bit longer 1};
   \node[desc,below=0.1cm of Desc1]     (Desc2) {Description a bit longer 2};
   \node[desc,below=0.1cm of Desc2]     (Desc3) {Description a bit longer 3};
   \node[desc,below=0.1cm of Desc3,fill=\Couleur!10]    (Desc4) {Description a bit longer 4};
   \node[desc,below=0.1cm of Desc4]     (Desc5) {Description a bit longer 4};
   \node[desc,below=0.1cm of Desc5]     (Desc6) {Description a bit longer 6};
}
{
[start chain=3]
   \node[symb,right=of Desc1]           (Symb1) {\includegraphics[width=1cm]{example-image} };
   \node[symb,below=0.1cm of Symb1]     (Symb2) {\includegraphics[width=1cm]{example-image}}; 
   \node[symb,below=0.1cm of Symb2]     (Symb3) {\includegraphics[width=1cm]{example-image} };
   \node[symb,below=0.1cm of Symb3,fill=\Couleur!50] (Symb4) {\includegraphics[width=1cm]{example-image} };
   \node[symb,below=0.1cm of Symb4]     (Symb5) {\includegraphics[width=1cm]{example-image} };
   \node[symb,below=0.1cm of Symb5]     (Symb6) {\includegraphics[width=1cm]{example-image} };
}

\end{tikzpicture}

\end{document}

Respuesta1

Creo que no estás usando las cadenas correctamente. Ya no necesitas agregar todos los below=0.1cm of ...si usas una cadena que sea going below. Agregué algunos peros.

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{chains}
\def\Couleur{orange}
\newif\ifChainTwo
\newif\ifChainThree
\begin{document}


\begin{tikzpicture}[
        start chain=1 going below, 
        start chain=2 going below,
        start chain=3 going below,
        node distance=2mm,
    Champs/.style={
        on chain=1,
        rectangle,
        rounded corners,
        draw=blue!30, 
        very thick,
        text centered,
        text width=3cm,
        minimum height=12mm,
        fill=blue!20
        },
    desc/.style={
        on chain=2,
        rectangle,
        draw=blue!10, 
        very thick,
        text centered,
        text width=6cm,
        minimum height=12mm,
        fill=blue!5
        },
    symb/.style={Champs,
        on chain=3,
        text width=2.3cm,
        },
    every node/.append style = {
        on chain},
    ]
%\ChainTwotrue
%\ChainThreetrue
{[start chain=1]
   \node[Champs,alias=Desc1]                       (Level1) {Field 1};
   \node[Champs]  (Level2) {Field 2};
   \node[Champs]  (Level3) {Field 3};
   \node[Champs,fill=\Couleur!50]     (Level4) {Field 4};
   \node[Champs]  (Level5) {Field 5};
   \node[Champs]  (Level6) {Field 6};
}
\ifChainTwo
{[start chain=2]
   \node[desc,right=of Level1]      (Desc1) {Description a bit longer 1};
   \node[desc]     (Desc2) {Description a bit longer 2};
   \node[desc]     (Desc3) {Description a bit longer 3};
   \node[desc,fill=\Couleur!10]    (Desc4) {Description a bit longer 4};
   \node[desc]     (Desc5) {Description a bit longer 4};
   \node[desc]     (Desc6) {Description a bit longer 6};
}
\fi
\ifChainThree
{
[start chain=3]
   \node[symb,right=of Desc1]           (Symb1) {\includegraphics[width=1cm]{example-image} };
   \node[symb]     (Symb2) {\includegraphics[width=1cm]{example-image}}; 
   \node[symb]     (Symb3) {\includegraphics[width=1cm]{example-image} };
   \node[symb,fill=\Couleur!50] (Symb4) {\includegraphics[width=1cm]{example-image} };
   \node[symb]     (Symb5) {\includegraphics[width=1cm]{example-image} };
   \node[symb]     (Symb6) {\includegraphics[width=1cm]{example-image} };
}
\fi
\end{tikzpicture}

\end{document}

ingrese la descripción de la imagen aquí

Si descomentas \ChainTwotrueobtienes

ingrese la descripción de la imagen aquí

Si descomentas \ChainThreetrueobtienes

ingrese la descripción de la imagen aquí

Y si descomentas ambos, obtendrás

ingrese la descripción de la imagen aquí

Tenga en cuenta que también se podría hacer que el color naranja sea un poco más automático.

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{chains}
\def\Couleur{orange}
\newif\ifChainTwo
\newif\ifChainThree
\begin{document}


\begin{tikzpicture}[
        start chain=1 going below, 
        start chain=2 going below,
        start chain=3 going below,
        node distance=2mm,
    Champs/.style={
        on chain=1,
        rectangle,
        rounded corners,
        draw=blue!30, 
        very thick,
        text centered,
        text width=3cm,
        minimum height=12mm,
        fill=blue!20,
        cond={4}{fill=\Couleur!50}
        },
    desc/.style={
        on chain=2,
        rectangle,
        draw=blue!10, 
        very thick,
        text centered,
        text width=6cm,
        minimum height=12mm,
        fill=blue!5,
        cond={4}{fill=\Couleur!10}
        },
    symb/.style={Champs,
        on chain=3,
        text width=2.3cm,
        cond={4}{fill=\Couleur!50}
        },
    every node/.append style = {
        on chain},
    cond/.code 2 args={\ifnum\tikzchaincount=#1
     \tikzset{#2}
    \fi}    
    ]
\ChainTwotrue
\ChainThreetrue
{[start chain=1,nodes=Champs]
   \node[Champs,alias=Desc1]                       (Level1) {Field 1};
   \node[Champs]  (Level2) {Field 2};
   \node[Champs]  (Level3) {Field 3};
   \node[Champs]  (Level4) {Field 4};
   \node[Champs]  (Level5) {Field 5};
   \node[Champs]  (Level6) {Field 6};
}
\ifChainTwo
{[start chain=2]
   \node[desc,right=of Level1]      (Desc1) {Description a bit longer 1};
   \node[desc]     (Desc2) {Description a bit longer 2};
   \node[desc]     (Desc3) {Description a bit longer 3};
   \node[desc]    (Desc4) {Description a bit longer 4};
   \node[desc]     (Desc5) {Description a bit longer 4};
   \node[desc]     (Desc6) {Description a bit longer 6};
}
\fi
\ifChainThree
{
[start chain=3]
   \node[symb,right=of Desc1]           (Symb1) {\includegraphics[width=1cm]{example-image} };
   \node[symb]     (Symb2) {\includegraphics[width=1cm]{example-image}}; 
   \node[symb]     (Symb3) {\includegraphics[width=1cm]{example-image} };
   \node[symb] (Symb4) {\includegraphics[width=1cm]{example-image} };
   \node[symb]     (Symb5) {\includegraphics[width=1cm]{example-image} };
   \node[symb]     (Symb6) {\includegraphics[width=1cm]{example-image} };
}
\fi
\end{tikzpicture}

\end{document}

información relacionada