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