请看一下这个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。
使用此类。为什么呢?
答案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}
但内置选项(12pt
和fleqn
此处)仍作为选项保留。人们经常会犯错,因此fleqn.sty
添加了此选项,这样两种语法都可以使用,但会显示警告。