Как отцентрировать подрисунок

Как отцентрировать подрисунок

Я использую подфигуру, чтобы соединить две фигуры, однако они не центрированы.

Ниже представлен мой код:

\documentclass[10pt]{IEEEtran}
\usepackage{tikz}
\usetikzlibrary{
    shapes.geometric,
    positioning,
    fit,
    calc
}

\usepackage{caption}
\usepackage{subcaption}
\begin{document}
\begin{figure}[t]
\centering
\begin{subfigure}[b]{0.24\textwidth}
\centering
\begin{tikzpicture}[
 block/.style = {circle, draw,
    text width=1em,align=center,inner sep=0pt},
    line/.style = {draw,thick, -latex},
  service/.style={align=left, text width=0.5cm},
node distance=1.0cm and 0.4cm
]

% Place nodes
\node[block](s0){$0$};
\node[service, right of= s0, xshift=10mm, text width=3cm](s10){};
\node[block, below of = s0](s1){$1$};
\node[block, below of =s1](s2){$2$};
\node[block, right of =s2] (s3){$3$};
\node[block, below of =s2] (s4){$4$};
\path [line] (s0)--(s1);
\path [line] (s1)--(s2);
\path [line]  (s1)-|(s3);
\path [line] (s2)--(s4);
\end{tikzpicture}
\caption{1}
\label{fig:workflowsim}
\end{subfigure}
\begin{subfigure}[b]{0.24\textwidth}
\centering
\begin{tikzpicture}[
 block/.style = {circle, draw,
    text width=1em,align=center,inner sep=0pt},
line/.style = {draw,thick, -latex},
  service/.style={align=left, text width=0.5cm},
node distance=1.0cm and 0.4cm
]

% Place nodes
\node[block](s2){$0$} ;
\node[service, right of=s2,xshift=10mm, text width=3cm](s10){};
\node[block, below of =s2] (s4){$4$};
\node[block, below of =s4] (s6){$6$};
\node[block, right of =s6] (s7){$S7$};
\path [line] (s2)--(s4);
\path [line] (s4)--(s6);
\path [line] (s4)-|(s7);
\end{tikzpicture}
\caption{2}
\end{subfigure}
\caption{3}
\end{figure}
\end{document}

И он показывает мне рисунок, как показано ниже. введите описание изображения здесь

Как вы видите, левый рисунок не находится поверх a(1) (подписи), он выровнен по левому краю. Он похож на правый рисунок.

Как мне решить эту проблему?

решение1

Есть узел, который влияет на центрирование, даже если он не виден.

  • Если узел вам не нужен, удалите его.
  • Если вы хотите сохранить узел, добавьте опцию overlay, чтобы он не занимал место:

    \node[overlay, service, right of= s0, xshift=10mm, text width=3cm] (s10) {};
    

Этот overlayметод также полезен для устранения нежелательного эффекта смещения стрелок, поэтому пространство, которое они покрывают, не будет учитываться.

Связанный контент