Today I had two problems with clashes between the
floatrow and
caption packages. The first was regarding
hyperlinks and the other was regarding spacing of the subcaption of
subfigures.
For the first, using the \autoref command would print the wrong type of float.
The problem occurs when using multiple types of floats in a floatrow, for
instance a table and a figure. If a table box in a figure environment is referenced, \autoref will print the type of the environment (i.e. figure)
instead of the correct type (table). This only occurs when using the caption
package. The solution is to explicitly tell the caption what type it is with a
\captionsetup{type=table} statement:
\documentclass{article}
\usepackage{floatrow}
\usepackage{caption}
\usepackage[demo]{graphicx}
\usepackage{hyperref}
\begin{document}
\begin{figure}
\begin{floatrow}
\killfloatstyle\ttabox
{\captionsetup{type=table}\caption{Should print "Figure 1" \autoref{fig:1}}
\label{tab:1}}
{\begin{tabular}{*{2}{c}}
Test & test \\
1 & 2 \\
\end{tabular}}
\ffigbox
{\includegraphics{}}
{\caption{Should print "Table 1" \autoref{tab:1}}\label{fig:1}}
\end{floatrow}
\end{figure}
\end{document}
For the second, I was trying to move the subcaptions of the subfigures in a
subfloatrow closer to the image. I tried using the caption package option
skip, but it turns out that floatrow overwrites this in certain cases. The
solution is to use the captionskip option for subfigure setup. If this
change should apply document-wide, put it in the preamble. Otherwise, put it
just after \begin{figure} in the figure you want to change.
\captionsetup[subfigure]{captionskip=value}