[Tex/LaTex] Horizontally shifting subfloat captions in figure environment!

captionssubcaptionsubfloats

When using subfloat, the caption centers with regards to the figure width. However I want to center it with regards to the axes. How to horizontally shift the captions (manually) for all the subfloats in a figure environment, to center to axes?

(My figures are in PDF format.)

caption is not centered to axes
caption centered to axes

Best Answer

To shift the sub-captions to the left or right one could use the margin= option offered by the caption package. The following example document will shift the sub-captions 2cm to the right:

\documentclass{article}
\usepackage{subfig}
\usepackage[demo]{graphicx}
\begin{document}
\begin{figure}
  \centering
  \captionsetup[subfigure]{oneside,margin={2cm,0cm}}
  \subfloat[]{\includegraphics[width=4cm]{test1}}
  \hspace{1cm}
  \subfloat[]{\includegraphics[width=4cm]{test1}}
  \caption{Caption text}
\end{figure}
\end{document}

Please note the usage of the additional option oneside which will make sure that the extra sub-caption margins will not be swapped in twoside documents.

enter image description here

(Of course this trick will work in conjunction with the subcaption package as well.)