
請看一下這個 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
添加了這個語法,這樣任何一種語法都可以工作,但會發出警告。