从标签检测浮点类型

从标签检测浮点类型

\autoref{some-label-goes-here}包中的命令hyperref将根据引用浮点数的类型打印“图 X”或“表 Y”等。

如何根据标签打印“图形”/“表格”(不带编号)?类似于\floattype{some-label-goes-here}

这很有用,例如,

The \floattype{some-figure-label} shows the expansion rules

其扩展名为“该图显示了扩展规则。”

答案1

cleveref通过使用该包及其\namecref宏,可以轻松实现您的目标。

在此处输入图片描述

如果需要将figure和中的首字母大写table,请使用cleveref选项加载包capitalise。(capitalize也可以。)

\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage[nameinlink,noabbrev]{cleveref}
\begin{document}
\begin{figure}[h]\caption{Hello}\label{fig:h}\end{figure}
\begin{table}[h]\caption{Goodbye}\label{tab:g}\end{table}

\Cref{fig:h} shows that \dots

The \namecref{fig:h} shows that \dots

\Cref{tab:g} show that \dots

The \namecref{tab:g} demonstrates that \dots
\end{document}

答案2

下面将引用类型作为第五个未使用的元素插入到用 every 编写的组件中\label

在此处输入图片描述

\documentclass{article}

\usepackage{hyperref,etoolbox}

\makeatletter
\def\strip@@period#1.#2\@nil{#1}
\def\@@currentHref{\expandafter\strip@@period\@currentHref\@nil}
\newcommand{\@@fifthoffive}[5]{%
  \@ifundefined{type@name@#5}
    {#5}
    {\csname type@name@#5\endcsname}%
}
\newcommand{\settyperef}[2]{\@namedef{type@name@#1}{#2}}
\newcommand{\typeref}[1]{%
  \HyRef@StarSetRef{#1}\@@fifthoffive
}%
\AtBeginDocument{
  % \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
  \patchcmd{\label}{{\@currentHref}{}}{{\@currentHref}{\@@currentHref}}{}{}
}
\makeatother

\begin{document}

\begin{figure}
  \caption{A figure caption}
  \label{fig:figure}
\end{figure}

See \autoref{fig:figure}. It is a \typeref{fig:figure}.

\settyperef{figure}{FiGuRe}

See \autoref{fig:figure}. It is a \typeref{fig:figure}.

\end{document}

\settyperef{<type>}{<output>}允许您格式化输出内容。

相关内容