![¿Cómo puedo obtener el etiquetado correcto de las subfiguras con subfig y floatrow?](https://rvso.com/image/305913/%C2%BFC%C3%B3mo%20puedo%20obtener%20el%20etiquetado%20correcto%20de%20las%20subfiguras%20con%20subfig%20y%20floatrow%3F.png)
Estoy usando subfig
y floatrow
para gestionar subfiguras. Sin floatrow
, todo funciona bien, pero necesito floatrow
alinear fácilmente los títulos, como subfig
explica el manual.
Adaptando el ejemplo de la página 37 del manual y conalgo de ayuda de Gonzalo Medina, tengo este código:
\documentclass{article}
\usepackage{graphicx,subfig}
\usepackage[heightadjust=all,valign=c]{floatrow}
\usepackage{fr-subfig}
\begin{document}
\thisfloatsetup{subfloatrowsep=none}
\begin{figure}[!htbp]
\captionsetup[subfigure]{justification=centering}
\floatbox{figure}{%
\caption{%
Components of the system: Penguins (\ref{fig:a}), Jumpers (\ref{fig:b}), Thingies (\ref{fig:c}), Cabbages (\ref{fig:d}) and Nuclear Warheads (\ref{fig:e})%
}\label{fig:x}%
}{%
\begin{subfloatrow}%
\subfloat[Penguins were here and here and here]{%
\label{fig:a}\includegraphics[height=.1\textheight]{example-image-a}}
\qquad
\subfloat[Penguin]{%
\label{fig:b}\includegraphics[height=.15\textheight]{example-image-b}}
\qquad
\subfloat[Penguin]{%
\label{fig:c}\includegraphics[height=.125\textheight]{example-image-a}}
\end{subfloatrow}
\begin{subfloatrow}
\subfloat[Penguin]{%
\label{fig:d}\includegraphics[height=.15\textheight]{example-image-b}}
\qquad
\subfloat[Penguins were here, there and everywhere!]{%
\label{fig:e}\includegraphics[height=.2\textheight]{example-image-a}}
\end{subfloatrow}}
\end{figure}
\ref{fig:x} \ref{fig:a} \ref{fig:c} \ref{fig:e}
\end{document}
Pero obviamente algo anda mal con la numeración de los títulos. Todo esto debería ser la figura 1, pero comienza con 4 y luego aumenta en 2 más. Intenté mover las etiquetas a diferentes lugares pero, aunque LaTeX me dirá que las referencias han cambiado, sigo obteniendo el mismo resultado. También intenté eliminar el .aux
archivo, etc. Pero, nuevamente, todavía obtengo 4 para la figura y 6 para las subfiguras.
¿Cuál es la forma correcta de hacer esto?
Respuesta1
Esto da la salida correcta:
\documentclass{article}
\usepackage{graphicx,subfig}
\usepackage[heightadjust=all,valign=c]{floatrow}
\usepackage{fr-subfig}
\begin{document}
\thisfloatsetup{subfloatrowsep=qquad}
\begin{figure}[!htbp]
\captionsetup[subfigure]{justification=centering}
\ffigbox{%
\begin{subfloatrow}[3]%
\ffigbox[\FBwidth]{\caption{Penguins were here and here and here}\label{fig:a}}{%
\includegraphics[height=.1\textheight]{example-image-a}}
\ffigbox[\FBwidth]{\caption{Penguin}\label{fig:b}}{%
\includegraphics[height=.15\textheight]{example-image-b}}
\ffigbox[\FBwidth]{\caption{Penguin}\label{fig:c}}{%
\includegraphics[height=.125\textheight]{example-image-a}}
\end{subfloatrow}
\begin{subfloatrow}
\ffigbox[\FBwidth]{\caption{Penguin}\label{fig:d}}{%
\includegraphics[height=.15\textheight]{example-image-b}}
\ffigbox[\FBwidth]{\caption{Penguins were here, there and everywhere!}\label{fig:e}}{%
\includegraphics[height=.2\textheight]{example-image-a}}
\end{subfloatrow}%
}{%
\caption{Components of the system: Penguins (\ref{fig:a}), Jumpers (\ref{fig:b}), Thingies (\ref{fig:c}), Cabbages (\ref{fig:d}) and Nuclear Warheads (\ref{fig:e})\label{fig:x}}%
}
\end{figure}
\ref{fig:x} \ref{fig:a} \ref{fig:c} \ref{fig:e}
\end{document}
El problema parece ser combinar floatrow
comandos con subfig \subfloat
(supongo que usar comandos de ambos paquetes hace que los contadores avancen de manera incorrecta (cuando cada paquete toma el control, avanza los contadores)); una vez que todo se hace usando floatrow
solo comandos, el problema desaparece; observe que esto también hará
\thisfloatsetup{subfloatrowsep=qquad}
comportarse como se esperaba, por lo que no se necesitan ajustes manuales ahora (agregué un comentario sobre esto también enesta otra pregunta).