
次のように、tikz で描画したノードがあります。
\node[below, text width=5cm] (SomeName) at (0,0) {
\begin{itemize}
\item line 1
\item line 2
\item line 3
\item line 4
\item line 5
\end{itemize}
}
2 行目から、私が構築した別のノードの横に矢印を描画したいと思います。また、4 行目と 5 行目を囲む括弧を配置して、さらに別のノードへの別の矢印を描画できるようにしたいと思います。
項目は厳密には 1 行の項目ではないため、ノードによって構築されたボックスの下の方に行を配置するのではなく、テキスト内に何らかの参照を配置して (可能な場合) 行を構築できるようにしたいと考えています。
私が探しているイメージを提供する完全なコードスピネットについては、以下を参照してください。
\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\usepgflibrary{arrows}
\usetikzlibrary{decorations.pathreplacing}
\usetikzlibrary{decorations.text}
\usepackage{calc}
\usepackage{enumitem}
\begin{document}
\begin{tikzpicture}
\node[below, text width=5cm] (SomeName) at (0,0) {
\begin{itemize}
\item line 1
\item line 2
\item line 3
\item line 4
\item line 5
\end{itemize}
};
\node[below, text width=2cm] (Other) at (-5,0) {
Some text will go here.
};
\node[below, text width=2cm] (Another) at (-5,-4) {
Some text will go here.
};
\draw[decorate,decoration={brace,amplitude=7pt,mirror}](-2,-2) -- (-2,-3) node[midway,left] (A) {};% A node must have a (possibly empty) label text.
\draw[-stealth] (-2,-1.5) -- (Other.east);
\draw[-stealth] (A.west) -- (Another.east);
\end{tikzpicture}
\end{document}
トラブルシューティングを行って適切な位置に配置するのではなく、項目別リストからの括弧と矢印をノード参照にしたいと思います。
答え1
このソリューションではティクズマークそして環境itemize
をenumerate
label
列挙項目リストはまったく同じに見えますが、項目番号は箇条書きをサブノードに変換するために使用され、後で図で参照できます。
\documentclass[tikz, border=10pt, multi]{standalone}
\usepackage{calc,enumitem}
\usetikzlibrary{arrows.meta,decorations.pathreplacing,decorations.text,tikzmark}
\begin{document}
\begin{tikzpicture}[remember picture]
\node[below, text width=5cm] (SomeName) at (0,0) {%
\begin{enumerate}[label={\subnode{it\arabic*}{\textbullet}}]
\item line 1
\item line 2
\item line 3
\item line 4
\item line 5
\end{enumerate}%
};
\node[below, text width=2cm] (Other) at (-5,0) {Some text will go here.};
\node[below, text width=2cm] (Another) at (-5,-4) {Some text will go here.};
\draw[decorate,decoration={brace,amplitude=7pt,mirror}] (it3.north west) -- (it4.south west) node[midway,left] (A) {};
\draw[-Stealth] (it2) -- (Other.east);
\draw[-Stealth] ([xshift=-2.5pt]A.west) -- (Another.east);
\end{tikzpicture}
\end{document}
答え2
異なる で定義された間の接続を可能にするためにremember picture
のオプションを使用しました($17.13.1を参照)。tikzpicture
node
tikzpicture
マニュアル)。私は3つのブロックを配置していましたが、他の解決策も可能です。私が参照したブロックを含むminipage
周囲のスペースの難しさを克服するために、node
$bullet$
この答え。
\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\usepgflibrary{arrows}
\usetikzlibrary{decorations.pathreplacing}
\usetikzlibrary{decorations.text}
\usepackage{calc}
\usepackage{enumitem}
\begin{document}
\begin{minipage}{3cm}
\begin{minipage}{3cm}
\tikz[remember picture]\node (n1) {Some text will go here};
\end{minipage}
\\[1cm]
\begin{minipage}{3cm}
\tikz[remember picture]\node (n2) {Some text will go here};
\end{minipage}
\end{minipage}
\hspace{10mm}
\begin{minipage}{.5\textwidth}
\begin{itemize}
\item line 1
\item[{\tikz[remember picture]\node[inner xsep=5pt,inner ysep=0] (t2) {$\bullet\hspace{-5pt}$};}] line 2
\item[{\tikz[remember picture]\node[inner sep=0] (t3) {$\bullet$};}] line 3
\item[{\tikz[remember picture]\node[inner sep=0] (t4) {$\bullet$};}] line 4
\item line 5
\end{itemize}
\end{minipage}
\begin{tikzpicture}[overlay,remember picture]
\path[->] (n1.east) edge [out=0 , in=180] (t2.west);
\draw[decorate,decoration={brace,raise=5pt},thick] (t4.south west) -- node[left,anchor=east,inner xsep=5pt] (t34) {} (t3.north west);
\path[->] (n2.east) edge [out=0 , in=180] (t34.west);
\end{tikzpicture}
\end{document}