
コード
次の例を考えてみましょう:
\documentclass[danish]{article}
\usepackage{polyglossia}
\setdefaultlanguage{danish}
\usepackage[demo]{graphicx}
\usepackage{booktabs}
\usepackage{floatrow}
\newfloatcommand{capbtabbox}{table}[][\FBwidth]
\usepackage{caption,subcaption}
\usepackage{siunitx}
\usepackage{hyperref}
\begin{document}
\begin{figure}
\begin{floatrow}
\ffigbox{
\includegraphics[width = 0.2\textwidth]{image1}%
}{
\caption{Figure caption.}
\label{fig:1}
}
\capbtabbox{%
\begin{tabular}{
l
S[table-format = 2]
}
\toprule
Næring~[\qty{1}{\g}] & {Energi~(\unit{\kJ})} \\
\midrule
Protein & 17 \\[0.5ex]
Fedtstof & 38 \\[0.5ex]
Kulhydrat & 17 \\[0.5ex]
Alkohol & 30 \\
\bottomrule
\end{tabular}
}{
\caption{Table caption.}
\label{tbl:1}
}
\end{floatrow}
\end{figure}
\autoref{tbl:1}
\end{document}
質問
図ではなく表を参照するにはどうすればよいでしょうか?
答え1
まず、カウンター名を取得するために は\autoref
使用せ\@currentlabelname
ず、 を使用します。ただし、図内のすべてのキャプションは、図の上部に設定されている同じ を使用します。\@currentHref
\@currentHref
\capstart
から使用できますhypcap
\@currentHref
希望する別のパッケージ\@captype
(テーブル)を追加します。
使わなかったfloatrow
主に、それが問題の原因ではないことを確認するためです (多くの場合、それが問題の原因です)。
\documentclass[danish]{article}
\usepackage{polyglossia}
\setdefaultlanguage{danish}
\usepackage[demo]{graphicx}
\usepackage{booktabs}
%\usepackage{floatrow}
%\newfloatcommand{capbtabbox}{table}[][\FBwidth]
\usepackage{caption,subcaption}
\usepackage{siunitx}
\usepackage{hyperref}
\usepackage{hypcap}
\makeatletter
\newcommand{\setcaptype}[1]% #1 = figure or table
{\def\@captype{#1}}
\newcommand{\setlabelname}[1]{\def\@currentlabelname{#1}\ignorespaces}
\makeatother
\begin{document}
\setcounter{table}{1}
\begin{figure}
\begin{minipage}[b]{\dimexpr 0.5\textwidth-0.5\columnsep}
\centering
\includegraphics[width = 0.2\textwidth]{image1}%
\caption{Figure caption.}
\label{fig:1}
\end{minipage}\hfill
\begin{minipage}[b]{\dimexpr 0.5\textwidth-0.5\columnsep}
\setcaptype{table}\capstart
\centering
\begin{tabular}[b]{
l
S[table-format = 2]
}
\toprule
Næring~[\qty{1}{\g}] & {Energi~(\unit{\kJ})} \\
\midrule
Protein & 17 \\[0.5ex]
Fedtstof & 38 \\[0.5ex]
Kulhydrat & 17 \\[0.5ex]
Alkohol & 30 \\
\bottomrule
\end{tabular}
\caption{Table caption.}
\setlabelname{notused}
\label{tbl:1}
\end{minipage}
\end{figure}
\autoref{tbl:1}
\end{document}