我想更改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:研究区域,大约在这里。]”。