fleqn.clo 与 fleqn.sty

fleqn.clo 与 fleqn.sty

请看一下这个MWE:

\documentclass{JHEP}

\usepackage{fleqn}

 \author{me} 
 \abstract{a}
 \title{t}

\begin{document}
\begin{equation}
a = b+1
\end{equation}
\end{document}

不管它如何工作,我收到了警告

输入fleqn.clo而不是过时fleqn.sty

.clo 和 .sty 有什么区别?如果我将其用作fleqn文档类选项而不是包,它会被忽略。为什么?

我的最后一个问题,我也收到了警告

您请求了文档类 JHEP,但是文档类提供的是 JHEP3。

使用此类。为什么呢?

JHEP这里

答案1

以下内容(除了不相关的初始横幅外)fleqn.sty

\@obsoletefile{fleqn.clo}{fleqn.sty}
\input{fleqn.clo}
\endinput

提供此功能是因为有些人可能仍有带有\documentstyle初始行的 LaTeX 2.09 文档,其中包作为此命令的选项给出,并且需要扩展.sty

如果您正在使用专门用于向期刊提交文章的类,请不要加载此文件JHEP。该类可能支持该fleqn选项,也可能不支持,如果您使用此选项,期刊管理员会不高兴。

实际上,该类支持该选项,因为它具有

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

其次是

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

它只会告诉您该选项被忽略。fleqn.clo无论如何加载都可能会导致一些不好的结果。

最后,您收到的警告是因为该类已命名JHEP.cls,但它有

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

所以这是他们的错。

答案2

除了警告之外,没有区别。在 LaTeX2e 之前(即 1993 年之前),latex 2.09 语法是

\documentclass[fleqn,longtable,12pt]{article}

没有单独的\documentclass\usepackage

因此,当从 LaTeX2.09 转换为 LaTeX2e 时,大多数旧的“选项”都变成了需要加载的包

\usepackage{longtable}

但内置选项(12ptfleqn此处)仍作为选项保留。人们经常会犯错,因此fleqn.sty添加了此选项,这样两种语法都可以使用,但会显示警告。

相关内容