将 ref 更改为 eqref

将 ref 更改为 eqref

我的 Tex 中有很多方程式都标有 ( \ref{eqn: bla}),现在我想将其更改为\eqref{eqn: bla}。有没有比手动操作更快的方法?

答案1

如果没有手动(...)括号,可以使用\ref包装器命令来检查引用标签名称是否包含eqn:并相应地使用\eqref。但遗憾的是......这不是解决方案(...)

笔记我不确定这是否与cleveref或一起工作hyperref

\documentclass{article}

\usepackage{xstring}
\usepackage{amsmath}


\let\origref\ref  % Prevent recursive definition

\makeatletter
\renewcommand{\eqref}[1]{%
  \textup{\tagform@{\origref{#1}}}%
}
\makeatother

\renewcommand{\ref}[1]{%
  \IfSubStr{#1}{eqn:}{%
    \eqref{#1}%
  }{%
    \origref{#1}%
  }%
}

\begin{document}

\section{First} \label{sec:first}



\begin{equation}
  E=mc^2 \label{eqn: bla}
\end{equation}

\section{Second} \label{sec:second}

In section \ref{sec:first} we have equation \ref{eqn: bla}
\end{document}

在此处输入图片描述

相关内容