ConTeXt:检索参考图的标题

ConTeXt:检索参考图的标题

标题几乎说明了一切...

我想检索我之前在文档中放置的图形的标题。

\starttext
\placefigure[][fig:foo]{My caption}{\externalfigure[foo.png]}

\input knuth

\getcaption{fig:foo} %Output: My caption
\stoptext

答案1

您可以使用 命令显示浮动标题或节标题的文本\about。另一种方法是使用\getreference带有title关键字的命令。

要从命令中删除引号,请更改命令的和键的\about值。leftright\setupreferencing

\useMPlibrary[dum]

% \setupreferencing[left=,right=]

\starttext

\placefigure[][fig:foo]{My caption}{\externalfigure[foo.png]}

\samplefile{knuth}

\starttabulate
\NC \tex{about}        \EQ \about[fig:foo]               \NC\NR
\NC \tex{getreference} \EQ \getreference[title][fig:foo] \NC\NR
\stoptabulate

\stoptext

在此处输入图片描述

答案2

深入研究ConTeXt 维基帮助我使用数据集找到了答案

%create a data set with figure captions
\definedataset[Captions]

%macro that will place figure and store its caption data
\def\Myfigure#1#2#3{%
    %title is store in Captions data set under the figure label key
    \setdataset[Captions][#1][caption=#2]
    \placefigure[#1]{#2}{#3}
}
\def\Getcaption#1{%
   %call for dataset with the figure label
   \datasetvariable{Captions}{#1}{caption} 
}
\starttext
\Myfigure{fig:foo}{a retrievable caption}{\externalfigure[cow]}

\input knuth

\bf \Getcaption{fig:foo}
\stoptext 

编译输出

相关内容