开发者

How do I control the width of a \caption{} in a float? (LaTeX)

I am looking for a simple way to control the width 开发者_StackOverflow社区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.


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.


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.


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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜