Spec-Zone.ru › LaTeX

Структура класса и пакета

Файл класса или пакета обычно состоит из четырёх частей.

  1. В идентификационной части файл заявляет, что это пакет или класс LaTeX, и описывает себя, используя команды \NeedsTeXFormat и \ProvidesClass или \ProvidesPackage.
  2. В предварительной части объявлений объявляются некоторые команды и могут загружаться другие файлы. Обычно эти команды необходимы для кода, используемого в следующей части. Например, класс smcmemo может вызываться с опцией чтения файла со списком людей для заголовка, как \documentclass[mathto]{smcmemo}, и поэтому ему нужна команда \newcommand{\setto}[1]{\def\@tolist{#1}}, используемая в этом файле.
  3. В части обработки опций класс или пакет объявляет и обрабатывает свои опции. Опции класса позволяют пользователю начинать свой документ как \documentclass[option list]{class name}, чтобы изменить поведение класса. Например, когда вы объявляете \documentclass[11pt]{article} для установки размера шрифта документа по умолчанию.
  4. Наконец, в части дополнительных объявлений класс или пакет обычно выполняет большую часть своей работы: объявляет новые переменные, команды и шрифты, загружает другие файлы.

Вот пример файла класса, который следует сохранить как stub.cls, где LaTeX может его найти, например, в той же директории, что и файл .tex.

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{stub}[2017/07/06 stub to start building classes from]
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions\relax
\LoadClass{article}

Он идентифицирует себя, обрабатывает опции класса, передавая их по умолчанию классу article, а затем загружает класс article, чтобы обеспечить основу для кода этого класса.

Для более подробной информации обратитесь к официальному руководству для авторов классов и пакетов, руководству по классам, по адресу https://www.latex-project.org/help/documentation/clsguide.pdf (многие описания здесь взяты из этого документа), или к учебному пособию https://www.tug.org/TUGboat/tb26-3/tb84heff.pdf.

© 2007–2018 Karl Berry
Public Domain Software
http://latexref.xyz/Class-and-package-structure.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API