Tikz in Multirow verwenden

Tikz in Multirow verwenden

Ich versuche, die folgende Abbildung in Latex nachzubilden:

Bildbeschreibung hier eingeben

Mit einem davon habe ich kein großes Problem:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,backgrounds}

\usepackage[utf8]{inputenc} %utf-8 encoding
\usepackage{amssymb} %math symbols

\begin{document}

\begin{frame}
\begin{tikzpicture}[align=center,node distance=1cm]
\tikzstyle{vertex}=[circle,draw=black]
\tikzstyle{fluct}=[dotted]

\node[vertex] (v0) {};
\node[vertex] (v1) [right of = v0] {};
\node[vertex] (v2) [right of = v1] {};
\node[vertex] (v3) [below of = v0] {};
\node[vertex] (v4) [right of = v3] {};
\node[vertex] (v5) [right of = v4] {};

\node () [above of = v1] {Una realización};

\path[every node] 
  (v0) edge [] (v1)
  (v0) edge [] (v3)
  (v1) edge [] (v4)
  (v1) edge [fluct] (v2)
  (v2) edge [] (v5)
  (v4) edge [fluct] (v5);
\end{tikzpicture}
\end{frame}
\end{document}

Aber ich bin mir nicht sicher, wie ich den Rest erstellen soll. Ich dachte daran, sie zu kopieren und in eine Tabelle einzufügen. Aber Multirow scheint nicht zu funktionieren und gibt einen Kompilierungsfehler aus:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,backgrounds}

\usepackage[utf8]{inputenc} %utf-8 encoding
\usepackage{amssymb} %math symbols

\begin{document}

\begin{frame}
\begin{figure}

\begin{tabular}{cc}

\multirow{4}{*} {

\begin{tikzpicture}[align=center,node distance=1cm]
\tikzstyle{vertex}=[circle,draw=black]
\tikzstyle{fluct}=[dotted]

\node[vertex] (v0) {};
\node[vertex] (v1) [right of = v0] {};
\node[vertex] (v2) [right of = v1] {};
\node[vertex] (v3) [below of = v0] {};
\node[vertex] (v4) [right of = v3] {};
\node[vertex] (v5) [right of = v4] {};

\node () [above of = v1] {Una realización};

\path[every node] 
  (v0) edge [] (v1)
  (v0) edge [] (v3)
  (v1) edge [] (v4)
  (v1) edge [fluct] (v2)
  (v2) edge [] (v5)
  (v4) edge [fluct] (v5);
\end{tikzpicture}

}
\\
& a \\ & b \\ & c \\ & d
\end{tabular}
\end{figure}
\end{frame}
\end{document}

Wenn ich alles in einem Bild mache, schaudert es mich, weil ich die Knoten erneut manuell nummerieren muss. Wie soll ich dieses Problem lösen?

Antwort1

tikzpictureWenn Sie einige oder einen Teil davon wiederholen möchten , picssind dies eine gute Option. Der folgende Code zeigt, wie man sie verwendet. A picwird deklariert, um Ihr Originaldiagramm zu zeichnen, und dieses Bild wird innerhalb mehrerer tikzpicturesverteilter Bilder innerhalb von a verwendet tabular, wobei die erste Spalte ein ist multirow.

Wie Sie sehen, arraystellt pic nur einen Teil des Diagramms dar, der durch labelsHinzufügen weiterer Verbindungslinien in jedem einzelnen Bild vervollständigt werden kann. Da sie piceinen Namen haben können, können Sie diese Namen später verwenden, um Verbindungen zwischen ihnen herzustellen.

\documentclass{article}
\usepackage{multirow}
\usepackage{tikz}
\usetikzlibrary{arrows,backgrounds,matrix, positioning}

\usepackage[utf8]{inputenc} %utf-8 encoding
\usepackage{amssymb} %math symbols

\tikzset{
    vertex/.style={circle, fill=black},
    fluct/.style=dotted,
    array/.pic = {
        \foreach \i [count=\row] in {0,1}
            \foreach \j [count=\col] in {0,1,2,3}
                \node[vertex] (\row\col) at (\col,-\row) {};
        \draw (21)|-(13)|-(24)--(14);
        \draw (22)--(12);
    }
}
\begin{document}

\begin{tabular}{cc}

\multirow{4}{*}[-1cm]{%
\begin{tikzpicture}[remember picture]
\pic (A) {array};
\path (A11) -- (A14) node[midway,above=3mm] {Una realización};
\draw[fluct] (A13)--(A14);
\end{tikzpicture}}
&
\begin{tikzpicture}[remember picture]
\pic (B) {array};
\path (B11) -- (B21) node[midway,left=3mm] {Una realización};
\draw[fluct] (B21)--(B22);
\end{tikzpicture}
\\
&
\begin{tikzpicture}[remember picture]
\pic (C) {array};
\path (C11) -- (C21) node[midway,left=3mm] {Una realización};
\draw[fluct] (C22)--(C23);
\end{tikzpicture}
\\
&
\begin{tikzpicture}[remember picture]
\pic (D) {array};
\path (D11) -- (D21) node[midway,left=3mm] {Una realización};
\draw[fluct] (D21)--(D23);
\end{tikzpicture}
\\
&
\begin{tikzpicture}[remember picture]
\pic (E) {array};
\path (E11) -- (E21) node[midway,left=3mm] {Una realización};
\end{tikzpicture}
\end{tabular}

\tikz[remember picture, overlay] \draw[red,thick,->] (A12) to[out=30, in=60] (B13);
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen