资源描述
27.3 并列的子图形
在某些情况下,有时会希望将并列的图形组成一组,而其中的每一幅图 都保持其独立性。 paisubfigure 宏包的 \subfigure 命令将这一 组做为一幅图形,其中的每一幅图做为子图形。例如:
\begin{figure}
\centering
\subfigure[Small Box with a Long Caption]{
\label{fig:subfig:a} %% label for first subfigure
\includegraphics[width=1.0in]{graphic.eps}}
\hspace{1in}
\subfigure[Big Box]{
\label{fig:subfig:b} %% label for second subfigure
\includegraphics[width=1.5in]{graphic.eps}}
\caption{Two Subfigures}
\label{fig:subfig} %% label for entire figure
\end{figure}
生成图 27.9。这里使用 LATEX 的引用命令 \ref{fig:subfig:a} 会得到 27.9(a), \ref{fig:subfig:b} 得到 27.9(b), \ref{fig:subfig} 得到 27.9。
像其它的并列图形一样,子图也可以在小页环境中使用。而且在一些情况下, 这样做还能更方便的得到理想的图形间距。例如:
\begin{figure}
\subfigure[Small Box with a Long Caption]{
\label{fig:mini:subfig:a} %% label for first subfigure
\begin{minipage}[b]{0.5\textwidth}
\centering
\includegraphics[width=1in]{graphic.eps}
\end{minipage}}%
\subfigure[Big Box]{
\label{fig:mini:subfig:b} %% label for second subfigure
\begin{minipage}[b]{0.5\textwidth}
\centering
\includegraphics[width=1.5in]{graphic.eps}
\end{minipage}}
\caption{Minipages Inside Subfigures}
\label{fig:mini:subfig} %% label for entire figure
\end{figure}
得到图 27.10,其中包括两个子图 27.10(a) 和 27.10(b)。
图 27.10 中的子图标题比图 27.9 中的要宽一些。 这是因为子图标题的宽度和子图的宽度相同,图 27.9 中的子图 只包含图形,而图 27.10 中的子图包含了宽度为 0.5\textwidth 的小页。 子图的标记有两种形式:
1. 一种是出现在子图的下面作为标题的一部分。这通过命令 \@thesubfigure 来生成。
2. 另一种是在使用 \ref 命令的时候出现。这通过将命令 \p@subfigure 的输出处理后传递给 \thesubfigure 命令来生成。
上面的这些命令使用 subfigure 计数器和 \thefigure 命令。 子图的标记的格式由下面的命令来控制。
· 命令 \thefigure 印出当前图形的编号。
· 计数器 subfigure 记录子图的编号,命令 \alph{subfigure} 将计数器 subfigure 的值用小写字母印出,而 命令 \roman{subfigure} 则是用小写罗马数字印出(有关印出 计数器值的命令可参见文献 [1, 第 98 页] 和 [3, 第 446 页]。)。
· 命令 \thesubfigure 缺省使用小写字母,如 (a),(b) 等。
· 命令 \@thesubfigure 缺省为 \thesubfigure\space,即在 标题标记和文本之间加上一个空白。
· 命令 \p@subfigure 缺省为 \thefigure。
如果改变子图标题的标记,字体等的缺省值,可参见文献 [10]。下面 给出几个简单的例子:
· 若想让子图标题标记使用小写罗马数字如 (i), (ii)等, \ref 命令的结果 如 12i, 12ii 等,可使用下面的命令(最好放在导言区中)
· \renewcommand{\thesubfigure}{\roman{subfigure}}
· \makeatletter
· \renewcommand{\@thesubfigure}{(\thesubfigure)\space}
· \renewcommand{\p@subfigure}{\thefigure}
· \makeatother
· 若想让子图标题标记使用阿拉伯数字如 12.1:, 12.2: 等, \ref 命令的结果 如 12.1, 12.2 等,可使用下面的命令
·
· \renewcommand{\thesubfigure}%
· {\thefigure.\arabic{subfigure}}
· \makeatletter
· \renewcommand{\@thesubfigure}{\thesubfigure:\space}
· \renewcommand{\p@subfigure}{}
\makeatother
缺省情况下,用 \listoffigures 命令生成的图形目录中只包括图形, 而不包括子图。要想在图形目录中包括子图,要在 \listoffigures 命令前加上 \setcounter{lofdepth}{2}。 需要说明的是,由于 LATEX 的变化,导致目前版本(3/95) 的 subfigure 宏包在图形目录的子图输入项开始部分都加上 ``numberline1''。将下面的代码加到导言区中就可以解决这一问题。
\makeatletter
\renewcommand{\@subcaption}[2]{%
\begingroup
\let\label\@gobble
\def\protect{\string\string\string}%
\xdef\@subfigcaptionlist{%
\@subfigcaptionlist,%
{\numberline {\@currentlabel}%
\noexpand{\ignorespaces #2}}}%
\endgroup
\@nameuse{@make#1caption}{\@nameuse{@the#1}}{#2}}
\makeatother
27.2 并列的浮动图形
在上一节中,通过在一个图形环境中使用多个小页环境从而得到一个由 多幅图形组成的浮动图形。若将 \caption 命令放到每个小页环境 中,则每个小页环境就生成一浮动图形。例如:
\begin{figure}
\begin{minipage}[t]{0.5\linewidth}
\centering
\includegraphics[width=1in]{graphic.eps}
\caption{Small Box}
\label{fig:side:a}
\end{minipage}%
\begin{minipage}[t]{0.5\linewidth}
\centering
\includegraphics[width=1.5in]{graphic.eps}
\caption{Big Box}
\label{fig:side:b}
\end{minipage}
\end{figure}
生成图 27.3 和 27.4。尽管上面的命令 只使用了一个 figure 环境,但由于每个小页中都包含一 个 \caption 命令,所以仍然得到两个浮动图形。
在图 27.3 和 27.4中,并列的小页环境使用了 [t] 选项,使得两幅图形的基线对齐。这对于非旋转的图形 没有任何问题,而且使得两标题的顶部对齐。不过,如果图形的底部 不对齐的话(如其中一图形被旋转),就会发生问题。例如:
\begin{figure}
\centering
\begin{minipage}[t]{.33\textwidth}
\centering
\includegraphics[width=2cm]{graphic.eps}
\caption{Box with a Long Caption}
\end{minipage}%
\begin{minipage}[t]{.33\textwidth}
\centering
\includegraphics[width=2cm,angle=-30]{graphic.eps}
\caption{Rotated Box}
\end{minipage}%
\end{figure}
生成图 27.5 和 27.6,我们可以看到这里 两幅图形的标题并不对齐。而若只使用小页的 [b] 选项,会使得标题 的最后一行对齐,并不能解决问题。
一种解决办法是在小页环境中把图形和标题分开放到两行中:第一行放置图形, 第二行放置标题。例如:
\begin{figure}
\centering
\begin{minipage}[b]{.33\textwidth}
\centering
\includegraphics[width=2cm]{graphic.eps}
\end{minipage}%
\begin{minipage}[b]{.33\textwidth}
\centering
\includegraphics[width=2cm,angle=-30]{graphic.eps}
\end{minipage}\\[-10pt]
\begin{minipage}[t]{.33\textwidth}
\caption{Box with a Long Caption}
\end{minipage}%
\begin{minipage}[t]{.33\textwidth}
\caption{Rotated Box}
\end{minipage}%
\end{figure}
生成的图 27.7 和 27.8 中,图形的基 线和标题的第一行分别对齐。
在这个例子中,需要注意:
· 在最后一幅图后面用 \\ 来断行, \\ 的参数项 [-10pt] 使得图形与标题之间的距离比当前行距 减少 10pt。这样做是让图形和标题更接近些,用户也可 自己选用合适的值。
· 包含图形的小页使用 [b] 选项,使得它们的参考点为 其最后一行的基线。
· 包含标题小页使用 [t] 选项,使得它们的参考点为 其第一行的基线。
· 任何一个 \label 命令都必须和它相应的 \caption 命令在同一个小页中。
Wang Lei
2000-04-15
latex的subfigure排版并排放置的两张图
Posted on 2007-10-23 by
LaTeX插图始终是件麻烦的事情, 这里介绍了如何 在LaTeX文档中插入图片, 但有时还是不能满足某些特殊要求. 前面介绍了使用Latex的subfigure竖排图形, 这是介绍使用latex的subfigure排版并排放置的两张图.
注意要使用宏包\usepackage{graphicx}和\usepackage{subfigure}
[CODE]
\begin{figure}
\begin{minipage}[t]{0.5\linewidth}
\centering
\includegraphics[width=2.2in]{fig1.eps}
\caption{fig1}
\label{fig:side:a}
\end{minipage}%
\begin{minipage}[t]{0.5\linewidth}
\centering
\includegraphics[width=2.2in]{fig2.eps}
\caption{fig2}
\label{fig:side:b}
\end{minipage}
\end{figure}
还有一种方法:
在某些情况下,有时会希望将并列的图形组成一组,而其中的每一幅图 都保持其独立性。 paisubfigure 宏包的 \subfigure 命令将这一 组做为一幅图形,其中的每一幅图做为子图形。例如:
[code]
\begin{figure}
\centering
\subfigure[Small Box with a Long Caption]{
\label{fig:subfig:a} %% label for first subfigure
\includegraphics[width=1.0in]{graphic.eps}}
\hspace{1in}
\subfigure[Big Box]{
\label{fig:subfig:b} %% label for second subfigure
\includegraphics[width=1.5in]{graphic.eps}}
\caption{Two Subfigures}
\label{fig:subfig} %% label for entire figure
\end{figure}
展开阅读全文