如何水平分布子图

如何水平分布子图

我有一个带有 3 个子图的图。

我希望它们之间有空白(这就是我将宽度设置为的原因0.25\textwidth),但我希望它们水平分布,以便左图像的左边缘与左侧的文本边框对齐,右侧也是如此。

这是我的代码:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{lipsum}

\begin{document}

\lipsum[1-2]

\begin{figure}[h] % example dataset
    \centering
    \subfigure[Gray overlay.]{
        \includegraphics[width=0.25\textwidth]
        {example-image-a}}
    \hspace{\fill}
    \subfigure[Green overlay.]{
        \includegraphics[width=0.25\textwidth]
        {example-image-a}}
    \hspace{\fill}
    \subfigure[Red overlay.]{
        \includegraphics[width=0.25\textwidth]
        {example-image-a}}
\end{figure}

\lipsum[1]

\end{document}

结果如下:

在此处输入图片描述

您可以看到图像和文本边框之间有空白。我以为使用hfill可以消除它们。

我究竟做错了什么?

答案1

您需要删除不需要的空格。试试这个:

\documentclass{article}
\usepackage[utf8]{inputenc} % This is the default in recent LaTeX distros
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{lipsum}
\usepackage{showframe} % Shows the frame, only for this example

\begin{document}

\lipsum[1-2]

\begin{figure}[h] % example dataset
    \centering% <-- superfluous in this example as commented by Zarko
    \subfigure[Gray overlay.]{%  <-- No space here
        \includegraphics[width=0.25\textwidth]
        {example-image-a}}
    \hfill
    \subfigure[Green overlay.]{% <-- No space here
        \includegraphics[width=0.25\textwidth]
        {example-image-a}}
    \hfill
    \subfigure[Red overlay.]{%   <-- No space here
        \includegraphics[width=0.25\textwidth]
        {example-image-a}}%      <-- No space here
\end{figure}

\lipsum[1]

\end{document}

在此处输入图片描述

答案2

大部分都是题外话(虚假空间的来源已经通过接受的答案解决了)...

  • 你使用subfigure包,它已过时并被其后继者替换subfig,它将命令替换\subfiguresubfloat
  • 更好的是使用subcaption1.3 版或最新版本也支持\subfloat语法
  • 命令\hspace{\fill}可以简单地写成\hfill

考虑到上述情况,您的 MWE 可以是:

\documentclass{article}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage{lipsum}

\begin{document}

\lipsum[1]

\begin{figure}[ht] % example dataset
    \subfloat[Gray overlay.]{\includegraphics[width=0.25\textwidth]
        {example-image-a}}
    \hfill
    \subfloat[Green overlay.]{\includegraphics[width=0.25\textwidth]
        {example-image-a}}
    \hfill
    \subfloat[Red overlay.]{\includegraphics[width=0.25\textwidth]
        {example-image-a}}
\end{figure}

\lipsum[2]

\end{document}

在此处输入图片描述

(红线表示文本块边框)

相关内容