![如何在这个特定的网格中对齐子图?](https://linux22.com/image/477750/%E5%A6%82%E4%BD%95%E5%9C%A8%E8%BF%99%E4%B8%AA%E7%89%B9%E5%AE%9A%E7%9A%84%E7%BD%91%E6%A0%BC%E4%B8%AD%E5%AF%B9%E9%BD%90%E5%AD%90%E5%9B%BE%EF%BC%9F.png)
我试图以与左下角图形相同的方式放置右下角图形,但我发现这非常非常困难。有什么想法吗?
\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
只是为了好玩(编程很有趣,但有时会让你想到非常奇怪的事情,并且在意识到你正在尝试做什么之后会让你感到很傻)。
第一步...
好的,我有 5 个数字,我需要 3 个在顶部,2 个在底部,我想控制它们的位置......表格对我来说似乎是一个很好的解决方案......
让我们想想:
上面三个:{ccc}
第一行正常居中,我将在\multicolumn
第二行拆分单元格以共享空间...但是...
\begin{tabular}{ccc}
\include..&\include..&\include..\\
\multicolumn{2}{c}&\multicolumn{2}{c}
\end{tabular}
哦!写到第二行时\multicolumn
我意识到它们变成了 4 列... 甚至没有编译...
看来我需要第四列:
咱们试试吧:
- 第二步...四列:
我将用以下内容拆分顶部中间的列\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 列吗?
- 第三步…在报告错误之前,让我们看看那里的垂直线?...但我应该这样做!
完整代码:
\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&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 的回答更聪明!至少我发现了问题!
附言:我的回答是因为我认为原帖者的问题可能发生在任何人身上,而且我认为这可能对有类似问题的人有帮助,即使(当然)几个小时(放松之后)他/她应该以更简单的方式思考!