¿Cómo puedo obtener el etiquetado correcto de las subfiguras con subfig y floatrow?

¿Cómo puedo obtener el etiquetado correcto de las subfiguras con subfig y floatrow?

Estoy usando subfigy floatrowpara gestionar subfiguras. Sin floatrow, todo funciona bien, pero necesito floatrowalinear fácilmente los títulos, como subfigexplica 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}

subfiguras mal numeradas

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 .auxarchivo, 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}

ingrese la descripción de la imagen aquí

El problema parece ser combinar floatrowcomandos 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 floatrowsolo 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).

información relacionada