
Estou tentando recriar a seguinte figura em látex:
Agora, não tenho muitos problemas com um deles:
\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}
Mas não tenho certeza de como criar o resto. Estava pensando em copiá-los e colá-los em uma tabela. Mas multirow parece não funcionar, gerando um erro de compilação:
\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}
Fazer tudo em uma imagem me faz estremecer porque tenho que numerar os nós manualmente novamente. Como devo resolver esse problema?
Responder1
Se quiser repetir parte tikzpicture
ou parte dele, pics
são uma boa opção. O código a seguir mostra como usá-los. A pic
é declarado para desenhar seu gráfico original, e esta foto é usada dentro de vários tikzpictures
distribuídos dentro de a tabular
onde a primeira coluna é a multirow
.
Como você pode ver, array
pic desenha apenas parte do gráfico que pode ser completado labels
ou adicionando mais algumas linhas de interconexão em cada imagem específica. Como pic
pode ter um nome, você poderá posteriormente usar esses nomes para traçar algumas conexões entre eles.
\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}