是否可以在 endfloat 包的标记文本中包含图形/表格的简短标题?

是否可以在 endfloat 包的标记文本中包含图形/表格的简短标题?

我想更改endfloat包生成的图形/表格的占位符标签,以便它也包含简短的描述或关键字(例如简短标题)。

因此,我不想使用标记文本“图 X 关于这里”,而是希望使用类似“图 X:学习区域,关于这里”的内容。

我的图形布局基本如下:

\begin{figure*}[t!]
\centering
\includegraphics{Images/StudyArea}
\caption[Short Caption]{Long Caption}
\label{fig:StudyArea}
\end{figure*}

我设法使用以下方法更改标记文本:

\renewcommand\floatplace[1]{%
\begin{center}
[\csname #1name\endcsname~\csname thepost#1\endcsname\ about here.]
\end{center}}

并且我知道我可以使用文本中的简短标题作为参考\nameref{label}

但是是否有可能将其包含在所有图形/表格的占位符中?

提前致谢!

答案1

我认为这不可能直接实现,因为endfloat包将图形内容的代码行写入文件而不进行扫描,因此不知道参数。(事实上,它甚至不知道图形内部是否\caption有。)\caption

但是您可以引入一个辅助宏来\floatplace在每个图形之前给出提示,例如:

\documentclass{article}
\usepackage[demo]{graphicx}

\usepackage{endfloat}

% Command \setfloatcaption which defines \floatcaption
% which could be used later on in \floatplace
\newcommand\floatcaption{}
\newcommand\setfloatcaption[1]{%
  \renewcommand\floatcaption{#1}}

% Redefinition of \floatplace which uses \floatcaption
\renewcommand\floatplace[1]{%
  \begin{center}%
    [\csname #1name\endcsname~\csname thepost#1\endcsname: \floatcaption, about here.]
  \end{center}}

\begin{document}

\setfloatcaption{Study Area} % set \floatcaption used by \floatplace
\begin{figure*}[t!]
\centering
\includegraphics{Images/StudyArea}
\caption[Short Caption]{Long Caption}
\label{fig:StudyArea}
\end{figure*}

\end{document}

结果是“[图 1:研究区域,大约在这里。]”。

相关内容