我尝试引用正文中的表格(和图片),修改并重置编号,如 MWE 所示,正文中的编号是正确的,但hyperref
指向错误的表格。如何在重置计数器的情况下获得对表格和图片的正确超级引用?
平均能量损失
\documentclass{elsarticle}
\usepackage{lineno,hyperref}
\begin{document}
Table \ref{tb1} in main text. Table \ref{sm_tb1} in Supplementary Material.
\begin{table}
\caption{Main text table}\label{tb1}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end{tabular}
\end{table}
%--------------------------------
% Supplementary Material
%--------------------------------
\pagebreak
\section*{Supplementary Material}
\pagebreak
\pagebreak
\setcounter{table}{0}
\setcounter{figure}{0}
\renewcommand{\thetable}{S\arabic{table}}
\renewcommand\thefigure{S\arabic{figure}}
\begin{table}
\caption{Supplemental table}\label{sm_tb1}
\begin{tabular}{||c c c c||}
\hline
Col1 & Col2 & Col2 & Col3 \\ [0.5ex]
\hline\hline
1 & 6 & 87837 & 787 \\
\hline
2 & 7 & 78 & 5415 \\
\hline
3 & 545 & 778 & 7507 \\
\hline
4 & 545 & 18744 & 7560 \\
\hline
5 & 88 & 788 & 6344 \\ [1ex]
\hline
\end{tabular}
\end{table}
\end{document}
答案1
重置table
或任何计数器(尤其是在未编号部分中的计数器)必定会造成混淆hyperref
,因为此包通过应用命令从部分等计数器值创建“唯一”标签名称\theHtable
。现在,由于表计数器具有1
两次值,并且没有其他唯一值(如部分计数器值)可用,因此将创建相同的锚点。
\theHtable
为补充提供一个新的实现就足够了,创建一个新的锚点名称,例如,Supplement.
\renewcommand{\theHtable}{Supplement.\thetable}
和类似的形式\theHfigure
(见下面的代码)
\documentclass{elsarticle}
\usepackage{lineno}
\usepackage{hyperref}
\begin{document}
Table \ref{tb1} in main text. Table \ref{sm_tb1} in Supplementary Material.
\begin{table}
\caption{Main text table}\label{tb1}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end{tabular}
\end{table}
%--------------------------------
% Supplementary Material
%--------------------------------
\clearpage
\section*{Supplementary Material}
\clearpage
\setcounter{table}{0}
\setcounter{figure}{0}
\renewcommand{\thetable}{S\arabic{table}}
\renewcommand\thefigure{S\arabic{figure}}
\renewcommand{\theHtable}{Supplement.\thetable}
\renewcommand{\theHfigure}{Supplement.\thefigure}
\begin{table}
\caption{Supplemental table}\label{sm_tb1}
\begin{tabular}{||c c c c||}
\hline
Col1 & Col2 & Col2 & Col3 \\ [0.5ex]
\hline\hline
1 & 6 & 87837 & 787 \\
\hline
2 & 7 & 78 & 5415 \\
\hline
3 & 545 & 778 & 7507 \\
\hline
4 & 545 & 18744 & 7560 \\
\hline
5 & 88 & 788 & 6344 \\ [1ex]
\hline
\end{tabular}
\end{table}
\end{document}