
私はここから仕事を始めました例
コマンドをよりよく理解するためにコードをクリーンアップした後、この状況が発生します
\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}
結果はこれです。
私が望むのは、L2 ラベルを B2 ブロックの隣に置き、他のラベルも同様に保持することです。
編集 1: より大きな概念を表すために、右側のブロックの 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}