表格的扩展图片标题

表格的扩展图片标题

我想再进一步扩展一下我的扩展图标题,以便也解释表格。先前的问题是

指向 \thefigure 的超目标

自动“保护”扩展图形标题中的新段落

该宏的作用是定义一个命令\extcaption{Some extended information about the current figure}放入一个图形浮点数中,将其内容写入.efc 文件,然后通过命令打印在文档末尾的某处\printextcaption

为了将其扩展到表格,我认为我不需要回忆所有的代码,因为本质上,我需要一个函数(\checkwhichfloat在 MWE 中调用),它能够检测在哪个浮点数中调用它,并返回适当的计数器和字符串。

以下是代码:

\documentclass[10pt]{report}

\newcommand\efccounter{}
\newcommand\efctext{}

% \newcommand\checkwhichfloat{
% If figure
\renewcommand\efccounter{\thefigure}
\renewcommand\efctext{Figure}
% else if table
\renewcommand\efccounter{\thetable}
\renewcommand\efctext{Table}
%

\begin{document}

\begin{figure}
%\checkwhichfloat
\caption{This is \efctext~\efccounter}
\end{figure}

\begin{table}
%\checkwhichfloat
\caption{This is \efctext~\efccounter}
\end{table}

\end{document}

答案1

感谢@Axel Sommerfeldt 的评论,我通过该pdftexcmds软件包找到了解决方案(并浏览了此网站):

\documentclass[10pt]{report}
\usepackage{pdftexcmds} 

\newcommand\efccounter{} % Contains counter
\newcommand\efctext{} % Contains float env. string
% -------------------------------
\makeatletter
\newcommand\checkwhichfloat{
% If figure
\ifnum\pdf@strcmp{\@captype}{figure}=0
\renewcommand\efccounter{\thefigure}
\renewcommand\efctext{Figure}
% If table
\else\ifnum\pdf@strcmp{\@captype}{table}=0
\renewcommand\efccounter{\thetable}
\renewcommand\efctext{Table}
\fi\fi}
\makeatother

\begin{document}

\begin{figure}
\checkwhichfloat
\caption{This is \efctext~\efccounter}

\end{figure}

\begin{table}

\checkwhichfloat
\caption{This is \efctext~\efccounter}
\end{table}

\end{document}

相关内容