如何将子图与标题重叠

如何将子图与标题重叠

考虑以下

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

\begin{document}

\begin{figure*}[htpb]
\centering
\begin{minipage}{0.3\linewidth}
    \begin{subfigure}[t]{\textwidth}
        \includegraphics[width=\linewidth]{example-image-a}
            \caption{}
            \label{figa}
    \end{subfigure}
\end{minipage}
\begin{minipage}{0.3\linewidth}
    \begin{subfigure}[t]{\textwidth}
        \includegraphics[width=\linewidth]{example-image-b}
            \caption{}
            \label{figb}
    \end{subfigure}
\end{minipage}
\par\medskip
\caption{Example caption.}
\label{fig}
\end{figure*}

\end{document}

这使

在此处输入图片描述

如何将子图 (a) 和 (b) 的标题放置在与图像重叠的任意位置?例如,如何获得

在此处输入图片描述

编辑:例如,使用类似

\captionsetup[subfigure]{font={bf,small}, skip=-100pt, margin=0.1cm, singlelinecheck=false}

几乎奏效

在此处输入图片描述

但并不完全如此。放在\caption前面\includegraphics似乎也没什么用,因为标题会移到后面的层。有什么想法吗?

答案1

在那种情况下,我认为tikz至少一开始就提供了很好的解决方案。唯一的问题是,在这种情况下,你必须拆分常规的操作,\caption因为后者不能用作参数\node(参见第 7.3 节文档)。

下面是一个例子。引用每个子图应该可以正常工作,通常如此。由于您将它们保存在同一页面上,因此我只需粘贴\captionlistentrys 即可生成锚点,以便您可以引用每个子图。然后,\captiontext*仅生成空标签。这样,添加更多图像就不会有问题了。

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

\usetikzlibrary{positioning}

\newcounter{subfig}


\begin{document}
\kant[1]

\begin{figure}[tbh]
  \setcounter{subfig}{0}
  \newcommand\typecap{\stepcounter{subfig}\captiontext*[\value{subfig}]{}}
  \captionsetup{position=bottom, skip=3pt}
  \centering
  \begin{subcaptiongroup}
    \captionlistentry{}\label{figa}   % Required to reference subfigures
    \captionlistentry{}\label{figb}
    \tikz[
      node distance=3pt,
      caption/.style={
        anchor=north west,
        font=\bfseries,
        outer sep=6pt,
      },
      relpos/.style={
        right=of #1.south east,
        anchor=south west,
      },
    ] {
      \node (A) {\includegraphics[width=0.3\textwidth]{example-image-a}};
      \node (B) [relpos=A] {\includegraphics[width=0.2\textwidth]{example-image-b}};
      \node (C) [relpos=B] {\includegraphics[width=0.35\textwidth]{example-image-b}};
      \node at (A.north west) [caption] {\typecap};
      \node at (B.north west) [caption] {\typecap};
      \node at (C.north west) [caption] {\typecap};
    }
  \end{subcaptiongroup}
  \caption{Example caption.}\label{fig}
\end{figure}

\kant[2]
\end{document}

在此处输入图片描述

相关内容