我使用包插入子图\subfig
:
\documentclass{article}
\usepackage{graphicx}
\usepackage{subfig}
\begin{document}
\begin{figure}
\subfloat[]{
\includegraphics[width=0.5\textwidth]{example-image-a}
}
\subfloat[]{
\includegraphics[width=0.5\textwidth]{example-image-b}
}
\subfloat[]{
\includegraphics[width=0.5\textwidth]{example-image-c}
}
\end{figure}
\end{document}
结果是:
可以看出,图像 c 已超出页面范围。我想将图形保留在页面内。
如何在不\\
手动插入的情况下实现这一点?
答案1
为了提供可能的换行断点,您可以\hfill
在子浮点之间添加。由于前两个图像无论如何都占据了整行,因此不会造成影响,并且第三个图像可以转到新行。
\documentclass{article}
\usepackage{graphicx}
\usepackage{subfig}
\begin{document}
\begin{figure}
\subfloat[]{%
\includegraphics[width=0.5\textwidth]{example-image-a}%
}%
\hfill
\subfloat[]{%
\includegraphics[width=0.5\textwidth]{example-image-b}%
}%
\hfill
\subfloat[]{%
\includegraphics[width=0.5\textwidth]{example-image-c}%
}%
\end{figure}
\end{document}
答案2
如果将图像宽度固定为0.5\textwidth
,那么显然第三个图像应该放在下一行。为此,在第二幅图像后插入空行:
\documentclass{article}
\usepackage{graphicx}
\usepackage{subfig}
\begin{document}
\begin{figure}
\centering
\subfloat[]{\includegraphics[width=0.5\textwidth]{example-image-a}}
\subfloat[]{\includegraphics[width=0.5\textwidth]{example-image-b}}
\subfloat[]{\includegraphics[width=0.5\textwidth]{example-image-duck}}
\end{figure}
\end{document}
如您所见,您选择的图像宽度导致图像相互接触。我会选择稍小的宽度,例如0.48\textwidth
在第一张和第二张图像之间插入\hfill
:
\documentclass{article}
\usepackage{graphicx}
\usepackage{subfig}
\begin{document}
\begin{figure}
\centering
\subfloat[]{\includegraphics[width=0.48\textwidth]{example-image-a}}
\hfill
\subfloat[]{\includegraphics[width=0.48\textwidth]{example-image-b}}
\subfloat[]{\includegraphics[width=0.48\textwidth]{example-image-duck}}
\end{figure}
\end{document}