无法使用子标题并排放置图形

无法使用子标题并排放置图形

我对 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}

结果:

生成的 pdf

相关内容