如何在子图中对齐 TikZ 图形

如何在子图中对齐 TikZ 图形

我使用 subfig 来显示 tikz 图形数组。不幸的是,这些图形有时高度不同,因此它们无法正确对齐显示:

在此处输入图片描述

我希望看到所有节点都在同一行。我是 TikZ 新手,所以我想知道是否可以为所有图形指定最小高度。我尝试使用设置边界框,\useasboundingbox (0,0) rectangle (5,2);但很难估计正确的值。有没有办法计算,或者是否可以渲染一个不可见的幻影边缘(带标签),使图形 a) 具有与图形 b) 相同的高度?或者有没有办法在子图侧进行对齐?

以下是 MWE:

\documentclass{article}
\usepackage{subfig}
\usepackage{amsmath}
\usepackage{tikz}

\usetikzlibrary{arrows}
\tikzstyle{state}=[circle,thick,draw=black!75,fill=black!20,minimum size=6mm, text=black]

\begin{document}


\begin{figure}
\centering
\subfloat[In-only]{\label{fig:in}
   \begin{tikzpicture}[node distance=2.8cm, bend angle=35,auto]
      \node [state] (v1) at (1,0) {$D$};
      \node [state] (v2) at (4,0) {$N$};
      \draw (v1) edge [<-, bend left] node {$M_\text{in}$} (v2);
    \end{tikzpicture}
}
\quad
\subfloat[In-only]{\label{fig:in}
   \begin{tikzpicture}[node distance=2.8cm, bend angle=35,auto]
      \node [state] (v1) at (1,0) {$D$};
      \node [state] (v2) at (4,0) {$N$};
      \draw (v1) edge [<-, bend left] node {$M_\text{in}$} (v2);
      \draw (v1) edge [->, bend right] node {$M_\text{out}$} (v2);
    \end{tikzpicture}
}

\end{figure}
\end{document}

答案1

对于每个 TikZ 图片,设置选项baseline并参考您想要用于对齐的节点:

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

相关内容