包含子图的大图的几个标签

包含子图的大图的几个标签

我使用 matplotlib 制作了一个图形,它在同一个 .pdf 文件中有三个子图,类似于这个:Matplotlib 图库示例。我添加了标签“a)”、“b)”、“c)”图片。

为了分别引用整个图像以及三个图像部分,我希望有四个标签。这是我使用 subcaption-package(\subfigure 命令)组合的不同图形所具有的行为。

然而,到目前为止我唯一能创建的只是整个图形的单一标签。

\begin{figure}
\includegraphics[width=\textwidth]{plot_with_subplots.pdf}
\caption{This plot has three parts.}
\label{fig:plot}
\end{figure}

调用“figure \ref{fig:plot}”将得到类似“figure 1”的结果。但是,我想要一个额外的标签,如“figure \ref{fig:plot:left_plot}”,将其翻译为“figure 1a”。

谢谢。

答案1

干净的解决方案是将多图拆分为单个图,并将它们分别作为子图(例如使用包subfigure)包含进去,然后可以分别标记和引用。

如果您不想/不能这样做,您可以按如下方式模拟子图。该\phantomlabel命令的工作方式与\label命令类似,但有一个额外的第一个参数,用于将后缀附加到图形的编号上。

\documentclass{article}
\usepackage{graphicx}
\makeatletter
\newcommand\phantomlabel[2]%
  {\@bsphack
   \protected@write\@auxout{}%
     {\string\newlabel{#2}{{\@currentlabel#1}{\thepage}}}%
   \@esphack
  }
\makeatother
\begin{document}
Figure~\ref{fig:plot} consists of sub-figure~\ref{fig:plot:left_plot},
sub-figure~\ref{fig:plot:right_plot}, and
sub-figure~\ref{fig:plot:somewhere else}.
\begin{figure}
  \includegraphics[width=\textwidth]{example-image-a}
  \caption{This plot has three parts.}\label{fig:plot}
  \phantomlabel{a}{fig:plot:left_plot}
  \phantomlabel{b}{fig:plot:right_plot}
  \phantomlabel{c}{fig:plot:somewhere else}
\end{figure}
\end{document}

在此处输入图片描述

相关内容