与其他 \ref 类命令(例如 \autoref 和 \cref)一起使用 fancy-preview

与其他 \ref 类命令(例如 \autoref 和 \cref)一起使用 fancy-preview

我终于开始fancy-preview工作了,我在脚本中找到了可以添加到它捕获的环境列表中的位置(大约第 97 行)(添加命题等等)。但是,快速阅读后,我找不到一种方法来获取fancy-preview\autoref\cref其他\ref类似命令。有人知道怎么做吗?(我不懂 perl 或低级 latex,所以我很容易错过一些显而易见的东西。)

我更喜欢使用\autoref\ref在花费太多时间进行设置后,不得不放弃使用它fancy-preview会非常令人失望。\autoref

编辑:在进一步研究之后,我认为这不是在脚本中控制的fancy-preview。我认为它实际上在 中fancytooltips.dtx,大约在第 756 行。我还不知道如何调整此代码以重新定义\autoref,但我认为我至少在正确的地方寻找。

答案1

以下代码对我有用。另存为file.tex并编译fancy-preview file

解释:

  • 原始fancytooltips.sty命令\ref被保存到\fancy@oldref并被一个充当\ref并添加工具提示的命令替换。
  • 类似地,我们将命令存储\autoref\oldautoref并用一个作用类似于旧的命令替换它\autoref,然后 ant 作用类似于\ref但不打印引用(\fancy@oldref暂时重新定义)并且只保留工具提示。

\documentclass{article}
\usepackage{tikz,hyperref,amsmath}

\makeatletter
\let\oldautoref\autoref
\def\autoref#1{\oldautoref{#1}{\def\fancy@oldref##1{}\ref{#1}}}
\makeatother

\begin{document}
\section{First}\label{sec:1}
Consider equation
\begin{equation}\label{equation}
  x^2+y^2=\frac 1\pi
\end{equation}

\begin{figure}
  \centering
  \begin{tikzpicture}
    \draw[red,fill=blue] (0,0) circle (2cm);
  \end{tikzpicture}
  \caption{Caption of the figure}
  \label{figure}
\end{figure}


\section{Second}\label{sec:2}
This if the second section. It follows Section \ref{sec:1}. See also
\autoref{equation} and \autoref{figure}, i.e. eq. \eqref{equation} and
Picture \ref{figure}.
\end{document}

相关内容