根据推荐LaTeX 的简单介绍,我一直在IEEEeqnarray
大量使用该环境,因为它解决了许多与align
环境相关的相当烦人的问题。但由于其文档有限以及它对其他环境(如)造成的更改enumerate
,我开始寻找替代方案。
其优点在于IEEEeqnarray
:
命令
\IEEEyesnumber
,允许您在IEEEeqnarray*
环境中插入方程编号。这使得在一行中插入方程编号变得容易得多,而不必\nonumber
像在环境中那样在每一行的末尾写入align
。它包括编辑列宽的选项,就像在环境中一样
array
。语法是:\begin{IEEEeqnarray*}{rCl}
,这是一个非常好的选项。
是否有人知道如何在其他环境中实现同样的优势?
答案1
看来您使用的主要原因IEEEeqnarray*
是您可以选择只对某个方程进行编号。您可以使用align*
然后tag
/\label
对要编号的方程进行编号来实现这一点。
下面我定义了一个\IEEEyesnumber
提供所需功能的,您可以根据需要\label
使用它们:\ref
代码:
\documentclass{article}
\usepackage{amsmath}
\newcommand*{\IEEEyesnumber}{\refstepcounter{equation}\tag{\theequation}}%
\begin{document}
\begin{align}
a &= b \\
c &= d \label{eqn:Align} \\
f & = g
\end{align}
\begin{align*}
a &= b \\
c &= d \IEEEyesnumber\label{eqn:AlignStar} \\
f & = g
\end{align*}
In \verb|align| the equation was \ref{eqn:Align}, and in \verb|align*| it was \ref{eqn:AlignStar}.
\end{document}
答案2
我从 peter grill 那里偷了这个例子并做了一点改动——使用aligned
withinequation
为第二个显示获取一个数字。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
a &= b \\
c &= d \label{eqn:Align} \\
f & = g
\end{align}
\begin{equation}
\begin{aligned}
a &= b \\
c &= d \\
f & = g
\end{aligned}
\label{eqn:Aligned}
\end{equation}
In \verb|align| the equation was \ref{eqn:Align}, and in the structure
using \verb|aligned| it was \ref{eqn:Aligned}.
\end{document}
有关更多可能性,请参阅amsmath
文档(texdoc amsmath
来自 tex live 安装)。
答案3
为了防止 IEEEtrantools 改变列表环境,只需使用其retainorgcmds
选项加载它:
\usepackage[retainorgcmds]{IEEEtrantools}
这是 1.3 版及更高版本的默认操作IEEEtrantools。
版本 1.3 现在也可以正常处理hyperref
链接。
IEEEeqnarray 的文档非常丰富。请参阅 IEEEtran HOWTO 的附录 F:http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/ 以及第 XI 节的 IEEEitemize、IEEEenumerate 等列表。最后,可以在 IEEEtrantools_doc.txt 文件中找到其他 IEEEtrantools.sty 特定文档。