텍스트 상자 내 위치 참조

텍스트 상자 내 위치 참조

다음과 같이 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 주위에 괄호를 배치한 다음 다른 노드에 다른 화살표를 그릴 수 있기를 원합니다.

항목은 엄밀히 말하면 하나의 라인 항목이 아니므로 (가능한 경우) 텍스트 내에 일부 참조를 배치하여 라인을 구성한 상자 아래로 약간 아래로 선을 배치하는 대신 라인을 구성할 수 있기를 원합니다. 마디.

내가 찾고 있는 이미지를 제공하는 완전한 코드 스피넷의 경우:

\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환경으로 바꾸는 것이 포함됩니다.enumeratelabel열거 항목. 목록은 똑같아 보이지만 항목 번호는 총알을 나중에 그림에서 참조할 수 있는 하위 노드로 바꾸는 데 사용됩니다.

\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

여기에 이미지 설명을 입력하세요

나는 다른 s에 정의된 s 간의 연결을 허용하기 위해 s remember picture에 대한 옵션을 사용했습니다 (참조: $17.13.1tikzpicturenodetikzpicture수동). 저는 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}

관련 정보