I would like to use align environment over eqnarray for typesetting my equations. However the publisher forces to use the iopart.cls as the article class file which, as they mentioned, is incompatible with amsmath.sty.

How can I somehow import align definition (or even other definitions too) from amsmath.sty while sticking to the document class of iopart.cls ?

  • I found an iopart.cls here and read through the manual and the .cls file. It seems that the class file has its own definition of eqnarray. For additional fonts, the manual says you have to write \usepackage{iopams} which will include the style files: amsgen, amsfonts, amssymb, and amsbsy, all version 1995/01/01. Well, you can try \RequirePackage{amsmath} before \documentclass but it will not give you the same indentation when using iopart's eqnarray. I think there is a workaround but it's beyond my skills. :-) – hpesoj626 Jan 29 '13 at 7:41
  • 4
    The iopart class corrects the worst error in eqnarray. I'm afraid that amsmath is "take or leave": extracting one of the environments requires getting also a great part of the auxiliary macros. For instance, amsmath redefines the equation numbering system. – egreg Jan 29 '13 at 7:51
  • @ hpesoj626: Yes in fact, in their manual they explicitly said to avoid amsmath, and suggested using eqnarray. @ egreg: I didn't know the eqnarray of iopart is the corrected version. If this is the case, it might be unnecessary for me to switch to align! – M.Reza Jan 29 '13 at 13:02

It's very unfortunate that the iopart class doesn't want amsmath, which is a robust package, very useful for mathematical writing.

Having eqnarray only for formatting multiline displays is a big hindrance, but there seems to be nothing else to do. However, the iopart version of eqnarray at least corrects the worst error in the spacing of the relation symbol used for the alignment.


Put following two lines just before \usepackage{amsmath}

\expandafter\let\csname equation*\endcsname\relax

\expandafter\let\csname endequation*\endcsname\relax

Now even though you have iopart.cls as class file chosen, you would still be able to use amsmath package without any error. It will go like..



\expandafter\let\csname equation*\endcsname\relax

\expandafter\let\csname endequation*\endcsname\relax

  • Welcome to TeX.SX! We usually prefer full answers, i.e. full examples which can be compiled, in conjunction with a screenshot. Please elaborate a little bit on your answer – user31729 Apr 11 '15 at 20:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.