我对 Overleaf 还不是很熟悉,但我想将两个图并排放置,我尝试了 subcaption 包。下面是我为此使用的 latex 代码的一部分
\usepackage{caption}
\usepackage{subcaption}
\begin{figure}
\begin{subfigure}[b]{0.4\textwidth}
\includegraphics[width=0.4\textwidth]{image1.eps}
\caption{Picture 1}
\label{fig:1}
\end{subfigure}
\begin{subfigure}[b]{0.4\textwidth}
\includegraphics[width=0.4\textwidth]{image2.eps}
\caption{Picture 2}
\label{fig:2}
\end{subfigure}
\end{figure}
但我得到的输出是图像上下叠放。此外,我从代码中得到了一些杂散的文本 [b]0.4,我希望它们的子标签为 3.6 a) 和 3.6 b),而不是图 3.6、图 3.7,并有一个主标题。
谢谢您的帮助!
编辑:我现在已经添加了 MWE。
\RequirePackage[l2tabu]{nag}
\documentclass{memoir}
\newsubfloat{figure}
\newsubfloat{table}
\usepackage{subfigure}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{showframe}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\begin{subfigure}[b]{0.45\textwidth}
\includegraphics[width=\textwidth]{example-image-a}
\subcaption{Picture 1}
\label{fig:1}
\end{subfigure}
\hfill
\begin{subfigure}[b]{0.45\textwidth}
\includegraphics[width=\textwidth]{example-image-b}
\subcaption{Picture 2}
\label{fig:2}
\end{subfigure}
\caption{Main Figure}
\label{Main figure}
\end{figure}
\end{document}
答案1
导致一张图片位于另一张图片下方的原因是子图之间存在空行,正如@Mensch 在其回答中提到的那样,但是您需要先决定要使用哪个包来处理子图。memoir
有自己的机制,subfigure
已经过时并且与不兼容subcaption
。 我建议您坚持使用后者:
%\RequirePackage[l2tabu]{nag}
\documentclass{memoir}
%\newsubfloat{figure}
%\newsubfloat{table}
%\usepackage{subfigure}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{graphicx}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\begin{document}
\begin{figure}
\begin{subfigure}[b]{0.45\textwidth}
\includegraphics[width=\textwidth]{example-image-a}
\caption{Picture 1}
\label{fig:1}
\end{subfigure}
\hfill
\begin{subfigure}[b]{0.45\textwidth}
\includegraphics[width=\textwidth]{example-image-b}
\caption{Picture 2}
\label{fig:2}
\end{subfigure}
\caption{Main Figure}
\label{Main figure}
\end{figure}
\end{document}
这使:
答案2
因为你没有给我们最小工作示例(MWE)(请将其添加到您的下一个问题中!)我有点猜测。
请参阅我使用包showframe
来可视化打字区域和边距。请参阅我使用图像example-image-a
和-b
来自包mwe
(必须安装但不能调用)...
现在看一下修正后的代码部分:
\begin{subfigure}[b]{0.45\textwidth} % <==============================
\includegraphics[width=\textwidth]{example-image-a} % <=============
\caption{Picture 1}
\label{fig:1}
\end{subfigure}
我过去常常0.45\textwidth
在两张图片之间留出较小的空白。此定义定义了以下文本宽度
\includegraphics[width=\textwidth]{example-image-a}
要确保图像使用新的完整可用文本,请使用[width=\textwidth]
如上所示的选项。
命令\hfill
会在两个图像之间添加空白,以填充行。请注意,您必须删除两个subfigure
环境之间的所有空白行!(空白行 = LaTeX 中的新段落)
请参阅以下完整 mwe:
\documentclass{article}
\usepackage{showframe} % <==============================================
\usepackage{graphicx} % <===============================================
\usepackage{caption}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\begin{subfigure}[b]{0.45\textwidth} % <==============================
\includegraphics[width=\textwidth]{example-image-a} % <=============
\caption{Picture 1}
\label{fig:1}
\end{subfigure}
\hfill % <============================================================
\begin{subfigure}[b]{0.45\textwidth} % <==============================
\includegraphics[width=\textwidth]{example-image-b} % <=============
\caption{Picture 2}
\label{fig:2}
\end{subfigure}
\end{figure}
\end{document}
结果: