next up previous contents index
Next: 19.5 标题的分隔符 Up: 19. 使用 caption2 宏包来定制标题 Previous: 19.3 单行标题

19.4 标题的宽度

caption2 宏包提供了直接指定标题的宽度及其两边的空白的功能。
  • \setcaptionwidth{width} 设定标题的宽度为 width, 这里的 width 为任意有效的 TEX 度量单位。
  • \setcaptionmargin{mar} 设定标题任一边的空白为 mar, 从而使得标题的宽度为标准宽度减去两倍的 mar。 如果 mar 为一负值,那么标题的宽度要比标准的宽度宽一些。 这在子图和小页环境中非常有用。
例如,命令

\begin{figure} 
  \setcaptionwidth{2in} 
  \centering 
  \includegraphics[width=2in]{graphic.eps} 
  \caption{Figure Caption Limited to Two Inches} 
\end{figure}
使得标题的宽度为 2 英寸,结果如图 19.10

 
\includegraphics[width=2in]{graphic.eps}

上面的例子直接设定了标题的宽度。还有一种方法是通过给定标题和两边页 边界的距离来间接设定标题的宽度。例如,命令

\begin{figure}
  \setcaptionmargin{1in} 
  \centering
  \includegraphics[width=2in]{graphic.eps}
  \caption{Figure Caption Where There is One Inch of Spacing 
           between the Caption and Each Margin} 
\end{figure}
使得标题到两边页边界的距离为 1 英寸。如图 19.11 所示。

 
\includegraphics[width=2in]{graphic.eps}

下面主要介绍一下如何将标题的宽度设为图形的宽度。如果图形的宽度已知, 这将是非常容易的。

\includegraphics[width=3in]{file.eps} 
\setcaptionwidth{3in} 
\caption{...}
如果图形的宽度未知,可以通过将它放到一个盒子里然后测量盒子的宽度来 得到。

\newsavebox{\mybox} 
\newlength{\mylength} 
... 
\begin{figure} 
  \centering 
  \sbox{\mybox}{\includegraphics[height=3in]{file.eps}} 
  \settowidth{\mylength}{\usebox{\mybox}} 
  \setcaptionwidth{\mylength} 
  \usebox{\mybox} 
  \caption{This is a figure with a very, very, very, 
           very, very, very, very long caption} 
\end{figure}
这种方法也可应用于表格。 \mybox 和 \mylength 可在 文档中使用多次,而 \newlength 和 \newsavebox 只须 声明一次即可。


Wang Lei
2000-04-15