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}

但內建選項(12pt以及fleqn這裡)仍然作為選項。人們經常犯這個錯誤,因此fleqn.sty添加了這個語法,這樣任何一種語法都可以工作,但會發出警告。

相關內容