Странное взаимодействие между подрисунком и алгоритмом на мини-странице

Странное взаимодействие между подрисунком и алгоритмом на мини-странице

Рассмотрим следующий код, цель которого — разместить подрисунок и алгоритм рядом внутри плавающей фигуры.

\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, но ни одно из этих решений не является удовлетворительным.

  1. Избавьтесь от \begin{algorithm}[H]. Производит Figure 1.
  2. Заставьте subfigureприйтипослеПроизводит .minipageFigure 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чтобы убедиться, что следующая фигурка имеет правильный номер.

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