ミニページを使用して 2 つの画像を結合する方法

ミニページを使用して 2 つの画像を結合する方法

ミニページを使用して 2 つの画像を並べて配置したいのですが、2 つの画像が同じ境界線上にないようです。 ここに画像の説明を入力してください

ここに私のコードがありますが、何が問題なのかわかりません。

\documentclass{article}
\usepackage{tikz}
\begin{figure}[t]
\centering
\begin{minipage}[t]{0.48\linewidth}
\centering
\begin{figure}[H]
\tikzset{
  my box/.style = {draw, minimum width = 2em, minimum height=1em},
}
\begin{tikzpicture}[node distance=4mm]
\node[my box,align=center](s1){$S_1$};
\node[my box,align=center,right = of s1](s2){$S_2$};
\draw[->] (s1)--(s2);
\node[align=center,right = 2mm of s2](s){...};
\node[my box,align=center,right = 2mm of s](s3){$S_n$};
\end{tikzpicture} 
\label{Before POR}
\end{figure}
\end{minipage}
\begin{minipage}[t]{0.48\linewidth}
\begin{figure}[H]
\tikzset{
  my box/.style = {draw, minimum width = 2em, minimum height=1em},
}
\begin{tikzpicture}[node distance=4mm]
\node[my box,align=center](s1){$S_1$};
\node[draw,circle,left = of s1](start){};
\draw[->] (start)--(s1);
\node[draw,diamond,right = of s1](end){};
\draw[->] (s1)--(end);
\draw[->] (end) --++ (0em,1.5em) -| (start);
\node[align=center,above = 1.0em of s1](l){k};
\end{tikzpicture} 
\label{After POR}
\end{figure}
\end{minipage}
\end{figure}
\end{document}

答え1

1 つの方法は、 の使用を避けることですminipage。 環境はtikzpictureボックス (Tex のボックス) を生成し、さまざまなツール (ベースラインなど) を使用してボックスを好きなように配置できますuseasboundingbox。たとえば、 を使用してボックスのサイズを制御できます。 環境は、minipage段落を画像の横に並べる必要がある場合に便利です。 問題の解決策は、おそらく次のようになります。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,shapes}
    \tikzset{
      my box/.style = {draw, minimum width = 2em, minimum height=1em},
    }

\begin{document}

\begin{figure}
\hspace*{\fill}\begin{tikzpicture}[node distance=4mm]
\node[my box,align=center](s1){$S_1$};
\node[my box,align=center,right = of s1](s2){$S_2$};
\draw[->] (s1)--(s2);
\node[align=center,right = 2mm of s2](s){...};
\node[my box,align=center,right = 2mm of s](s3){$S_n$};
\node[below] at (current bounding box.south) {label fig one};
\end{tikzpicture}\hspace*{\fill}
\begin{tikzpicture}[node distance=4mm]
\node[my box,align=center](s1){$S_1$};
\node[draw,circle,left = of s1](start){};
\draw[->] (start)--(s1);
\node[draw,diamond,right = of s1](end){};
\draw[->] (s1)--(end);
\draw[->] (end) --++ (0em,1.5em) -| (start);
\node[align=center,above = 1.0em of s1](l){k};
\node[below] at (current bounding box.south) {label fig two};
\end{tikzpicture}\hspace*{\fill}
\caption{Two figures side by-side}
\label{fig:test}
\end{figure}
\end{document}

必要に応じて、各画像の幅を制御できます。

この場合、ボックスは下部で揃えられていますが、baselineベースラインに対して各ボックスを配置するのは非常に簡単です。名前付きノードを使用して、2 番目の画像を最初の画像に対して配置することもできます。

ここに画像の説明を入力してください

関連情報