В моем классе я хочу сначала определить макет страницы во время \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
и установкой этого параметра в значение true
with \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}