Too wide figure caption

Her's one possibility using the caption package; using the width key you can assign a predefined width (0.8\textwidth in my example):

\documentclass{article}
\usepackage{caption}
\usepackage{lipsum}

\begin{document}

\lipsum[2]
\begin{figure}
\captionsetup{width=0.8\textwidth}
\centering
A Figure
\caption{\protect\lipsum[4]}
\end{figure}

\end{document}

enter image description here

You can also make this a global setting using \captionsetup in the preamble.

Another option is to use the floatrow package; here's a little example using \FBwidth to make the caption width equal to the figure width:

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{floatrow}
\usepackage{lipsum}

\begin{document}

\lipsum[2]
\begin{figure}
\ffigbox[\FBwidth]
  {\caption{\protect\lipsum[4]}}
  {\includegraphics{image}}
\end{figure}

\end{document}

enter image description here

The demo option for graphicx simply replaces actual figures with black rectangles; do not use that option in your actual document.


The boxhandler package is set to define different captioning options. Below is a screenshot from the package manual. By default, it makes the caption width the figure width, but you can set upper and lower bounds on caption width as well as define specific widths. You also see in the image below different caption styles

enter image description here

And in this second image, you can see some of the parameters over which it gives you control.

enter image description here


Here is a one-liner solution to reduce the width of the caption box. This will change it for every figure in your document:

\usepackage[margin=1cm]{caption}