フローティング図内にサブ図とアルゴリズムを並べて配置することを目的とした次のコードを考えてみます。
\documentclass{article}
\usepackage{algorithm}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\begin{subfigure}[t]{.5\linewidth}
\caption{subcaption}
\end{subfigure}\hfill
\begin{minipage}[m]{.5\linewidth}
\begin{algorithm}[H]
\caption{alg caption}
\end{algorithm}
\end{minipage}\hfill
\caption{caption}
\end{figure}
\end{document}
問題は、Figure 2
の代わりにメインキャプションが表示されることですFigure 1
。
上記のコードに次の変更を加えると が生成されますFigure 1
が、これらの解決策はいずれも満足のいくものではありません。
- を取り除きます
\begin{algorithm}[H]
。 を生成しますFigure 1
。subfigure
来させる後のminipage
。生成しますFigure 1
。
質問1: なぜこの問題が発生するのでしょうか?
質問2: サブ図を(a)
左、Algorithm 1
右に、メインキャプションを表示する簡単な解決策はありますかFigure 1
?
答え1
subcaption
カウンターでジャグリングをしますfigure
が、 ではうまくプレイできませんfloat
。
ハック:figure
カウンターを降りてください。
\documentclass{article}
\usepackage{algorithm}
\usepackage{subcaption}
\begin{document}
\begin{figure}[htp]
\begin{subfigure}[t]{.5\linewidth}
\caption{subcaption}
\end{subfigure}\hfill
\begin{minipage}{.5\linewidth}
\begin{algorithm}[H]
\caption{alg caption}
\end{algorithm}\addtocounter{figure}{-1}
\end{minipage}
\caption{caption}
\end{figure}
\begin{figure}[htp]
\begin{subfigure}[t]{.5\linewidth}
\caption{subcaption}
\end{subfigure}\hfill
\begin{minipage}{.5\linewidth}
\begin{algorithm}[H]
\caption{alg caption}
\end{algorithm}\addtocounter{figure}{-1}
\end{minipage}
\caption{caption}
\end{figure}
\end{document}
figure
次の図の番号が正しいことを確認するために、を複製しました。