Considere el siguiente código, cuyo propósito es colocar una subfigura y un algoritmo uno al lado del otro dentro de una figura flotante.
\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}
El problema es que se muestra el título principal Figure 2
en lugar de Figure 1
.
Los siguientes cambios en el código anterior producirían Figure 1
, pero ninguna de estas soluciones es satisfactoria.
- Deshacerse de
\begin{algorithm}[H]
. ProduceFigure 1
.- hacer
subfigure
venirdespuéselminipage
. ProduceFigure 1
.
Pregunta 1: ¿Por qué ocurre este problema?
Pregunta 2: ¿Existe una solución sencilla para que se muestre la subfigura (a)
a la izquierda, Algorithm 1
a la derecha y el título principal Figure 1
?
Respuesta1
subcaption
hace algunos malabarismos con el figure
mostrador y no juega bien con float
.
Hack: baja del figure
mostrador.
\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}
Dupliqué figure
para asegurarme de que la siguiente figura tenga el número correcto.