如何在这个特定的网格中对齐子图?

如何在这个特定的网格中对齐子图?

我试图以与左下角图形相同的方式放置右下角图形,但我发现这非常非常困难。有什么想法吗?

\begin{figure}
\begin{tabular}{cccc}
  \includegraphics[width=35mm]{./Figures/10026cropped.jpg} &   \includegraphics[width=35mm]{./Figures/10026cropped.jpg} &  \includegraphics[width=35mm]{./Figures/10026cropped.jpg} & \\
\multicolumn{2}{c}{\includegraphics[width=35mm]{./Figures/10026cropped.jpg} } & \multicolumn{2}{c}{\includegraphics[width=35mm]{./Figures/10026cropped.jpg}}
\end{tabular}
\caption{caption}
\end{figure}

图

答案1

你不需tabular要这样做:

\documentclass{article}
\usepackage{graphicx}

\begin{document}

\begin{figure}
\centering

\includegraphics[width=35mm]{example-image}\quad
\includegraphics[width=35mm]{example-image}\quad
\includegraphics[width=35mm]{example-image}\\[2ex]
\includegraphics[width=35mm]{example-image}\quad
\includegraphics[width=35mm]{example-image}

\caption{caption}

\end{figure}

\end{document}

在此处输入图片描述

答案2

只是为了好玩(编程很有趣,但有时会让你想到非常奇怪的事情,并且在意识到你正在尝试做什么之后会让你感到很傻)。

  1. 第一步...

    好的,我有 5 个数字,我需要 3 个在顶部,2 个在底部,我想控制它们的位置......表格对我来说似乎是一个很好的解决方案......

让我们想想:

上面三个:{ccc} 第一行正常居中,我将在\multicolumn第二行拆分单元格以共享空间...但是...

\begin{tabular}{ccc}
\include..&\include..&\include..\\
\multicolumn{2}{c}&\multicolumn{2}{c}
\end{tabular}

哦!写到第二行时\multicolumn我意识到它们变成了 4 列... 甚至没有编译...

看来我需要第四列:

咱们试试吧:

  1. 第二步...四列:

我将用以下内容拆分顶部中间的列\multicolumn

\begin{tabular}{cccc}
\include...&\multicolumn{2}{c}{\include...}&\include...\\ %Nice... Let's finish with the next row
\multicolumn{2}{c}{\include...}&\multicolumn{2}{c}{\include}
\end{tabular}

上行 4 下行 4... 完美!让我们编译

在此处输入图片描述

好像我数的不对。。。我们数一数吧。。。

  • 上面第 4 行单元格中间 2 个单元格已合并
  • 在第 2 行和第 2 个单元格下方......

为什么第二行的第一个单元格没有与第二个单元格合并?这应该使第四个数字像第五个一样居中显示在前两个列中...为什么?

我需要添加第五列吗?

让我们来看看:

\begin{tabular}{cccc}
1&2&3&4\\
\include...&\multicolumn{2}{c}{\include...}&\include...\\ %Nice... Let's finish with the next row
\multicolumn{2}{c}{\include...}&\multicolumn{2}{c}{\include}
\end{tabular}

在此处输入图片描述

第四幅图像在第二列之前停止...让我们想想...我需要 5 列吗?

  1. 第三步…在报告错误之前,让我们看看那里的垂直线?...但我应该这样做!

完整代码:

\documentclass{article}
\usepackage{graphicx}
\usepackage{xcolor}
\begin{document}
\begin{tabular}{|c|c|c|c|}
1&2&3&4\\
  \includegraphics[width=35mm]{example-image-a} &   \multicolumn{2}{c}{\includegraphics[width=35mm]{example-image-b}} &  \includegraphics[width=35mm]{example-image-c} \\
\multicolumn{2}{|c}{\includegraphics[width=35mm]{example-image-a}} & \multicolumn{2}{|c|}{\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}

在此处输入图片描述

他们需要错误报告...但是...

好的...我想我明白了:

第二列没有第三列的宽度...当然...那里不需要宽度...让我们添加一个宽度:

...好的,我将在两个中间列中添加居中 17.5 毫米:

\documentclass{article}
\usepackage{graphicx}
\usepackage{array}
\begin{document}
\begin{tabular}{|c|>{\centering\arraybackslash}p{17.5mm}|>{\centering\arraybackslash}p{17.5mm}|c|}
  \includegraphics[width=35mm]{example-image-a} &   \multicolumn{2}{c|}{\includegraphics[width=35mm]{example-image-b}} &  \includegraphics[width=35mm]{example-image-c} \\
\multicolumn{2}{|c}{\includegraphics[width=35mm]{example-image-a}} & \multicolumn{2}{|c|}{\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}

在此处输入图片描述

为什么是我???让我们在 stackexchange 上询问...我要离开这里!

  1. 没有更多步骤:一些解释:

让我们将 1&2&3&4 行添加回去:

\documentclass{article}
\usepackage{graphicx}
\usepackage{array}
\begin{document}
\begin{tabular}{|c|>{\centering\arraybackslash}p{17.5mm}|>{\centering\arraybackslash}p{17.5mm}|c|}
1&2&3&4\\
  \includegraphics[width=35mm]{example-image-a} &   \multicolumn{2}{c|}{\includegraphics[width=35mm]{example-image-b}} &  \includegraphics[width=35mm]{example-image-c} \\
\multicolumn{2}{|c}{\includegraphics[width=35mm]{example-image-a}} & \multicolumn{2}{|c|}{\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}

在此处输入图片描述

完美...但是发生了什么?

LaTeX 仅使用 3 列,因为每行所需的单元格最多为 3 个……因此,第一列是单列,而不是真正的多列……通过添加这些帮助数字……我们实际上很幸运,发现了发生了什么……因此,添加一整行空单元格(但所有单元格)可以解决问题……然后用……删除行的额外垂直空间[-1em]。此外,根据一些简单的想法,第二行单元格不应居中,因为第一列和最后一列的额外宽度……可能是r更好l的选择……\tabcolsep固定宽度会有所帮助……距离也相同(如\tabcolsep行之间)并且:

\documentclass{article}
\usepackage{graphicx}
\usepackage{array}
\begin{document}
\setlength{\tabcolsep}{1mm}
\begin{tabular}{c>{\centering\arraybackslash}p{17.5mm}>{\centering\arraybackslash}p{17.5mm}c}
&&&\\[-1em]
  \includegraphics[width=35mm]{example-image-a} &   \multicolumn{2}{c}{\includegraphics[width=35mm]{example-image-b}} &  \includegraphics[width=35mm]{example-image-c} \\[1mm]
\multicolumn{2}{r}{\includegraphics[width=35mm]{example-image-a}} & \multicolumn{2}{l}{\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}

在此处输入图片描述

但为什么不把它做成一个更简单的表格(3列)呢?

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\setlength{\tabcolsep}{1mm}
\begin{tabular}{ccc}
\includegraphics[width=35mm]{example-image-a}& \includegraphics[width=35mm]{example-image-b}&\includegraphics[width=35mm]{example-image-c}\\[1mm]
\multicolumn{3}{c}{\includegraphics[width=35mm]{example-image-a}\hspace{2mm}\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}

很好……很聪明!

@egreg 的回答更聪明!至少我发现了问题!

附言:我的回答是因为我认为原帖者的问题可能发生在任何人身上,而且我认为这可能对有类似问题的人有帮助,即使(当然)几个小时(放松之后)他/她应该以更简单的方式思考!

相关内容