
이것부터 일을 시작했어요예
명령을 더 잘 이해하기 위해 코드를 정리한 후 이런 상황이 발생했습니다.
\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}
결과는 이것입니다.
내가 원하는 것은 B2 블록 옆에 L2 라벨을 유지하고 다른 블록도 같은 방식으로 유지하는 것입니다.
편집 1: 더 큰 개념을 표현하기 위해 오른쪽 블록 중 하나의 높이를 사용자 정의하려면 어떻게 해야 합니까? 왼쪽의 라벨은 블록의 중앙에 있어야 합니다. 동시에 블록이 많은 텍스트를 포함하는 레이블보다 작은 경우(작기를 원하기 때문에) 어떻게 블록을 작게 유지하면서 동시에 왼쪽 텍스트 중앙에 배치할 수 있습니까?
편집 2: 마지막 질문: 블록 B2의 크기를 라벨 L2의 크기로 확장하고 싶다면(실제로 높은 값에 따라) 어떻게 해야 합니까?
답변1
체인을 사용하는 대신 동적 열이 있는 환경 \matrix
과 유사하게 동작하는 를 사용하여 노드를 배치할 수 있습니다 tabular
. 더 알고 싶다면 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}