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

Это предусмотрено, поскольку у некоторых людей все еще могут быть документы LaTeX 2.09 с \documentstyleначальной строкой, где пакеты были указаны в качестве опции для этой команды и для этого требовалось расширение .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 было добавлено, чтобы любой синтаксис работал, но с предупреждением.

Связанный контент