Considere o código a seguir, cujo objetivo é colocar uma subfigura e um algoritmo lado a lado dentro de uma figura flutuante.
\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}
O problema é que a legenda principal mostra Figure 2
em vez de Figure 1
.
As seguintes alterações no código acima produziriam Figure 1
, mas nenhuma dessas soluções é satisfatória.
- Livre-se do
\begin{algorithm}[H]
. ProduzFigure 1
.- Faça
subfigure
virdepoisominipage
. ProduzFigure 1
.
Questão 1: Por que esse problema está ocorrendo?
Questão 2: Existe uma solução simples para ter a subfigura (a)
à esquerda, Algorithm 1
à direita e a legenda principal exibida Figure 1
?
Responder1
subcaption
faz malabarismos com o figure
contador e não joga bem com float
.
Hack: desça do figure
balcão.
\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}
Dupliquei figure
para garantir que a próxima figura acertasse o número.