Verweisen auf Standorte innerhalb eines Textfelds

Verweisen auf Standorte innerhalb eines Textfelds

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 itemizeUmwelt in eineenumeratelabelAufzä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}

markierte Pseudo-Einzelpostenliste

Antwort2

Bildbeschreibung hier eingeben

Ich habe remember picturedie Option für tikzpictures verwendet, um die Verbindung zwischen nodes zu ermöglichen, die in verschiedenen tikzpictures definiert sind (vgl. $17.13.1 imHandbuch). Ich habe minipagedie drei Blöcke so angeordnet, aber es sind auch andere Lösungen möglich. Um eine Schwierigkeit im Abstand um den nodeBlock 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}

verwandte Informationen