我有两个相当复杂的方程式,我想将它们对齐在“=”符号左侧和右侧的两个点。
我在文档的其他地方使用了cleveref
命令\cref
,但该包与 发生冲突IEEEtrantools
。
\documentclass{report}
\usepackage[retainorgcmds]{IEEEtrantools}
\usepackage{cleveref}
\begin{document}
\begin{IEEEeqnarray}{rCl}
a & = & 3\\
b & = & 4
\end{IEEEeqnarray}
\end{document}
此外,我想给这两个方程式一个标签,该标签应右对齐并垂直居中显示。
我从一本书(Bohren and Huffman,2004)中取出了这些方程式,并希望保留它们的编号和格式,如下所示:
如何才能实现并cleveref
保持这一目标?
答案1
这是 中的一个错误,cleveref
它没有考虑到 的一些更改IEEEtrantools.sty
。特别是,条件\if@IEEEissubequation
不再包含在包中。 所做的修补程序cleveref
参考 的 1.2 版IEEEtrantools
,但您可能拥有 1.3 版(2012/12/27)。
您可以尝试添加一些代码来避免错误:
\usepackage[retainorgcmds]{IEEEtrantools}
\usepackage{cleveref}
\makeatletter
\let\if@IEEEissubequation\iffalse
\makeatother
然而,我不确定这不会产生奇怪的后果。
至于为两个方程式确定一个唯一的数字的中心,我相信 并未涵盖这一点IEEEeqnarray
,但aligned
可以amsmath
做到:
\begin{equation}
\begin{aligned}
a &= b \\
c & = d
\end{aligned}
\end{equation}
我认为你能加载amsmath
和IEEEtrantools
。
答案2
更改包的顺序:
\documentclass{report}
\usepackage{cleveref}
\usepackage[retainorgcmds]{IEEEtrantools}
\begin{document}
\begin{IEEEeqnarray}{rCl}
& \begin{array}{rcl}
a & = & 3\\
b & = & 4
\end{array}
\end{IEEEeqnarray}
\end{document}
amsmath
但是,使用包然后使用环境更有意义align
。
\documentclass{report}
\usepackage{cleveref}
\usepackage{amsmath}
\usepackage[retainorgcmds]{IEEEtrantools}
\begin{document}
\begin{align}
\begin{aligned}
a & = 3\\
b & = 4
\end{aligned}
\end{align}
\end{document}
答案3
与较新版本的兼容性IEEEtrantools
应该在我的网站提供的最新预发布版本 (0.21) 中得到修复:http://www.dr-qubit.org/latex.html