Wie kann ich mit Subfig und Floatrow eine korrekte Beschriftung von Unterabbildungen erreichen?

Wie kann ich mit Subfig und Floatrow eine korrekte Beschriftung von Unterabbildungen erreichen?

Ich verwende subfigund floatrowzur Verwaltung von Unterabbildungen. Ohne floatrowfunktioniert alles einwandfrei, aber ich muss floatrowdie Bildunterschriften einfach ausrichten können, wie im subfigHandbuch erklärt.

Durch Anpassung des Beispiels auf Seite 37 des Handbuchs und mitetwas Hilfe von Gonzalo Medina, ich habe diesen Code:

\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}

falsch nummerierte Unterabbildungen

Aber offensichtlich stimmt etwas mit der Nummerierung der Bildunterschriften nicht. Das sollte alles Abbildung 1 sein, aber es beginnt mit 4 und wird dann um weitere 2 erhöht. Ich habe versucht, die Beschriftungen an andere Stellen zu verschieben, aber obwohl LaTeX mir anzeigt, dass sich die Referenzen geändert haben, erhalte ich immer noch dasselbe Ergebnis. Ich habe auch versucht, die .auxDatei usw. zu entfernen. Aber auch hier erhalte ich immer noch 4 für die Abbildung und 6 für die Unterabbildungen.

Wie geht man dabei richtig vor?

Antwort1

Dies ergibt die richtige Ausgabe:

\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}

Bildbeschreibung hier eingeben

Das Problem scheint die Kombination floatrowvon Befehlen mit Subfigs zu sein \subfloat(ich vermute, dass die Verwendung von Befehlen aus beiden Paketen dazu führt, dass die Zähler in die falsche Richtung gehen (wenn jedes Paket die Kontrolle übernimmt, gehen die Zähler weiter)); sobald alles floatrownur mit Befehlen erledigt wird, verschwindet das Problem; beachten Sie, dass dies auch

  \thisfloatsetup{subfloatrowsep=qquad}

verhalten sich wie erwartet, so dass jetzt keine manuellen Anpassungen mehr nötig sind (ich habe dazu auch einen Kommentar hinzugefügt indiese andere Frage).

verwandte Informationen