我想生成方程式,其右侧的数字采用 (eqn 1) 而不是 (1) 的形式。我该怎么做呢?大概是使用用户定义的命令,但我遇到了麻烦。
例子
x + y = 2 (公式 1)
y = 5 + 4 (方程式 2)
答案1
你可以用一个简单的方法
\renewcommand{\theequation}{eqn \arabic{equation}}
或者用更花哨的方法(见如何将 amsmath 方程标签移至 LHS 边缘?以激励自己)
\documentclass{article}
\usepackage{amsmath}
\usepackage{etoolbox}
\makeatletter
% detach \eqref processing from \tag processing
\let\tagform@ref\tagform@
\let\maketag@@@ref\maketag@@@
\patchcmd{\eqref}{\tagform@}{\tagform@ref}{}{}
\patchcmd{\tagform@ref}{\maketag@@@}{\maketag@@@ref}{}{}
% redefine \tagform@ to have “eqn” in front of the number
\def\tagform@#1{%
\maketag@@@{(\ignorespaces eqn #1\unskip\@@italiccorr)}%
}
\makeatother
\begin{document}
We reference equation~\eqref{a} which follows
\begin{align}
x + y &= 2 \label{a}\\
y &= 5 + 4
\end{align}
\end{document}
答案2
使用\tag
命令amsmath 包. 在其普通形式中,它会在标签周围加上括号,而在星号形式中则不会。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
x + y &= 2 \tag{eqn 1} \\
y &= 5 + 4 \tag*{(eqn 2)}
\end{align}
\end{document}
或者,如果您想在所有方程编号之前放置“eqn”,您可以重新定义\theequation
。
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\renewcommand\theequation{eqn \@arabic\c@equation}
\makeatother
\begin{document}
\begin{align}
x + y &= 2 \\
y &= 5 + 4
\end{align}
\end{document}