tikzpicture 和子图中并排的数组不会对齐

tikzpicture 和子图中并排的数组不会对齐

tikzpicture我试图将一个(网络图像) 和一个数组 (矩阵)并排对齐,但无论我做什么,它们都无法正确对齐。两个并排的数组和两个tikzpicture并排的 s 可以正确对齐 (在同一行上),但当我将两者混合时,就会出现问题。我还没有找到一篇在子图中处理这两个环境的帖子。这是我的代码:

\documentclass[12ptm]{article}
\usepackage{amsmath, amsthm}
\usepackage{tikz}
\usepackage{graphicx}
\usetikzlibrary{arrows}
\usepackage{subcaption}

\begin{document}


\begin{figure}
\begin{subfigure}[t]{0.1\textwidth}
\centering
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=1.5cm,
        thick,main node/.style={circle,draw,font=\Large\bfseries}]

\tikzstyle{every node}=[draw,shape=circle];
\node[draw=none, shape=circle,scale=0.02cm, fill=none] (n1) {} ;
\node[draw,shape=circle,scale=0.02cm, main node](n2) [left of=n1] {$M$} ;
\node[draw,shape=circle,scale=0.02cm, main node] (n4) [above of=n1] {1} ;
\node[draw,shape=circle,scale=0.02cm, main node] (n3) [below of=n1] {3} ;
\node[draw,shape=circle,scale=0.02cm, main node] (n5) [right of=n1] {2} ;

\draw[<->] (n2) to[bend left=30] (n4);
\draw[<->] (n2) to[bend right=30] (n3);
\draw[->] (n4) to[bend left=30] (n5);
\draw[<->] (n3) to (n4);
\end{tikzpicture}
\end{subfigure}
\begin{subfigure}[t]{0.4\textwidth}
\centering
\[
\begin{array}{cccc}
\begin{array}{cccc} 
\\
&A &  &\;B\\
\end{array} 
\\
\begin{array}{cc}
 a \\
\\
  b\\

\end{array} 
\begin{array}{|cc|cc|}
\hline 
$6$&&$2$&\\
&$6$&&$7$\\ \hline
$7$&&$0$&\\
&$2$&&$0$\\ \hline

\end{array}
\end{array}
\]

\end{subfigure}
\end{figure}
\end{document}

如您所见,您得到的是网络图,然后是网络对角线下方(右侧)另一条线上的数组。我希望它们并排。

答案1

您有很多虚假内容$,而且subfigure标记没有起到什么作用,所以我删除了它。在这里我使用\raisebox垂直居中 tikz。

在此处输入图片描述

\documentclass[12ptm]{article}
\usepackage{amsmath, amsthm}
\usepackage{tikz}
\usepackage{graphicx}
\usetikzlibrary{arrows}
\usepackage{subcaption}

\begin{document}


\begin{figure}

\raisebox{-.5\totalheight}{\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=1.5cm,
        thick,main node/.style={circle,draw,font=\Large\bfseries},
align=center]

\tikzstyle{every node}=[draw,shape=circle];
\node[draw=none, shape=circle,scale=0.02cm, fill=none] (n1) {} ;
\node[draw,shape=circle,scale=0.02cm, main node](n2) [left of=n1] {$M$} ;
\node[draw,shape=circle,scale=0.02cm, main node] (n4) [above of=n1] {1} ;
\node[draw,shape=circle,scale=0.02cm, main node] (n3) [below of=n1] {3} ;
\node[draw,shape=circle,scale=0.02cm, main node] (n5) [right of=n1] {2} ;

\draw[<->] (n2) to[bend left=30] (n4);
\draw[<->] (n2) to[bend right=30] (n3);
\draw[->] (n4) to[bend left=30] (n5);
\draw[<->] (n3) to (n4);
\end{tikzpicture}}
$\begin{array}{cccc}
\begin{array}{cccc} 
\\
&A &  &\;B\\
\end{array} 
\\
\begin{array}{cc}
 a \\
\\
  b\\
\end{array} 
\begin{array}{|cc|cc|}
\hline 
6&&2&\\
&6&&7\\ \hline
7&&0&\\
&2&&0\\ \hline

\end{array}
\end{array}
$
\end{figure}
\end{document}

答案2

您可以使用baseline样式来设置垂直对齐。在您的案例中

\begin{tikzpicture}[baseline={(n2)}, ...]

应该可以。

相关内容