前言
在做论文插图时除简单地横向竖向排列以外,有时需要更加复杂的方式,比如下图。实现的方法多种多样,其中 minipage, subfigure, subfloat, tabular 相对简单实用。
1. minipage
适用于对所有子图分别命名时。
\documentclass{
article}
\usepackage{
graphicx}
\usepackage{
subfig}
\begin{
document}
\begin{
figure*}[!h]
\centering
\begin{
minipage}[b]{
0.45\linewidth}
\subfloat[Husky]{
\label{
fig:1(a)}
\includegraphics[width=2in]{
dog_1.png}}
\end{
minipage}
\begin{
minipage}[b]{
0.27\linewidth}
\subfloat[Tibetan Mastiff]{
\label{
fig:1(b)}
\includegraphics[width=1.15in]{
dog_2.png}} \\ % 换行
\subfloat[Alaska]{
\label{
fig:1(c)}
\includegraphics[width=1.15in]{
dog_3.png}} \\ % 换行
\subfloat[Labrador]{
\label{
fig:1(d)}
\includegraphics[width=1.15in]{
dog_4.png}}
\end{
minipage} % 中间不空行代表不换行
\begin{
minipage}[b]{
0.2\linewidth}
\subfloat[Pastoral]{
\label{
fig:1(e)}
\includegraphics[width=2in]{
dog_5.png}}
\end{
minipage}
\end{
figure*}
\end{
document}
2. subfloat
适用于一列子图只命名一次时。
\documentclass{
article}
\usepackage{
graphicx}
\usepackage{
subfig}
\usepackage{
subfloat}
\begin{
document}
\begin{
figure*}[!h]
\centering
\subfloat[The first dog.]{
\begin{
minipage}[b]{
0.45\linewidth}
\includegraphics[width=2.02in]{
dog_1.png}
\end{
minipage}
} % 不空行表示不换行
\subfloat[The other dogs.]{
\begin{
minipage}[b]{
0.4\linewidth}
\includegraphics[width=1.47in]{
dog_2.png}\vspace{
0.75mm}
\includegraphics[width=1.47in]{
dog_3.png}\vspace{
0.75mm}
\includegraphics[width=1.47in]{
dog_4.png}
\end{
minipage}
}
\subfloat[The last dog.]{
\begin{
minipage}[b]{
0.5\linewidth}
\includegraphics[width=2.02in]{
dog_5.png}
\end{
minipage}
}
\end{
figure*}
\end{
document}
3. subfigure
与 subfloat 同理。注意:subfig 和 subfigure 包不能同时存在。
\documentclass{
article}
\usepackage{
graphicx}
\usepackage{
subfigure}
\begin{
document}
\begin{
figure}[!h]
\centering
\subfigure[The first dog.]{
\begin{
minipage}[b]{
0.3\linewidth}
\includegraphics[width=1.38in]{
dog_1.png}
\end{
minipage}
} % 不空行表示不换行
\subfigure[The other dogs.]{
\begin{
minipage}[b]{
0.2\linewidth}
\includegraphics[width=1in]{
dog_2.png}\vspace{
0.75mm}
\includegraphics[width=1in]{
dog_3.png}\vspace{
0.75mm}
\includegraphics[width=1in]{
dog_4.png}
\end{
minipage}
}
\subfigure[The last dog.]{
\begin{
minipage}[b]{
0.3\linewidth}
\includegraphics[width=1.381in]{
dog_5.png}
\end{
minipage}
}
\end{
figure}
\end{
document}
4. tabular
适用于每个子图命名或整图命名时,但这种方法存在不对齐问题,尚未解决。
\documentclass{
article}
\usepackage{
graphicx}
\usepackage{
subfigure}
\usepackage{
multirow}
\usepackage{
booktabs}
\usepackage{
array}
\begin{
document}
\begin{
figure*}[!h]
\centering
\begin{
tabular}{
ccc}
\multirow{
3}{
*}{
\includegraphics[width=0.9in]{
dog_1.png}} & \includegraphics[width=1in]{
dog_2.png} & \multirow{
3}{
*}{
\includegraphics[width=0.9in]{
dog_5.png}} \\
~ & \includegraphics[width=1in]{
dog_3.png} & ~ \\
~ & \includegraphics[width=1in]{
dog_4.png} & ~ \\
\end{
tabular}
\caption{
Five dogs.}
\end{
figure*}
\end{
document}