Рассмотрим следующий код, цель которого — разместить подрисунок и алгоритм рядом внутри плавающей фигуры.
\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
чтобы убедиться, что следующая фигурка имеет правильный номер.