第一个图与下面的第二个图重叠

第一个图与下面的第二个图重叠

使用子图时,我想让两个图形相互重叠,但同时我希望第一个图形与第二个图形稍微重叠。但是使用以下代码,第二个图形与第一个图形重叠。我该如何改变这种情况?谢谢!

\begin{figure}
\centering
\begin{subfigure}{0.55\textwidth}
   \includegraphics[width=1\linewidth]{fig1.png}
   \label{fig:Ng1} 
\end{subfigure}

\vspace{-5mm}

\begin{subfigure}{0.55\textwidth}
   \includegraphics[width=1\linewidth]{fig2.png}
   \label{fig:Ng2}
\end{subfigure}

\caption[...]{....}
\end{figure}

答案1

此解决方案使用保存框以正确的顺序创建子图(以防您想要添加标题)。它使用 tikz 定位子图并创建边界框。

\documentclass{article}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{tikz}

\begin{document}

\hrule
\begin{figure}[h]
% create subfigures in the correct order
\sbox0{\begin{subfigure}[b]{0.5\textwidth}
   \includegraphics[width=1\linewidth]{example-image-a}
   \label{fig:Ng1}
\end{subfigure}}%
\sbox1{\begin{subfigure}[b]{0.5\textwidth}
   \includegraphics[width=1\linewidth]{example-image-b}
   \label{fig:Ng2} 
\end{subfigure}}%
%
\centering
\begin{tikzpicture}% use absolute positioning and create a bounding box
    \node[inner sep=0pt] at (0,0) {\usebox1};% second subfigure at bottom
    \node[inner sep=0pt] at (0,\ht1-10mm) {\usebox0};% first subfigure at top with 10mm overlap
\end{tikzpicture}
\caption[...]{....}
\end{figure}
\hrule

\end{document}

答案2

这不太美观(可能也不合理)。您必须更改图片的顺序:第二张图片与第一张图片重叠,因此您必须先声明图片 2!

\documentclass{article}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}

\begin{document}
\lipsum[3]

\begin{figure}[h]
    \centering
    \begin{subfigure}[c]{0.45\textwidth}
        \includegraphics[height=4cm]{example-image-b}%
        \label{fig:Ng1} 
    \end{subfigure}
    \llap{\raisebox{3cm}{%
    \begin{subfigure}[c]{0.45\textwidth}
        \includegraphics[height=4cm]{example-image-a}%
        \label{fig:Ng2}
    \end{subfigure}
    }}
\caption{Figure 2 overlaps Figure 1.}
\end{figure}  

\lipsum[3]

\end{document}

结果是:

图形重叠。

相关内容