子图包在全宽环境中放错了最后一个子图

子图包在全宽环境中放错了最后一个子图

我正在使用 subfigure 包和 pdflatex。我的论文分为两栏,有时我会使用带有子图的全宽图:

\begin{figure*}
\subfigure[AM06]{\includegraphics[width=.25\textwidth]{AR06_RUN03_vort.png}}
\subfigure[AM07]{\includegraphics[width=.25\textwidth]{AR07_RUN03_vort.png}}
\subfigure[AM08]{\includegraphics[width=.25\textwidth]{AR08_run03_vort.png}}
\subfigure[AM09]{\includegraphics[width=.25\textwidth]{AR09_run03_vort.png}}
\subfigure[AM10]{\includegraphics[width=.25\textwidth]{AR10_run03_vort.png}}
\subfigure[AM11]{\includegraphics[width=.25\textwidth]{AR11_run03_vort.png}}
\subfigure[AM12]{\includegraphics[width=.25\textwidth]{AR12_run03_vort.png}}
\subfigure[AM13]{\includegraphics[width=.25\textwidth]{AR13_run03_vort.png}}
\end{figure*}

子图放置错误。

从图片中可以看出,它将最后一个子图放置在了错误的位置。有什么想法可以调试这个问题吗?

答案1

如果您希望最后一行对齐,并且子图 (h) 正好位于子图 (e) 下方,那么可以采用以下方法:

\documentclass[twocolumn]{article}
\usepackage{subfig} % not subfigure!!!
\usepackage[demo]{graphicx}

\begin{document}

\begin{figure*}
\setlength{\lineskip}{1ex}% increase spacing
\subfloat[AM06]{\includegraphics[width=.25\textwidth]{AR06_RUN03_vort.png}}%
\hspace{.125\textwidth}%
\subfloat[AM07]{\includegraphics[width=.25\textwidth]{AR07_RUN03_vort.png}}%
\hspace{.125\textwidth}%
\subfloat[AM08]{\includegraphics[width=.25\textwidth]{AR08_run03_vort.png}}%
\hspace{.125\textwidth}%
\subfloat[AM09]{\includegraphics[width=.25\textwidth]{AR09_run03_vort.png}}%
\hspace{.125\textwidth}%
\subfloat[AM10]{\includegraphics[width=.25\textwidth]{AR10_run03_vort.png}}%
\hspace{.125\textwidth}%
\subfloat[AM11]{\includegraphics[width=.25\textwidth]{AR11_run03_vort.png}}%
\hspace{.125\textwidth}%
\subfloat[AM12]{\includegraphics[width=.25\textwidth]{AR12_run03_vort.png}}%
\hspace{.125\textwidth}%
\subfloat[AM13]{\includegraphics[width=.25\textwidth]{AR13_run03_vort.png}}
\end{figure*}

\end{document}

请注意,这subfigure已经过时15年了。

在此处输入图片描述

如果您希望最后两个子图位于线的中心,只需添加\centering上面的代码:

\documentclass[twocolumn]{article}
\usepackage{subfig} % not subfigure!!!
\usepackage[demo]{graphicx}

\begin{document}

\begin{figure*}
\centering
\setlength{\lineskip}{1ex}% increase spacing
\subfloat[AM06]{\includegraphics[width=.25\textwidth]{AR06_RUN03_vort.png}}%
\hspace{.125\textwidth}%
\subfloat[AM07]{\includegraphics[width=.25\textwidth]{AR07_RUN03_vort.png}}%
\hspace{.125\textwidth}%
\subfloat[AM08]{\includegraphics[width=.25\textwidth]{AR08_run03_vort.png}}%
\hspace{.125\textwidth}%
\subfloat[AM09]{\includegraphics[width=.25\textwidth]{AR09_run03_vort.png}}%
\hspace{.125\textwidth}%
\subfloat[AM10]{\includegraphics[width=.25\textwidth]{AR10_run03_vort.png}}%
\hspace{.125\textwidth}%
\subfloat[AM11]{\includegraphics[width=.25\textwidth]{AR11_run03_vort.png}}%
\hspace{.125\textwidth}%
\subfloat[AM12]{\includegraphics[width=.25\textwidth]{AR12_run03_vort.png}}%
\hspace{.125\textwidth}%
\subfloat[AM13]{\includegraphics[width=.25\textwidth]{AR13_run03_vort.png}}
\end{figure*}

\end{document}

在此处输入图片描述

关于 的说明\lineskip

TeX 在形成段落时,并不是简单地将各行连接在一起,而是在它们之间插入一个垂直空格,该空格的计算基于当前的 值\baselineskip。但是,当一行的深度与下一行的高度之和大于 时\baselineskip,TeX 会插入\lineskip

在这种情况下,由于所有行都包含非常高的图片,因此该单个段落中的任意两行之间都会有\lineskip。增加(局部)的值\lineskip(默认为 1pt)可以将它们分开。

答案2

你还没有表明如何最后两个子图应该被放置,所以我假设它们应该居中。这可以通过\hspace*{\fill}在最后一行提供三个指令来实现。(第 1 行和第 2 行只需要两个\hspace*{\fill}指令。)

请注意,该subfigure包及其宏已被弃用。在下面的示例中,我subcaption改为加载该包并使用该包的subfigure环境。

在此处输入图片描述

\documentclass[twocolumn]{article}
\usepackage[demo]{graphicx}  % remove "demo" option in real document
\usepackage{subcaption}
\begin{document}
\begin{figure*}

%% first row
\begin{subfigure}{.25\textwidth}
\includegraphics[width=\linewidth]{AR06_RUN03_vort.png}
\caption{AM06}\label{fig:AM06}
\end{subfigure}
\hspace*{\fill}
\begin{subfigure}{.25\textwidth}
\includegraphics[width=\linewidth]{AR07_RUN03_vort.png}
\caption{AM07}\label{fig:AM07}
\end{subfigure}
\hspace*{\fill}
\begin{subfigure}{.25\textwidth}
\includegraphics[width=\linewidth]{AR08_run03_vort.png}
\caption{AM09}\label{fig:AM08}
\end{subfigure}

%% second row
\medskip  %% add a bit of vertical separation from previous row
\begin{subfigure}{.25\textwidth}
\includegraphics[width=\linewidth]{AR09_run03_vort.png}
\caption{AM09}\label{fig:AM09}
\end{subfigure}
\hspace*{\fill}
\begin{subfigure}{.25\textwidth}
\includegraphics[width=\linewidth]{AR10_run03_vort.png}
\caption{AM10}\label{fig:AM10}
\end{subfigure}
\hspace*{\fill}
\begin{subfigure}{.25\textwidth}
\includegraphics[width=\linewidth]{AR11_run03_vort.png}
\caption{AM11}\label{fig:AM11}
\end{subfigure}

%% final row
\medskip
\hspace*{\fill}
\begin{subfigure}{.25\textwidth}
\includegraphics[width=\linewidth]{AR12_run03_vort.png}
\caption{AM12}\label{fig:AM12}
\end{subfigure}
\hspace*{\fill}
\begin{subfigure}{.25\textwidth}
\includegraphics[width=\linewidth]{AR13_run03_vort.png}
\caption{AM13}\label{fig:AM13}
\end{subfigure}
\hspace*{\fill}
\end{figure*}
\end{document}

相关内容