
Empecé mi trabajo desde estoejemplo
Después de limpiar el código para entender mejor los comandos tengo esta situación
\begin{tikzpicture}[
scale=0.75,
start chain=1 going below,
start chain=2 going right,
node distance=3mm,
blocksgeneric/.style={
scale=0.75,
on chain=2,
rectangle,
rounded corners,
draw=black,
very thick,
text centered,
text width=8cm,
minimum height=12mm,
fill=black!10
},
blocksblue/.style={
fill=blue!30
},
labels/.style={
scale=0.75,
on chain=1,
minimum height=12mm,
text width=2cm,
text centered
},
every node/.style={font=\sffamily}
]
% Left column
\node [labels] (L5) {L5};
\node [labels] (L4) {L4};
\node [labels] (L3) {L3};
\node [labels] (L2) {L2\\L2\\L2\\L2\\L2\\L2};
\node [labels] (L1) {L1};
\node [labels] (L0) {L0};
% Right column
\chainin (L5); % Start right of L5
\node [blocksgeneric] (B5) {B5};
\node [blocksgeneric, blocksblue, continue chain=going below] (B4) {B4};
\node [blocksgeneric] (B3) {B3};
\node [blocksgeneric] (B2) {B2};
\node [blocksgeneric] (B1) {B1};
\node [blocksgeneric] (B0) {B0};
\end{tikzpicture}
El resultado es este.
Lo que quiero es mantener las etiquetas L2 al lado del bloque B2 y los demás de la misma forma.
Edición 1: ¿qué haría si quisiera personalizar la altura de uno de los bloques de la derecha para representar un concepto más amplio? La etiqueta de la izquierda debe estar en el centro del bloque. Al mismo tiempo, si un bloque es más pequeño (porque quiero que sea pequeño) que la etiqueta que contiene mucho texto, ¿cómo podría mantener el bloque pequeño pero al mismo tiempo colocarlo en el centro del texto a su izquierda?
Edición 2: última pregunta: si quisiera expandir la dimensión del bloque B2 a la dimensión de la etiqueta L2 (dependiendo de lo que sea realmente alto), ¿cómo puedo hacerlo?
Respuesta1
En lugar de utilizar una cadena, puede colocar los nodos utilizando un \matrix
, que se comporta de forma similar a un tabular
entorno con columnas dinámicas. Si quieres saber más, echa un vistazo al manual de PGF.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}[
scale=0.75,
blocksgeneric/.style={
scale=0.75,
rectangle,
rounded corners,
draw=black,
very thick,
text centered,
text width=8cm,
minimum height=12mm,
fill=black!10
},
blocksblue/.style={
fill=blue!30
},
labels/.style={
scale=0.75,
minimum height=12mm,
text width=2cm,
text centered
},
every node/.style={font=\sffamily}
]
% Left column
\matrix[row sep=3mm]{
\node [labels] (L5) {L5}; &
\node [blocksgeneric] (B5) {B5}; \\
\node [labels] (L4) {L4}; &
\node [blocksgeneric, blocksblue] (B4) {B4\\B4\\B4\\B4\\B4}; \\
\node [labels] (L3) {L3}; &
\node [blocksgeneric] (B3) {B3}; \\
\node [labels] (L2) {L2\\L2\\L2\\L2\\L2\\L2}; &
\node [blocksgeneric] (B2) {B2}; \\
\node [labels] (L1) {L1}; &
\node [blocksgeneric] (B1) {B1}; \\
\node [labels] (L0) {L0}; &
\node [blocksgeneric] (B0) {B0}; \\
};
\end{tikzpicture}
\end{document}