保留页面内的子图

保留页面内的子图

我使用包插入子图\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}

在此处输入图片描述

相关内容