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。
上面的例子直接设定了标题的宽度。还有一种方法是通过给定标题和两边页 边界的距离来间接设定标题的宽度。例如,命令
\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=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 只须
声明一次即可。 |