
Ich habe einen Knoten, den ich in Tikz gezeichnet habe, wie folgt:
\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}
}
Ich möchte von Zeile 2 einen Pfeil zur Seite zu einem anderen Knoten zeichnen, den ich erstellt habe. Ich möchte auch in der Lage sein, eine Klammer um Zeile 4 und 5 zu setzen, um dann einen anderen Pfeil zu einem weiteren Knoten zu zeichnen.
Bei den Elementen handelt es sich nicht streng genommen um einzeilige Elemente, daher möchte ich in der Lage sein, (falls möglich) einen Verweis in den Text einzufügen, um meine Zeilen konstruieren zu können, anstatt die Linie an einem Teilstück der von meinem Knoten konstruierten Box zu positionieren.
Für ein vollständiges Code-Spinett, das das Bild dessen liefert, was ich suche:
\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}
Ich möchte, dass die Klammern und Pfeile aus der Einzelauflistung als Knotenreferenzen dienen und nicht zur Fehlersuche dienen, um sie ungefähr an die richtige Stelle zu bringen.
Antwort1
Diese Lösung verwendetAbonnierenund beinhaltet die Umwandlung der itemize
Umwelt in eineenumerate
label
Aufzählungselement. Die Liste sieht genauso aus, aber die Artikelnummer wird verwendet, um die Aufzählungspunkte in Unterknoten umzuwandeln, auf die später im Bild verwiesen werden kann.
\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}
Antwort2
Ich habe remember picture
die Option für tikzpicture
s verwendet, um die Verbindung zwischen node
s zu ermöglichen, die in verschiedenen tikzpicture
s definiert sind (vgl. $17.13.1 imHandbuch). Ich habe minipage
die drei Blöcke so angeordnet, aber es sind auch andere Lösungen möglich. Um eine Schwierigkeit im Abstand um den node
Block herum zu überwinden $bullet$
, auf den ich verwiesen habe,diese Antwort.
\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}