
透過利用 Tikz,我想創建一個如下圖:
所以我想要一個經典的有向圖,其中每個節點都有一些文字。此外,每個節點都有一個關聯的框架,框架中充滿了一堆要點。
此外,還有三個可選但所需的屬性:
節點大小均相同。如果他們能夠正確地將文字保存在其中,從而調整節點大小,那就太好了。具有最大文字的節點。
能夠將框架放置在所需的節點位置(請參閱圖中 A、C 與 B 之間的差異)。一組選項(如上、下、左、右)和成對組合就足夠了,而不是按座標放置。
框架尺寸正在調整。項目符號點的數量(請參閱圖表中不同的框架尺寸)。
以我目前的知識,我只能建立由節點和邊組成的通用有向圖。我將嘗試透過閱讀文件來弄清楚如何實現所有這些(假設有辦法),但是如果有人可以伸出援手,我將非常感激。
答案1
幾種風格就可以了:
\documentclass{article}
\usepackage{enumitem}
\usepackage{tikz}
\usetikzlibrary{positioning}
\newlist{tikzitem}{itemize}{1}
\setlist[tikzitem,1]{label=$\bullet$,nolistsep,leftmargin=*}
\begin{document}
\begin{tikzpicture}[
mynode/.style={
circle,
draw,
fill=yellow,
minimum size=1cm,
align=center
},
frame/.style={
draw=cyan,
line width=3pt,
text width=2cm,
rounded corners
},
ar/.style={
->,
>=latex
}
]
\node[mynode] (a) {Some text};
\node[mynode,below right=2cm and 6cm of a] (c) {Some text};
\node[mynode,below left=2cm and 6cm of c] (b) {Some text};
\node[frame,anchor=north west] at (a.-90)
{%
\begin{tikzitem}
\item First.
\item Second.
\item Third.
\end{tikzitem}%
};
\node[frame,anchor=south west] at (b.90)
{%
\begin{tikzitem}
\item First.
\item Second.
\item Third.
\end{tikzitem}%
};
\node[frame,anchor=west] at (c.0)
{%
\begin{tikzitem}
\item First.
\item Second.
\item Third.
\item Fourth.
\item Fifth.
\end{tikzitem}%
};
\draw[ar] (a) to[bend left] (c);
\draw[ar] (b) to[bend right] (c);
\end{tikzpicture}
\end{document}
at (<name>.<angle>)
可以使用幀的語法和適當的錨點來控制幀相對於圓的位置。
我使用該enumitem
套件獲得了 itemize 的自訂版本,沒有額外的垂直間距,也沒有左邊距。