如何引用不存在的子圖?

如何引用不存在的子圖?

我使用以下方法繪製了一個包含多個子圖的大圖繪圖庫,因為該庫提供了許多在 tex 中難以實現的功能(如共享標籤和共享軸)。但是,我想像在 tex 中\ref一樣使用這些子圖。subcaption有什麼方法可以做到這一點嗎?

我的要求與問題幾乎相同包含子圖的大圖的幾個標籤

hyperref但是,該解決方案在導入時不起作用。由於這個答案是三年前發布的,似乎不會得到任何更新,所以我再次提出這個問題。

答案1

我想出了一個解決辦法:

\documentclass{article}
\usepackage{graphicx}
\usepackage{hyperref}

\makeatletter
\newcommand{\phantomlabel}[2]{
    \protected@write\@auxout{}{
        \string\newlabel{#2}{
            {\@currentlabel#1}{\thepage}
            {\@currentlabel#1}{#2}{}
        }
    }
    \hypertarget{#2}{}
}
\makeatother

\begin{document}
Figure~\ref{fig:a} consists of sub-figure~\ref{fig:a:left_plot},
sub-figure~\ref{fig:a:right_plot}, and
sub-figure~\ref{fig:a:somewhere else}.
\begin{figure}
  \includegraphics[width=\textwidth]{example-image-a}
  \caption{This plot has three parts.}\label{fig:a}
  \phantomlabel{a}{fig:a:left_plot}
  \phantomlabel{b}{fig:a:right_plot}
  \phantomlabel{c}{fig:a:somewhere else}
\end{figure}

Figure~\ref{fig:b} consists of sub-figure~\ref{fig:b:left_plot},
sub-figure~\ref{fig:b:right_plot}, and
sub-figure~\ref{fig:b:somewhere else}.
\begin{figure}
  \includegraphics[width=\textwidth]{example-image-b}
  \caption{This plot has three parts.}\label{fig:b}
  \phantomlabel{a}{fig:b:left_plot}
  \phantomlabel{b}{fig:b:right_plot}
  \phantomlabel{c}{fig:b:somewhere else}
\end{figure}
\end{document}

該程式碼是根據@gernot 在我連結的問題中發布的答案修改的。基本概念是在相應的虛擬標籤位置創建一個超目標,而不需要編寫文字。

相關內容