在我的課堂上,我想先在聲明期間定義頁面佈局\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
,例如,如果使用了 class 選項,請將\ifaSix
其設為true
with 。\aSixtrue
初級班
\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}