我正在写一本书,我使用 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 文件作为参考图片(在线找到)。\subcaption
latex
\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}
可能会做你想要的。