同时使用 \renewcommand{\theequation} 和 \renewcommand{\eqref}

同时使用 \renewcommand{\theequation} 和 \renewcommand{\eqref}

我正在尝试同时更改文本中和每个方程旁边的方程编号输出。例如,对于第一个方程,我想在方程后添加“方程 1”,并在文本中将其引用为“方程 1”。

阅读了几篇文章后,我尝试同时使用:

\renewcommand{\theequation}{eqn \arabic{equation}}
\renewcommand{\eqref}[1]{equation \ref{#1}} 

但使用会自动在文本中\renewcommand{\theequation}{eqn \arabic{equation}}添加单词,所以我最终得到一个。eqnequation eqn 1

一个简单的例子:

\documentclass[12pt]{article}
\usepackage{amsmath}
\renewcommand{\theequation}{eqn \arabic{equation}}
\renewcommand{\eqref}[1]{equation \ref{#1}}

\begin{document}
This is an example \eqref{eq:1}
\begin{equation}
y=2+4
\label{eq:1}
\end{equation}
\end{document}

生成结果:

在此处输入图片描述

基本上,我想要实现的是删除eqn文本中的单词,但保留等式后面的单词。在此先感谢您的帮助。

答案1

我建议改变\tagform@(见https://tex.stackexchange.com/a/261647/4427)并使用cleveref

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{cleveref}

\makeatletter
\def\tagform@#1{%
  \maketag@@@{(eqn #1\unskip\@@italiccorr)}%
}
\makeatother

\crefname{equation}{equation}{equations}
\Crefname{equation}{Equation}{Equations}

\begin{document}
This is an example \cref{eq:1}
\begin{equation}
y=2+4
\label{eq:1}
\end{equation}

\end{document}

在此处输入图片描述

如果您不想在 中的公式编号周围加上括号\cref,则需要设置\crefformat

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{cleveref}

\makeatletter
\def\tagform@#1{%
  \maketag@@@{(eqn #1\unskip\@@italiccorr)}%
}
\makeatother

\crefformat{equation}{equation~#2#1#3}
\Crefformat{equation}{Equation~#2#1#3}

\begin{document}
This is an example \cref{eq:1}
\begin{equation}
y=2+4
\label{eq:1}
\end{equation}

\end{document}

在此处输入图片描述

答案2

快速而肮脏的方法:吞噬一些\p@equation负责排版方程标签引用的参数:

请注意{}周围eqn- 它对数字的显示没有损害,但将文本保留eqn为分隔的标记列表,并且可以用移动参数“吞噬”,在使用过程中\gobblesomeargs会删除第一个参数(即eqn)并仅打印第二个参数。

我建议\eqref也保留原来的并使用另一个,比如说equref

但是我的解决方案不需要额外的包(除了,在 if定义时amsmath它也没有必要)\equref

\documentclass[12pt]{article}
\usepackage{amsmath}
\renewcommand{\theequation}{{eqn} \arabic{equation}}
%\renewcommand{\eqref}[1]{equation \ref{#1}}
\newcommand{\equref}[1]{equation \ref{#1}}
\makeatletter
\DeclareRobustCommand{\gobblesomeargs}[2]{#2}
\renewcommand{\p@equation}{\gobblesomeargs}
\makeatother

\begin{document}

This is an example \equref{eq:1}
\begin{equation}
y=2+4
\label{eq:1}
\end{equation}
\end{document}

在此处输入图片描述

答案3

mathtools引用自(加载并扩展amsmath)的文档

在 amsmath 中更改方程式编号的布局不太方便用户使用(它涉及@名称中带有三个 ' 的宏),因此 mathtools提供了一个有点让人联想到页面样式概念的界面。这样,您可以定义几种不同的标记形式,然后选择您喜欢的一种。

使用此功能你可以编写

\documentclass[12pt]{article}

\usepackage{mathtools}

\newtagform{prefixed}[eqn ]{(}{)}
\usetagform{prefixed}

\renewcommand{\eqref}[1]{equation \ref{#1}}

\begin{document}
This is an example \eqref{eq:1}
\begin{equation}
y=2+4
\label{eq:1}
\end{equation}
\end{document}

在此处输入图片描述

要重新引入标准版本,您可以使用

\usetagform{default}

个人评论:\eqref我宁愿定义类似的东西,而不是重新定义\Eqref

相关内容