我正在尝试将四幅图像排列在 2 x 2 的网格中。整个图形(而不是子图形)的标题应出现在右侧而不是底部。我尝试使用 andcaption
包subcaption
并minipages
得出以下代码:
\begin{figure*}[t!]
\centering
\begin{minipage}[l]{0.7\textwidth}
\begin{subfigure}{.33\linewidth}
\centering
\fakeimage
\caption{Colum 1}\label{fig:image1}
\end{subfigure}
\begin{subfigure}{.33\linewidth}
\centering
\fakeimage
\caption{Colum 2}\label{fig:image2}
\end{subfigure}
\bigskip
\begin{subfigure}{.33\linewidth}
\centering
\fakeimage
\end{subfigure}
\begin{subfigure}{.33\linewidth}
\centering
\fakeimage
\end{subfigure}
\end{minipage}
\begin{minipage}[r]{.10\textwidth}
\centering
\caption{This is the caption for all four images.}
\end{minipage}
\end{figure*}
遗憾的是,标题没有显示在图片右侧,而是显示在右下角图片下方。我该如何修复这个问题?
答案1
问题的主要原因是第一行...\end{minipage}
和第二行之间的空行\begin{minipage}...
。您应该将其删除。
但是,您的代码存在问题:
- 对于
minipage
,没有选项l
或r
。只有t
(顶部对齐)、c
(垂直居中对齐) 和b
(底部对齐)。 - 为什么您要为四个数字创建 70% 的列,而为右侧的标题只创建 10% 的列?
- 同时,在 70% 的列中,每个数字仅占据 33% 的宽度。为什么?
我提出以下解决方案。请注意注释字符的使用 %
。
\documentclass[a4paper]{article}
\usepackage{graphicx}
\newcommand*\fakeimage{\includegraphics[width=\linewidth]{example-image}}
\usepackage{caption}
\usepackage{subcaption}
\begin{document}
\begin{figure*}
\centering
\begin{minipage}[t]{0.7\linewidth}
\begin{subfigure}{0.48\linewidth}
\centering
\fakeimage
\caption{Colum 1}\label{fig:image1}
\end{subfigure}% <- don't forget this %
\hfill
\begin{subfigure}{0.48\linewidth}
\centering
\fakeimage
\caption{Colum 2}\label{fig:image2}
\end{subfigure}
\begin{subfigure}{0.48\linewidth}
\centering
\fakeimage
\caption{Colum 1}\label{fig:image3}
\end{subfigure}% <- don't forget this %
\hfill
\begin{subfigure}{0.48\linewidth}
\centering
\fakeimage
\caption{Colum 2}\label{fig:image4}
\end{subfigure}
\end{minipage}% <- don't forget this %
\hfill
\begin{minipage}[b]{0.27\linewidth}
\caption{This is the caption for all four images.}
\end{minipage}
\end{figure*}
\end{document}
以上应该不是被认为是一种良好做法。对我来说,你似乎正在寻找一种将图片标题放在“边注”位置的格式。