
Я работаю над книгой и использую пакет 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
, \subcaption
пакеты, когда в моей статье есть несколько подрисунков. Я не уверен, что это то, что вы ищете, но, пожалуйста, посмотрите ниже мой подход. Я использовал файл latex
.svg.png в качестве справочного изображения (найдено в сети).
\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}
может сделать то, что вы хотите.