考虑以下
\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 节文档)。
下面是一个例子。引用每个子图应该可以正常工作,通常如此。由于您将它们保存在同一页面上,因此我只需粘贴\captionlistentry
s 即可生成锚点,以便您可以引用每个子图。然后,\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}