Fancypagestyle в \DeclareOption

Fancypagestyle в \DeclareOption

В моем классе я хочу сначала определить макет страницы во время \DeclareOption, а затем изменить его во время \newenvironmentобъявления. Для этого я хотел использовать пакет fancyhdr. Теперь моя проблема в том, что a) я должен загрузить пакеты после \ProcessOptionsи b) я не знаю, как я могу изменить или расширить свойства страницы на лету в \newenvironmentсреде. Что я в основном хочу (псевдокод):

\DeclareOption{test}{%
    \fancypagestyle{aSix}{%
    }
} 
\ProcessOptions
\newenvironment{test2}{%
\fancypagestyle{aSix2}{
%Takes the pagestyle aSix and update it with additional values}

Как я могу это сделать?

решение1

Я предлагаю использовать другой подход conditional, скажем, с помощью \ifaSixи установкой этого параметра в значение truewith \aSixtrue, если используется опция class.

Элементарный класс

\ProvidesClass{ishouldgivemoreinformation}

\newif\ifaSix
\DeclareOption{aSix}{\global\aSixtrue}


\ProcessOptions

\LoadClass{article}

\RequirePackage{fancyhdr}

\fancypagestyle{aSix}{%
  \fancyhead[C]{Foo}
  \renewcommand{\headrulewidth}{5pt}
}

\ifaSix
\fancypagestyle{aSix2}{%
  \pagestyle{aSix}%
  \fancyfoot[c]{Foobar}%
  % Some updates here
}
\else
\fancypagestyle{aSix2}{%
  \pagestyle{aSix}%
}
\fi

\endinput

driver.tex

\documentclass[aSix]{ishouldgivemoreinformation}


\pagestyle{aSix2}
\begin{document}
FOO
\end{document}

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