获取 cleveref 类型,仅

获取 cleveref 类型,仅

我正在使用xrcleveref包来引用另一个文档中的图表,使用与其他文档相同的图表和表格编号,如下所示这里。但是,对于非浮动图形和表格,我无法使用\@captype\extref因此,我想获得cleveref 类型给定参考。但是,我找不到实现此目的的技术。

这是一个没有外部文档的 MWE xr(因为我不认为这些复杂性对于这个问题并不重要,除非没有办法提取类型cleveref)。

更新的 MWE(更准确地显示问题):

\documentclass{article}

\usepackage{graphicx}
\usepackage{cleveref}
\usepackage{caption}

\makeatletter
\newcommand{\extref}[1]{%
  \@namedef{the\@captype}{\ref{#1}}%
}
\makeatother

\begin{document}

\begin{center}
\includegraphics{example-image-a.jpg}
\captionof{figure}{caption\label{fig:example}}
\end{center}

\begin{center}
\includegraphics{example-image-a.jpg}
\extref{fig:example}
\captionof{figure}{repeated}
\end{center}

Here is a reference: \cref{fig:example}.

\end{document}

答案1

这就是\namecref目的:

\documentclass{article}

\usepackage{graphicx}
\usepackage{cleveref}

\begin{document}

\begin{figure}
\includegraphics{example-image-a.jpg}
\caption{caption\label{fig:example}}
\end{figure}

Here is a reference: \cref{fig:example}.

Now I want to know the label type: \namecref{fig:example}

\end{document}

在此处输入图片描述

编辑:获取正确的类型,而不是类型名称,如评论中所要求的那样:

\documentclass{article}

\usepackage{graphicx}
\usepackage{cleveref}

\makeatletter
\newcommand{\mycreftype}[1]{%
  \cref@gettype{#1}{\@mytempvar}%
  \@mytempvar}
\makeatother

\begin{document}

\begin{figure}
\includegraphics[width=\linewidth]{example-image-a.jpg}
\caption{caption\label{fig:example}}
\end{figure}

Here is a reference: \cref{fig:example}.

Now I want to know the label type: \mycreftype{fig:example}

\end{document}

在此处输入图片描述

相关内容