如何在LaTeX中实现多子图并排排布并拆分到两页显示
解决方法
问题根源是单个figure浮动体默认无法跨页排版,要实现分页且保持子图、主图编号连续,只需要把10张子图拆分为两个figure环境,搭配subcaption包提供的\ContinuedFloat命令即可,无需修改子图尺寸、子图编号逻辑。
修改后完整代码如下:
\documentclass{article} \usepackage{caption} \usepackage{subcaption} \usepackage{graphicx} \begin{document} % 第一个figure:放置前8张子图 \begin{figure}[htbp] \centering \begin{subfigure}[b]{0.45\textwidth} \centering \includegraphics[width=\textwidth]{example-image-a} \caption{A subfigure} \label{fig:sub1} \end{subfigure} \hfill \begin{subfigure}[b]{0.45\textwidth} \centering \includegraphics[width=\textwidth]{example-image-b} \caption{B subfigure} \label{fig:sub2} \end{subfigure} \hfill \begin{subfigure}[b]{0.45\textwidth} \centering \includegraphics[width=\textwidth]{example-image-c} \caption{C subfigure} \label{fig:sub3} \end{subfigure} \hfill \begin{subfigure}[b]{0.45\textwidth} \centering \includegraphics[width=\textwidth]{example-image-d} \caption{D subfigure} \label{fig:sub4} \end{subfigure} \hfill \begin{subfigure}[b]{0.45\textwidth} \centering \includegraphics[width=\textwidth]{example-image-e} \caption{E subfigure} \label{fig:sub5} \end{subfigure} \hfill \begin{subfigure}[b]{0.45\textwidth} \centering \includegraphics[width=\textwidth]{example-image-f} \caption{F subfigure} \label{fig:sub6} \end{subfigure} \hfill \begin{subfigure}[b]{0.45\textwidth} \centering \includegraphics[width=\textwidth]{example-image-g} \caption{G subfigure} \label{fig:sub7} \end{subfigure} \hfill \begin{subfigure}[b]{0.45\textwidth} \centering \includegraphics[width=\textwidth]{example-image-h} \caption{H subfigure} \label{fig:sub8} \end{subfigure} % 若需要第一页也显示主标题,可取消下一行注释,自行补充后缀标识即可 % \caption{the main caption of the figures(一)} \label{fig:figure_part1} \end{figure} % 第二个figure:放置最后2张子图 \begin{figure}[htbp] \centering % 关键命令:继承上一个figure的编号,子图编号自动顺延,不会重新从a开始计数 \ContinuedFloat \begin{subfigure}[b]{0.45\textwidth} \centering \includegraphics[width=\textwidth]{example-image-i} \caption{I subfigure} \label{fig:sub9} \end{subfigure} \hfill \begin{subfigure}[b]{0.45\textwidth} \centering \includegraphics[width=\textwidth]{example-image-j} \caption{J subfigure} \label{fig:sub10} \end{subfigure} \caption{the main caption of the figures} \label{fig:figure} \end{figure} \end{document}
关键说明
\ContinuedFloat是subcaption包原生提供的命令,无需额外引入其他依赖,保证两个figure共用同一个主图编号,子图编号自动从i、j顺延,不会出现编号重置问题。- 两个
figure环境会自动分页排布,不会压缩子图原有尺寸,完全符合排版要求。 - 如果需要第一页也显示主标题,打开第一个figure里注释的
\caption行,标注为(一),第二页的主标题同步标注为(二)即可。
内容的提问来源于stack exchange,提问作者matrix
相关产品推荐
相关产品推荐

