tikz
以前作成した図を、ノードとを使用し て変換していますpositioning
。すべてのノードを相対的に定義しましたが (例right = of <other node>
)、何らかの理由で最後の 2 行のノードが右にオフセットされています。間違ったノードの位置を相対的に設定したのではないかと思いますが、どうすれば修正できるかわかりません。
以下は私の現在のコードベースです:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage[margin=1in]{geometry}
\usetikzlibrary{shapes.geometric, arrows, positioning}
\tikzstyle{red-rounded-rectangle} = [rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=red!30, align=center]
\tikzstyle{green-rounded-rectangle} = [rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=green!30, align=center]
\tikzstyle{blue-rounded-rectangle} = [rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=blue!30, align=center]
\begin{document}
\begin{figure}[h]
\centering
\begin{tikzpicture}[node distance=0.5cm]
\node (scotus) [green-rounded-rectangle, text width = 10cm]{
{\Huge \textbf{The Supreme Court}}
};
\node (state) [green-rounded-rectangle, right = of scotus, text width=4cm]{
{\large \textbf{State Supreme Court}}\\
Highest Law of the State
};
\node (12-appeals) [red-rounded-rectangle, below = of scotus,, text width = 4cm]{
{\large \textbf{12 Federal Courts of Appeals}}\\
Hears Appeals from lower courts. Geographically distributed.
};
\node (94-district) [blue-rounded-rectangle, below = of 12-appeals,, text width=4cm]{
{\large \textbf{94 District Courts}}\\
Hears cases and deals verdicts. \textit{Judge Judy} except federal.
};
\node (court-appeals) [red-rounded-rectangle, below = of scotus, right = of 12-appeals,, text width=4cm]{
{\large \textbf{Court of Appeals for the Federal Circuit}}\\
Hears special federal appeals. (e.g. patents)
};
\node (legis-courts) [blue-rounded-rectangle, below= of court-appeals, right = of 94-district, text width = 4cm]{
{\large \textbf{Legislative Courts}}\\
Weaker Courts created by Congress. (E.g. \textit{Court of Military Appeals})
};
\node (state-appeals) [red-rounded-rectangle, below = of state, right = of court-appeals, text width = 4cm]{
{\large \textbf{State Court of Appeals}}\\
Hears Appeals from Trials on a Case-By-Case basis.
};
\node (trial-court) [blue-rounded-rectangle, below = of state-appeals, right = of legis-courts, text width=4cm]{
{\large \textbf{Trial Court}}\\
Your typical \textit{Judge Judy} case. Hears either criminal or civil cases, and deals verdicts.
};
\end{tikzpicture}
\end{figure}
\end{document}
注: 元の写真の矢印は、オフセットが解決された後に追加する予定の機能です。
答え1
デフォルトでは、below
「アンカーを他のノードのアンカーnorth
に合わせる」という意味です。そしてそれがTiの目的です。south
けZ はそうします。ただし、2 つのノードを 1 つの下に収めたいので、ノードを左にシフトする必要があります。最も簡単なのは、2 行目の最後のノードを前の 2 つのノードの前に置くことだと思います。
例えば、
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric, arrows.meta, positioning}
\tikzset{
red-rounded-rectangle/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=red!30, align=center},
green-rounded-rectangle/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=green!30, align=center},
blue-rounded-rectangle/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=blue!30, align=center},
}
\begin{document}
\begin{tikzpicture}[node distance=0.5cm, >/.tip=Latex, thick]
\node (scotus) [green-rounded-rectangle, text width = 10cm]{
{\Huge \textbf{The Supreme Court}}
};
\node (state) [green-rounded-rectangle, right = of scotus, text width=4cm]{
{\large \textbf{State Supreme Court}}\\
Highest Law of the State
};
\node (state-appeals) [red-rounded-rectangle, below = of state, text width = 4cm]{
{\large \textbf{State Court of Appeals}}\\
Hears Appeals from Trials on a Case-By-Case basis.
};
\node (12-appeals) [red-rounded-rectangle, left=of state-appeals -| scotus, text width = 4cm] {
{\large \textbf{12 Federal Courts of Appeals}}\\
Hears Appeals from lower courts. Geographically distributed.
};
\node (94-district) [blue-rounded-rectangle, below = of 12-appeals,, text width=4cm]{
{\large \textbf{94 District Courts}}\\
Hears cases and deals verdicts. \textit{Judge Judy} except federal.
};
\node (court-appeals) [red-rounded-rectangle, right = of scotus |- state-appeals, text width=4cm]{
{\large \textbf{Court of Appeals for the Federal Circuit}}\\
Hears special federal appeals. (e.g. patents)
};
\node (legis-courts) [blue-rounded-rectangle, below= of court-appeals, text width = 4cm]{
{\large \textbf{Legislative Courts}}\\
Weaker Courts created by Congress. (E.g. \textit{Court of Military Appeals})
};
\node (trial-court) [blue-rounded-rectangle, below = of state-appeals, text width=4cm]{
{\large \textbf{Trial Court}}\\
Your typical \textit{Judge Judy} case. Hears either criminal or civil cases, and deals verdicts.
};
\draw [->] (trial-court) edge (state-appeals) (state-appeals) edge (state) (state) edge (scotus) (legis-courts) edge (court-appeals) (court-appeals) edge (scotus.south -| court-appeals) (94-district) edge (12-appeals) (12-appeals) -- (12-appeals |- scotus.south) ;
\end{tikzpicture}
\end{document}
arrows
また、非推奨のおよびの使用を避けるようにコードを更新しました\tikzstyle
。text centered
および がある場合、 は常に大きいため、align=center
は意味をなさないことに注意してください。minimum width=3cm
text width
答え2
ここでは、ダミー ノードといくつかの最小の高さを追加して、ボックスをより均一に見せるための、少し異なる回答を示します。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage[margin=1in]{geometry}
\usetikzlibrary{shapes.geometric, arrows, positioning}
\tikzset{red-rounded-rectangle/.style={rectangle, rounded corners, minimum
width=3cm, minimum height=2.2cm,text centered, draw=black, fill=red!30,
align=center,text width = 4.5cm},green-rounded-rectangle/.style={rectangle, rounded corners,
minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=green!30,
align=center,minimum height=1.5cm},blue-rounded-rectangle/.style = {rectangle, rounded corners,
minimum width=3cm, minimum height=2cm,text centered, draw=black, fill=blue!30,
align=center,text width = 4.5cm}}
\begin{document}
\begin{figure}[h]
\centering
\begin{tikzpicture}[node distance=0.5cm,font=\sf]
\node (scotus) [green-rounded-rectangle, text width = 10cm]{
{\Huge \textbf{The Supreme Court}}
};
\node (state) [green-rounded-rectangle, right = of scotus]{
{\large \textbf{State Supreme Court}}\\
Highest Law of the State
};
\node[below =1.5cm of scotus,xshift=0.4cm](dummy){};
\node (12-appeals) [red-rounded-rectangle,left=of dummy]{
{\large \textbf{12 Federal Courts of Appeals}}\\
Hears Appeals from lower courts. Geographically distributed.
};
\node (94-district) [blue-rounded-rectangle, below = of 12-appeals,]{
{\large \textbf{94 District Courts}}\\
Hears cases and deals verdicts. \textit{Judge Judy} except federal.
};
\node (court-appeals) [red-rounded-rectangle, below = of scotus, right = of 12-appeals]{
{\large \textbf{Court of Appeals for the Federal Circuit}}\\
Hears special federal appeals. (e.g. patents)
};
\node (legis-courts) [blue-rounded-rectangle, below= of court-appeals, right = of 94-district]{
{\large \textbf{Legislative Courts}}\\
Weaker Courts created by Congress. (E.g. \textit{Court of Military Appeals})
};
\node (state-appeals) [red-rounded-rectangle, below = of state, right = of court-appeals]{
{\large \textbf{State Court of Appeals}}\\
Hears Appeals from Trials on a Case-By-Case basis.
};
\node (trial-court) [blue-rounded-rectangle, below = of state-appeals, right = of legis-courts, text width=4.5cm]{
{\large \textbf{Trial Court}}\\
Your typical \textit{Judge Judy} case. Hears either criminal or civil cases, and deals verdicts.
};
\draw[thick,-latex] (trial-court)--(state-appeals);
\draw[thick,-latex] (legis-courts)--(court-appeals);
\draw[thick,-latex] (94-district)--(12-appeals);
\draw[thick,-latex] (state-appeals)--(state);
\draw[thick,-latex] (court-appeals)--(court-appeals|-scotus.south);
\draw[thick,-latex] (12-appeals)--(12-appeals|-scotus.south);
\draw[thick,-latex] (state)--(scotus);
\end{tikzpicture}
\end{figure}
\end{document}
答え3
他の回答と似ていますが、ノードのスタイルは異なって決定され、「最高裁判所」の幅は、画像が下から上に描画されるため計算されます。その結果、ノードは間違った位置に配置されません。
%\documentclass{article}
%\usepackage[utf8]{inputenc}
%\usepackage{tikz}
%\usepackage[margin=1in]{geometry}
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{arrows.meta, calc, positioning}
\begin{document}
%\begin{figure}[htb]
%\centering
\begin{tikzpicture}[
node distance = 6mm and 4mm,
box/.style = {rectangle, rounded corners, thick,
draw=#1!70!gray, fill=#1!30,
text width=4cm, minimum height=1cm, align=flush center,
font=\sffamily\linespread{.8}\selectfont}
]
% first row, on the bottom
\node (94-district) [box=blue]
{\textbf{94 District Courts}\\
\scriptsize
Hears cases and deals verdicts. \textit{Judge Judy} except federal.};
\node (legis-courts) [box=blue, right=of 94-district]
{\textbf{Legislative Courts}\\
\scriptsize
Weaker Courts created by Congress. (E.g. \textit{Court of Military Appeals})};
\node (trial-court) [box=blue, below right=0mm and 4mm of legis-courts.north east]
{\textbf{Trial Court}\\
\scriptsize
Your typical \textit{Judge Judy} case. Hears either criminal or civil cases, and deals verdicts.};
% second row
\node (12-appeals) [box=red, above=of 94-district]
{\textbf{12 Federal Courts of Appeals}\\
\scriptsize
Hears Appeals from lower courts. Geographically distributed.};
\node (court-appeals) [box=red, above=of legis-courts]
{\textbf{Court of Appeals for the Federal Circuit}\\
\scriptsize
Hears special federal appeals. (e.g. patents)};
\node (state-appeals) [box=red, above=of trial-court]
{\textbf{State Court of\\ Appeals}\\
\scriptsize
Hears Appeals from Trials on a Case-By-Case basis.};
% third row
% firs calculate spreme court node width
\path let \p1 = ($(12-appeals.west)-(court-appeals.east)$),
\n1 = {veclen(\x1,\y1)} in
node (scotus)
[box=green, font=\sffamily\Huge\bfseries,
text width=\n1-2*\pgfkeysvalueof{/pgf/inner xsep},
above=of $(12-appeals.north)!0.5!(court-appeals.north)$]
{The Supreme Court};
\node (state) [box=green, right = of scotus]
{\large\textbf{State Supreme Court}\\
\scriptsize
Highest Law of the State};
\draw [-Stealth, thick]
(trial-court) edge (state-appeals)
(state-appeals) edge (state)
(state) edge (scotus)
(legis-courts) edge (court-appeals)
(court-appeals) edge (scotus.south -| court-appeals)
(94-district) edge (12-appeals)
(12-appeals) to (12-appeals |- scotus.south) ;
\end{tikzpicture}
%\end{figure}
\end{document}