我正在尝试同时更改文本中和每个方程旁边的方程编号输出。例如,对于第一个方程,我想在方程后添加“方程 1”,并在文本中将其引用为“方程 1”。
阅读了几篇文章后,我尝试同时使用:
\renewcommand{\theequation}{eqn \arabic{equation}}
\renewcommand{\eqref}[1]{equation \ref{#1}}
但使用会自动在文本中\renewcommand{\theequation}{eqn \arabic{equation}}
添加单词,所以我最终得到一个。eqn
equation 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
。