TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Please have a look at this MWE:




a = b+1

however it works, i got warning

inputting fleqn.clo instead of obsolete fleqn.sty

What is the difference between .clo and .sty? If i use fleqn as a document class option instead of the package, it gets ignored. Why?

My last question, i also got warning

You have requested document class JHEP, but the document class provides JHEP3.

using this class. Why is that?

JHEP here

share|improve this question
The average age of people answering this question is depressingly high:-) – David Carlisle May 10 '14 at 21:10
up vote 10 down vote accepted

This is (apart from an initial banner which is irrelevant) the contents of fleqn.sty:


This is provided because some people might still have LaTeX 2.09 documents with a \documentstyle initial line, where packages were given as option to this command and needed, for this, the .sty extension.

Don't load this file if you're using a specialized class such as JHEP that is meant for submissions to a journal. Either the class provides support for the fleqn option or not, in which case the journal managers won't be happy if you use it.

Actually, the class supports the option, because it has

\DeclareOption{fleqn}{\@OImess{}}   %\input{fleqn.clo}} IGNORED ...

followed by

\newcommand\@OImess[1]{\JHEP@ignol{OPTION '\CurrentOption'#1}}

which simply will tell you that the option is ignored. Loading fleqn.clo anyway would probably result in something bad.

Finally the warning you get is because the class is named JHEP.cls, but it has

\ProvidesClass{JHEP3} [2003/01/03 v3.1.2 LaTeX document class - F.N.]

Thus it's their fault.

share|improve this answer

There is no difference apart from the warning. Prior to LaTeX2e (that is, before 1993) the latex 2.09 syntax was


there was no separate \documentclass or \usepackage.

So when converting from LaTeX2.09 to LaTeX2e, most old "options" became packages to be loaded as


But the build-in options (12pt and fleqn here) stayed as options. People often got that wrong so fleqn.sty was added so that either syntax worked but with a warning.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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