不使用 sub caption 或类似包来引用子图

不使用 sub caption 或类似包来引用子图

我正在写一本书,我使用 subcaption 包来引用一些图表。但是,我发现在某些情况下,直接在图表中添加标题文本 (a)、(b) 等对我来说更容易。更复杂的是,许多图表都是使用 tikz 创建的,为此我还使用了 tikz 外部 (因此图表是单独编译的)。根据我的经验,使用外部编译的图表中的引用由于某种原因不会显示标签。

由于所有这些,问题在于现在很难引用子图。我设法使用\ref\hyperref命令,如下所示:

Figure~\ref{fig:some_figure}\hyperref[fig:some_figure]{a}

不过,这个解决方案并不完美,因为当我将鼠标悬停在上面时,我有两个单独的超链接。有没有更简单、更好的方法来实现我想要的,而不使用 subacaption 或类似的包?

也许如果有一个宏可以用来从图形标签中获取图形编号,那么我可以将标签附加到图形标题中的文本(a),然后像这样引用它:

Figure~\hyperref[fig:some_figure_a]{\getFigureNumber{fig:some_figure}a}

答案1

当我的文章中有多个子图时,我会使用\subfig,包。我不确定这是否是您想要的,但请参阅下面的方法。我使用.svg.png 文件作为参考图片(在线找到)。\subcaptionlatex

\documentclass[12pt, a4paper]{article}
\usepackage{subfig}
\usepackage{subcaption}
\usepackage{float}
\usepackage{adjustbox}
\usepackage{hyperref}
\begin{document}
\begin{figure}[!htbp]
\centering
\subfloat[Sample]{\label{a}\includegraphics[width=.4\linewidth]{LaTeX_logo.svg.png}}\hfill
\subfloat[Sample]{\label{b}\includegraphics[width=.4\linewidth]{LaTeX_logo.svg.png}}\hfill
\subfloat[Sample]{\label{c}\includegraphics[width=.4\linewidth]{LaTeX_logo.svg.png}}\hfill
\subfloat[Sample]{\label{d}\includegraphics[width=.4\linewidth]{LaTeX_logo.svg.png}}
\caption{Sample Output.}
\end{figure}

\vspace{5em}
\huge Figures~\ref{a} to~\ref{d} are shown above. %Used \huge just for illustration purpose. 

\end{document}

我得到:

在此处输入图片描述

答案2

subcaption 包文档包含有关此主题的“子图中的标题”部分。特别是“引用没有子标题的子图”和“使用 tikz 包”子部分可能会让您感兴趣。

答案3

也许\phantomlabel(包裹subcaption)然后结合起来Figure~\hyperref[fig:some_figure_a]{\ref{fig:some_figure}a}可能会做你想要的。

相关内容