我有 4 张不同尺寸的图片(随附于此)。我想将它们放在 2 x 2 的网格中。它们的宽度应该大致相同0.5/textwidth
。我已完成以下操作:
'''
\documentclass[12pt,onehalfspacing,headsepline,oneside,openright,a4paper]{article}
\usepackage{subcaption}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\centering
\begin{subfigure}[t]{0.5\textwidth}
\centering
\raisebox{-\height}{\includegraphics[width=.8\linewidth]{images/image1.jpg}}
\caption{Step 1: Creating a new Project}
\vspace{1.7cm}
\label{fig:newproj}
\end{subfigure}%
\begin{subfigure}[t]{0.5\textwidth}
\centering
\raisebox{-\height}{\includegraphics[width=.8\linewidth]{images/image2.jpg}}
\caption{Step 3: Creating a new Model}
\label{fig:newmod}
\end{subfigure}
\newline
\begin{subfigure}{0.5\textwidth}
\centering
\includegraphics[width=0.8\linewidth]{images/image3.jpg}
%\vspace{0.7cm}
\caption{Step 5: Choosing model subsystem structure}
\label{fig:smsc_structure}
\end{subfigure}
\begin{subfigure}{0.5\textwidth}
\centering
\includegraphics[width=0.8\linewidth]{images/image4.jpg}
%\vspace{0.7cm}
\caption{Step 7: Editing new Model}
\label{fig:smsc_structure}
\end{subfigure}
\caption{How to make a model in OPAL-RT}
\label{fig:scratch}
\end{figure}
\end{document}
'''
但我想要的是:
用文字解释就是,我希望图形的上边距和下边距在水平方向上齐平。我应该能够通过使用空格在子图和标题之间添加空间来进行微调。
任何有关我做错什么的见解都将不胜感激。
笔记:我是这个论坛的新手,我正在尽力遵守指南。请在投反对票之前给我一个改正错误的机会。
更新:根据@David Carlisle的建议。我在\end{subfigure}后添加了注释“%”。并添加[t],使第二行与底部齐平。结果如下所示:
但是,正如指出的那样,编号现在混乱了(我需要将 c 和 b 互换)。我该如何解决这个问题?更新后的代码如下:
'''
\documentclass[12pt,onehalfspacing,headsepline,oneside,openright,a4paper]{article}
\usepackage{subcaption}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\centering
\begin{subfigure}[t]{0.5\textwidth}
\centering
\raisebox{-\height}{\includegraphics[width=.8\linewidth]{images/image1.jpg}}
\caption{Step 1: Creating a new Project}
%\vspace{1.7cm}
\label{fig:newproj}
\end{subfigure}%
\begin{subfigure}[t]{0.5\textwidth}
\centering
\raisebox{-\height}{\includegraphics[width=.8\linewidth]{images/image3.jpg}}
%\includegraphics[width=.8\linewidth]{images/image2.jpg}
\caption{Step 5: Creating a new Model}
\label{fig:newmod}
\end{subfigure}
\newline
\begin{subfigure}[t]{0.5\textwidth}
\centering
\includegraphics[width=0.8\linewidth]{images/image2.jpg}
%\vspace{0.7cm}
\caption{Step 3: Choosing model subsystem structure}
\label{fig:smsc_structure}
\end{subfigure}%
\begin{subfigure}[t]{0.5\textwidth}
\centering
\includegraphics[width=0.8\linewidth]{images/image4.jpg}
%\vspace{0.7cm}
\caption{Step 7: Editing new Model}
\label{fig:smsc_structure}
\end{subfigure}
\caption{How to make a model in OPAL-RT}
\label{fig:scratch}
\end{figure}
\end{document}
'''
答案1
子图的定位逻辑与字母的定位逻辑相同
WX
\newline
Y Z
其中每个“字母”都是文本宽度的一半。
因此,在第一行中,您会看到两个刚好合适的单词,但在第二行中,它们之间的单词间距会使它们不适合,因此您会在空格处得到自动换行。
\end{subfigure}
在您的情况下,如果没有注释掉,单词 space 就会出现在行尾之后。
答案2
我根据 David Carlisle 提供的意见发表了我的回答,如何垂直标记子图?。除非社区同意,否则我不会接受我的答案为正确答案。如果没有,我会选择 David 的答案为正确答案,即使它没有提供确切的解决方案。
'''
\documentclass[12pt,onehalfspacing,headsepline,oneside,openright,a4paper]{article}
\usepackage{subcaption}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\begin{subfigure}[t]{0.5\textwidth}
% \includegraphics[width=0.9\linewidth]{images/image1.jpg}
\raisebox{-\height}{\includegraphics[width=.9\linewidth]{images/image1.jpg}}
\vspace{0.25cm}
\caption{First subfigure} \label{fig:1a}
\vspace{0.25cm}
\par\medskip % if more vertical separation needed, use \bigskip
\includegraphics[width=0.9\linewidth]{images/image2.jpg}
\caption{Second subfigure} \label{fig:1b}
\end{subfigure}
\hspace*{\fill}
\begin{subfigure}[t]{0.5\textwidth}
\raisebox{-\height}{\includegraphics[width=.9\linewidth]{images/image3.jpg}}
%\includegraphics[width=0.9\linewidth]{images/image3.jpg}
\caption{Third subfigure} \label{fig:1c}
\par\medskip % if more vertical separation needed, use \bigskip
\includegraphics[width=0.9\linewidth]{images/image4.jpg}
\caption{Fourth subfigure} \label{fig:1d}
\end{subfigure}
\caption{This is a figure with six subfigures}\label{fig:1}
\end{figure}
\end{document}
'''结果正如预期的那样