tags:

views:

148

answers:

3

I am looking for a simple way to control the width of a \caption{} inside a float in LaTeX without using the {caption} package. Any clues?

(EDIT): The problem I am having is that the built-in captions are too narrow.

+1  A: 

In general, to control the width of objects in TeX, you can use a minipage, for instance:

\begin{minipage}[t]{1.85in}
\caption{ Why would you eat a pickle? }
\end{minipage}

However, with a caption you might need to do something different as it could very well be a macro.

Bear
A: 

There's nothing too magical about \caption; it just consults a figure/table number and than formats your text at a font and size that the document class likes. So you can control its width the same way you'd control the width of any text:

Wrap the \caption{...} in a \parbox or a \begin{minipage}...\end{minipage}.

Norman Ramsey
+1  A: 

To change the formatting of the standard LaTeX classes without using a package, you need to look at the source of the standard LaTeX classes and alter the original definitions in your own document. Printing captions is done by the macro \@makecaption, which has definition (in article.cls):

\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
  \sbox\@tempboxa{#1: #2}%
  \ifdim \wd\@tempboxa >\hsize
    #1: #2\par
  \else
    \global \@minipagefalse
    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip}

If you wrap the whole thing in a minipage environment (as suggested to be done manually in the other answers), you should get the results you want.

Is it easier than loading a package? Not really, but it can be instructive.

Will Robertson
I guess you are right. Thanks!
vy32