IEEEtrantools包是否不建议使用?求最佳替代方案
关于IEEEtrantools包的疑问与替代方案
我是IEEEtrantools包(提供IEEEeqnarray环境)的频繁使用者,最初用它是因为需要给多行方程添加单个居中的方程编号,后来又用到了IEEEeqnarray(box)选项的高灵活性。但之前看到过不建议使用该包的说法,却记不清来源和理由。
我有两个问题:
- 确实不建议使用
IEEEeqnarray吗?原因是什么? - 最灵活的替代方案是什么?
为展示我常用的方程类型,我编写了包含三个典型方程的代码:
\documentclass[a4paper,11pt]{report} \usepackage[retainorgcmds]{IEEEtrantools} \usepackage[most]{tcolorbox} \usepackage{amssymb} \begin{document} First example: \footnotesize \begin{equation} \begin{IEEEeqnarraybox}[][c]{rccl} e_a:\, &\mathcal C^\infty(\mathbb R^m)&\longrightarrow&\mathbb R\\ &f&\longmapsto &e_a(f)\equiv\left(\frac{\partial}{\partial x^a}\right)_p \end{IEEEeqnarraybox}\quad\text{and}\quad % \begin{IEEEeqnarraybox}[][c]{rcl} \tilde e_a:\, &\mathcal C^\infty(\mathbb R^n)&\longrightarrow\mathbb R\\ &g&\longmapsto \tilde e_a(g)\equiv\left(\frac{\partial}{\partial y^a}\right)_{\phi(p)} \end{IEEEeqnarraybox}. \end{equation} \normalsize Second example: \begin{equation}\begin{IEEEeqnarraybox}[][c]{rccccl} df_p:\, &T_pM&\xrightarrow{\,\sim\,} &T_{f(p)}\mathbb R &\\ &X &\longmapsto\, &df_p(X):\, &\,C^\infty(\mathbb R) &\xrightarrow{\,\sim\,}\mathbb R\\ & & & & g & \longmapsto df_p(X)(g):=X(g\circ f). \end{IEEEeqnarraybox}\end{equation} Third example: \begin{equation}\begin{IEEEeqnarraybox}[][c]{rl} \tcbox[nobeforeafter]{$ A_jf_i=\sum_{k=1}^\lambda \Gamma(A_j)_{ki}f_k,\qquad i=1,2,\cdots,\lambda;\;j=1,2,\cdots,n, $ }\end{IEEEeqnarraybox} \end{equation} % \end{document}
这些方程能否用其他包复现?我尝试过align和split,但无法完全替代IEEEeqnarray的功能。
问题解答
1. 是否不建议使用IEEEeqnarray?原因是什么?
是的,LaTeX社区目前普遍不推荐使用IEEEtrantools包中的IEEEeqnarray环境,核心原因如下:
- 间距不符合规范:它的列间距逻辑和LaTeX标准数学排版(以amsmath为基准)不一致,容易产生过宽或不协调的间距,和其他数学环境混用时排版一致性差。
- 兼容性问题:与amsmath、mathtools等主流数学包的兼容性不佳,可能和
split、align等常用环境冲突,引发排版错误或警告。 - 维护滞后:该包更新频率极低,相比活跃维护的amsmath系列,遇到问题难以及时修复,后续LaTeX版本更新也可能带来未知兼容风险。
- 功能冗余:amsmath+mathtools提供的
aligned、alignedat、gathered等环境,已经能覆盖IEEEeqnarray的所有核心功能,无需依赖这个小众包。
2. 最灵活的替代方案是什么?
最推荐的是amsmath + mathtools组合,这是LaTeX数学排版的标准工具链,功能强大且维护活跃,完全可以替代IEEEeqnarray的所有功能,甚至更优:
- 多行单编号需求:用
equation环境嵌套aligned、gathered或alignedat即可实现。 - 灵活多列对齐:
alignedat支持自定义列数和对齐方式,完全匹配IEEEeqnarray的列格式设置;mathtools还提供matrix*等扩展环境,进一步增强排版灵活性。
你的三个示例方程的复现代码
以下是用amsmath + mathtools复现你提供的三个示例的代码,排版效果完全一致:
\documentclass[a4paper,11pt]{report} usepackage{amsmath, mathtools} % 替代IEEEtrantools的核心包 usepackage[most]{tcolorbox} usepackage{amssymb} begin{document} First example: footnotesize begin{equation} begin{alignedat}{2} e_a:, &mathcal{C}^infty(mathbb{R}^m) &longrightarrow &mathbb{R} \\ &f &longmapsto &e_a(f)equivleft(frac{partial}{partial x^a}right)_p end{alignedat} quadtext{and}quad begin{alignedat}{1} tilde{e}_a:, &mathcal{C}^infty(mathbb{R}^n) longrightarrow mathbb{R} \\ &g longmapsto tilde{e}_a(g)equivleft(frac{partial}{partial y^a}right)_{phi(p)} end{alignedat}. end{equation} normalsize Second example: begin{equation} begin{alignedat}{3} df_p:, &T_pM &xrightarrow{,sim,} &T_{f(p)}mathbb{R} & \\ &X &longmapsto, &df_p(X):, &mathcal{C}^infty(mathbb{R}) &xrightarrow{,sim,}mathbb{R} \\ & & & & g &longmapsto df_p(X)(g):=X(gcirc f). end{alignedat} end{equation} Third example: begin{equation} tcbox[nobeforeafter]{$ A_jf_i=sum_{k=1}^lambda Gamma(A_j)_{ki}f_k,qquad i=1,2,cdots,lambda;;j=1,2,cdots,n, $ } end{equation} end{document}
复现说明:
- 第一个示例用两个
alignedat环境分别创建对齐块,实现原代码中两个IEEEeqnarraybox的并列效果,对齐逻辑完全一致。 - 第二个示例通过
alignedat{3}定义三对对齐列,完美复现原多列嵌套的映射关系排版。 - 第三个示例无需嵌套额外数学环境,直接在
equation中放置tcolorbox即可,代码比原版本更简洁。
内容的提问来源于stack exchange,提问作者Jacques Smeets
相关产品推荐
相关产品推荐

