如何获取当前表格环境的标签和标题?

如何获取当前表格环境的标签和标题?
\documentclass{article}
\RequirePackage{longtable,nameref}

\begin{document}

\begin{longtable}[t]{l l} 
    \caption{Table caption.}
    \label{tab:table1}

    \\ a & b
    \\ c & \textit{\nameref*{tab:table1}}

\end{longtable}         

\end{document}

是否可以在一个单元格中使用当前表格的标题而不输入其标签tab:table1,而是使用“自引用” \currentlabelname——前提是在当前表格环境中只创建一个标签和一个标题?

答案1

nameref将标题存储在宏中\@currentlabelname。但是,它是本地存储的,因此需要将其分配给全局宏以供其他表格单元格使用:

\documentclass{article}
\RequirePackage{longtable,nameref}

\begin{document}

\begin{longtable}[t]{l l}
    \caption{Table caption.}
    \label{tab:table1}
    \global\expandafter
    \let\expandafter\captiontitle\csname @currentlabelname\endcsname
    \\ a & b
    \\ c & \textit{\captiontitle}

\end{longtable}

\end{document}

结果

相关内容