サブキャプションや類似のパッケージを使用せずにサブ図を参照する

サブキャプションや類似のパッケージを使用せずにサブ図を参照する

私は本を​​執筆中で、いくつかの図を参照するためにサブキャプション パッケージを使用しています。しかし、図に直接キャプション テキスト (a)、(b) などを追加する方が簡単な場合もあります。さらに複雑なことに、これらの図の多くは tikz を使用して作成されており、そのために tikz 外部も使用しています (したがって、図は個別にコンパイルされます)。私の経験では、外部を使用してコンパイルされた図内で参照を使用すると、何らかの理由でラベルが表示されません。

このため、サブ図を参照するのが難しくなるという問題があります。私は次のようにしてコマンド\refとコマンドを使用しました。\hyperref

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

それでも、この解決策は完璧ではありません。マウスを移動すると、2 つの別々のハイパーリンクが表示されます。subacaption や同様のパッケージを使用せずに、目的を達成するための、よりシンプルで優れた方法はありますか?

おそらく、図のラベルから図番号を取得するために使用できるマクロがあれば、図のキャプションのテキスト (a) にラベルを付けて、次のように参照することができます。

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

答え1

私の記事に複数のサブ図がある場合は、パッケージを使用します。これがあなたが探しているものかどうかはわかりませんが、私のアプローチを以下に示します。参考画像として .svg.png ファイルを使用しました\subfig(オンラインで見つかりました)。\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

サブキャプション パッケージのドキュメントには、このトピックに関するセクション「サブ図内のキャプション」が含まれています。特に、「サブキャプションなしでサブ図を参照する」および「tikz パッケージの使用」のサブセクションが興味深いかもしれません。

答え3

おそらく、\phantomlabel(パッケージのsubcaption) と を組み合わせると、Figure~\hyperref[fig:some_figure_a]{\ref{fig:some_figure}a}必要な処理が実行されるかもしれません。

関連情報