fleqn.clo vs. fleqn.sty

fleqn.clo vs. fleqn.sty

Bitte schauen Sie sich dieses MWE an:

\documentclass{JHEP}

\usepackage{fleqn}

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

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

wie auch immer es funktioniert, ich habe eine Warnung bekommen

Eingabe fleqn.clostatt veraltetfleqn.sty

Was ist der Unterschied zwischen .clo und .sty? Wenn ich es fleqnals Dokumentklassenoption anstelle des Pakets verwende, wird es ignoriert. Warum?

Meine letzte Frage, ich habe auch eine Warnung bekommen

Sie haben die Dokumentklasse JHEP angefordert, aber die Dokumentklasse bietet JHEP3.

diese Klasse verwenden. Warum ist das so?

JHEPHier

Antwort1

Dies ist (abgesehen von einem anfänglichen Banner, das irrelevant ist) der Inhalt von fleqn.sty:

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

Dies ist vorgesehen, weil manche Leute möglicherweise noch LaTeX 2.09-Dokumente mit einer \documentstyleAnfangszeile haben, in der Pakete als Option zu diesem Befehl angegeben wurden und hierfür die .styErweiterung benötigten.

Laden Sie diese Datei nicht, wenn Sie eine spezielle Klasse verwenden, JHEPdie beispielsweise für die Einreichung bei einer Zeitschrift gedacht ist. Entweder unterstützt die Klasse diese fleqnOption oder nicht. In diesem Fall werden die Zeitschriftenmanager nicht erfreut sein, wenn Sie sie verwenden.

Tatsächlich unterstützt die Klasse diese Option, da sie

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

gefolgt von

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

Das bedeutet lediglich, dass die Option ignoriert wird. fleqn.cloTrotzdem zu laden würde wahrscheinlich zu etwas Schlimmen führen.

Schließlich ist die Warnung, die Sie erhalten, weil die Klasse benannt ist JHEP.cls, aber es hat

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

Es ist also ihre Schuld.

Antwort2

Abgesehen von der Warnung gibt es keinen Unterschied. Vor LaTeX2e (also vor 1993) war die Syntax von Latex 2.09

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

es gab kein getrenntes „ \documentclassoder“ \usepackage.

Bei der Konvertierung von LaTeX2.09 nach LaTeX2e wurden die meisten alten "Optionen" zu Paketen, die geladen werden sollten als

\usepackage{longtable}

Aber die integrierten Optionen ( 12ptund fleqnhier) blieben Optionen. Das wurde oft falsch gemacht, also fleqn.stywurde es hinzugefügt, damit beide Syntaxen funktionierten, aber mit einer Warnung.

verwandte Informationen