%% %% This is file `nccfancyhdr.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% nccfancyhdr.dtx (with options: `package') %% %% IMPORTANT NOTICE: %% %% This file is a generated file from the sources of the `ncctools' %% bundle. %% %% You are not allowed to modify this file. %% %% You are allowed to distribute this file if and only if %% it is distributed with the corresponding source files in %% the `ncctools' bundle. %% %% For the copying and distribution conditions of the source files, %% see the README file distributed with the ncctools bundle. %% %% File: nccfancyhdr.dtx Copyright (C) 2002--2004 by Alexander I. Rozhenko %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{nccfancyhdr} [2004/12/07 v1.1 Improved Fancy Header Package (NCC)] \newcommand*{\newpagestyle}[1]{% \@ifnextchar[{\NCC@newpagestyle{#1}}{\NCC@newpagestyle{#1}[fancy]}% } \long\def\NCC@newpagestyle#1[#2]#3{% \@ifundefined{ps@#2}{% \PackageError{nccfancyhdr} {\string\newpagestyle: Unknown base page style `#2'}{}% }{}% \edef\@tempa{\noexpand\newcommand \expandafter\noexpand \csname ps@#1\endcsname}% \expandafter\@tempa\expandafter{\csname ps@#2\endcsname #3}% } \@onlypreamble\newpagestyle \@onlypreamble\NCC@newpagestyle \newcommand*{\fancyhf}[1][lh,ch,rh,lf,cf,rf]{\NCC@fancyhf{}{#1}} \newcommand*{\fancyhead}[1][l,c,r]{\NCC@fancyhf h{#1}} \newcommand*{\fancyfoot}[1][l,c,r]{\NCC@fancyhf f{#1}} \newcommand{\lhead}{\@dblarg{\NCC@fancy{lh}}} \newcommand{\chead}{\@dblarg{\NCC@fancy{ch}}} \newcommand{\rhead}{\@dblarg{\NCC@fancy{rh}}} \newcommand{\lfoot}{\@dblarg{\NCC@fancy{lf}}} \newcommand{\cfoot}{\@dblarg{\NCC@fancy{cf}}} \newcommand{\rfoot}{\@dblarg{\NCC@fancy{rf}}} \def\NCC@fancy#1[#2]#3{ \expandafter\def\csname NCC@f@e#1\endcsname{#2}% \expandafter\def\csname NCC@f@o#1\endcsname{#3}% } \def\NCC@fancyhf#1#2#3{% \@for\@tempa:=#2\do {\edef\@tempa{\noexpand\NCC@fancydef{#1\@tempa}}\@tempa{#3}}% } \def\NCC@fancydef#1#2{% \let\NCC@hf\relax \let\NCC@lcr\relax \let\NCC@oe\relax \@tfor \@nextchar:=#1\do {\edef\@tempa{\noexpand\uppercase{\noexpand\def% \noexpand\@tempa{\@nextchar}}}\@tempa \if\@tempa H\NCC@fancyclass\NCC@hf{h}{#1}\else \if\@tempa F\NCC@fancyclass\NCC@hf{f}{#1}\else \if\@tempa L\NCC@fancyclass\NCC@lcr{l}{#1}\else \if\@tempa C\NCC@fancyclass\NCC@lcr{c}{#1}\else \if\@tempa R\NCC@fancyclass\NCC@lcr{r}{#1}\else \if\@tempa O\NCC@fancyclass\NCC@oe{o}{#1}\else \if\@tempa E\NCC@fancyclass\NCC@oe{e}{#1}\else \NCC@fancyerror{Illegal char `\@nextchar' in argument `#1'}% \fi \fi \fi \fi \fi \fi \fi }% \ifx\NCC@hf\relax \NCC@fancyerror{No `h' or `f' specified}\else \ifx\NCC@lcr\relax \NCC@fancyerror{No `l' or `c' or `r' specified}\else \ifx\NCC@oe\relax \expandafter\def\csname NCC@f@o\NCC@lcr\NCC@hf\endcsname{#2}% \expandafter\def\csname NCC@f@e\NCC@lcr\NCC@hf\endcsname{#2}% \else \expandafter\def\csname NCC@f@\NCC@oe\NCC@lcr\NCC@hf\endcsname{#2}% \fi \fi \fi } \def\NCC@fancyclass#1#2#3{% \ifx#1\relax \def#1{#2}% \else \NCC@fancyerror{Misusing the char `\@nextchar' in argument `#3'}% \fi } \def\NCC@fancyerror#1{% \PackageError{nccfancyhdr}% {Fancy mark definitions:\MessageBreak#1}% } \newdimen\headwidth \newcommand{\extendedheaders}{ \@tempdima\marginparwidth \advance\@tempdima\marginparsep \@tempdimb\textwidth \advance\@tempdimb\@tempdima \if@twocolumn \advance\@tempdimb\@tempdima \fi \global\headwidth\@tempdimb } \newcommand{\normalheaders}{\global\headwidth\textwidth} \newcommand{\headrulewidth}{.4\p@} \newcommand{\footrulewidth}{\z@} \newcommand{\headstrutheight}{.3\normalbaselineskip} \newcommand{\footstrutheight}{.3\normalbaselineskip} \newcommand{\headrule}{% \setlength\@tempdima{\headrulewidth}% \hrule\@height\@tempdima\@width\headwidth \vskip-\@tempdima } \newcommand{\footrule}{% \setlength\@tempdima{\footrulewidth}% Can use calc here \vskip -\@tempdima \hrule \@height\@tempdima \@width\headwidth } \def\NCC@fancyreset{\let\baselinestretch\@empty \long\def\nouppercase##1{% \begingroup \long\def\uppercase####1{####1}% \long\def\MakeUppercase####1{####1}% ##1% \endgroup }% \reset@font } \def\NCC@fancyhead#1#2#3{% \hb@xt@\headwidth{\NCC@fancyreset \setbox\@tempboxa\vtop{% \hbox{% \rlap{\parbox[b]\headwidth{\raggedright#1}}% \setlength\@tempdima{\headstrutheight}% \vrule\@width\z@\@height\z@\@depth\@tempdima \parbox[b]\headwidth{\centering#2}% \llap{\parbox[b]\headwidth{\raggedleft#3}}% }% \headrule }% \NCC@fancytest\headheight \box\@tempboxa }% } \def\NCC@fancyfoot#1#2#3{% \hb@xt@\headwidth{\NCC@fancyreset \setbox\@tempboxa\vbox{% \footrule \hbox{% \rlap{\parbox[t]\headwidth{\raggedright#1}}% \@tempdima .55\normalbaselineskip \addtolength\@tempdima{\footstrutheight}% \vrule\@width\z@\@height\@tempdima\@depth\z@ \parbox[t]\headwidth{\centering#2}% \llap{\parbox[t]\headwidth{\raggedleft#3}}% }% }% \NCC@fancytest\footskip \box\@tempboxa }% } \def\NCC@fancytest#1{% \ifdim\ht\@tempboxa>#1% \PackageWarning{nccfancyhdr}% {\string#1 is too small (\the#1):\MessageBreak Make it at least \the\ht\@tempboxa.\MessageBreak We now enlarge it for the rest of the document.\MessageBreak This may cause the page layout to be inconsistent, however}% \@tempdima#1\global\setlength{#1}{\ht\@tempboxa}% \ht\@tempboxa\@tempdima \fi } \def\NCC@ihss{\if@twocolumn\hss\else\if@reversemargin\hss\fi\fi} \def\NCC@ohss{\if@twocolumn\hss\else\if@reversemargin\else\hss\fi\fi} \newcommand*{\fancycenter}[1][1em]{% \@ifnextchar[{\NCC@fancycenter{#1}}{\NCC@fancycenter{#1}[3]}% } \def\NCC@fancycenter#1[#2]#3#4#5{% \def\@tempa{#4}\ifx\@tempa\@empty \hb@xt@\linewidth{\color@begingroup{#3}\hfil {#5}\color@endgroup}% \else \setlength\@tempdima{#1}% \setlength{\@tempdimb}{#2\@tempdima}% \@tempdimc \@tempdimb \advance\@tempdimc -\@tempdima \setlength\@tempskipa{\@tempdimb \@plus 1fil \@minus \@tempdimc}% \@tempskipb\@tempskipa \def\@tempa{#3}\ifx\@tempa\@empty \addtolength\@tempskipa{\z@ \@minus \@tempdima}% \fi \def\@tempa{#5}\ifx\@tempa\@empty % empty right \addtolength\@tempskipb{\z@ \@minus \@tempdima}% \fi \settowidth{\@tempdimb}{#3}% \settowidth{\@tempdimc}{#5}% \ifdim\@tempdimb>\@tempdimc \advance\@tempdimb -\@tempdimc \addtolength\@tempskipb{\@tempdimb \@minus \@tempdimb}% \else \advance\@tempdimc -\@tempdimb \addtolength\@tempskipa{\@tempdimc \@minus \@tempdimc}% \fi \hb@xt@\linewidth{\color@begingroup{#3}\hskip \@tempskipa {#4}\hskip \@tempskipb {#5}\color@endgroup}% \fi } \def\ps@fancy{\ps@empty \def\@oddhead{% \NCC@ihss \NCC@fancyhead\NCC@f@olh\NCC@f@och\NCC@f@orh \NCC@ohss}% \def\@evenhead{% \NCC@ohss \NCC@fancyhead\NCC@f@elh\NCC@f@ech\NCC@f@erh \NCC@ihss}% \def\@oddfoot{% \NCC@ihss \NCC@fancyfoot\NCC@f@olf\NCC@f@ocf\NCC@f@orf \NCC@ohss}% \def\@evenfoot{% \NCC@ohss \NCC@fancyfoot\NCC@f@elf\NCC@f@ecf\NCC@f@erf \NCC@ihss}% \fancyhf{}% } \DeclareOption{empty}{% \let\NCC@psempty\ps@empty \def\ps@empty{\NCC@psempty \def\@oddhead{% \NCC@ihss \NCC@fancyhead\NCC@f@olh\NCC@f@och\NCC@f@orh \NCC@ohss}% \def\@evenhead{% \NCC@ohss \NCC@fancyhead\NCC@f@elh\NCC@f@ech\NCC@f@erh \NCC@ihss}% \def\@oddfoot{% \NCC@ihss \NCC@fancyfoot\NCC@f@olf\NCC@f@ocf\NCC@f@orf \NCC@ohss}% \def\@evenfoot{% \NCC@ohss \NCC@fancyfoot\NCC@f@elf\NCC@f@ecf\NCC@f@erf \NCC@ihss}% \fancyhf{}% }% \pagestyle{empty}% } \DeclareOption{plain}{% \def\ps@plain{\ps@fancy \let\@mkboth\@gobbletwo \fancyfoot[c]{\thepage}% }% \pagestyle{plain}% } \DeclareOption{myheadings}{% \@ifundefined{chapter}{% \def\ps@myheadings{\ps@fancy \let\@mkboth\@gobbletwo \fancyhead[ce]{\fancycenter{\thepage}{}{\slshape\leftmark}}% \fancyhead[co]{\fancycenter{\slshape\rightmark}{}{\thepage}}% \let\sectionmark\@gobble \let\subsectionmark\@gobble }% }{\def\ps@myheadings{\ps@fancy \let\@mkboth\@gobbletwo \fancyhead[ce]{\fancycenter{\thepage}{}{\slshape\leftmark}}% \fancyhead[co]{\fancycenter{\slshape\rightmark}{}{\thepage}}% \let\chaptermark\@gobble \let\sectionmark\@gobble }% }% \pagestyle{myheadings}% } \DeclareOption{headings}{% \@ifundefined{chapter}{% \if@twoside \def\ps@headings{\ps@fancy \let\@mkboth\markboth \fancyhead[ce]{\fancycenter{\thepage}{}{\slshape\leftmark}}% \fancyhead[co]{\fancycenter{\slshape\rightmark}{}{\thepage}}% \def\sectionmark##1{% \markboth{\MakeUppercase{% \ifnum \c@secnumdepth >\z@ \thesection\quad \fi##1}}{}}% \def\subsectionmark##1{% \markright{% \ifnum \c@secnumdepth >\@ne \thesubsection\quad \fi##1}}% }% \else \def\ps@headings{\ps@fancy \let\@mkboth\markboth \fancyhead[ce]{\fancycenter{\thepage}{}{\slshape\leftmark}}% \fancyhead[co]{\fancycenter{\slshape\rightmark}{}{\thepage}}% \def\sectionmark##1{% \markright {\MakeUppercase{% \ifnum \c@secnumdepth >\z@ \thesection\quad \fi##1}}}% \let\subsectionmark\@gobble % Not needed but inserted for safety }% \fi }{\if@twoside \def\ps@headings{\ps@fancy \let\@mkboth\markboth \fancyhead[ce]{\fancycenter{\thepage}{}{\slshape\leftmark}}% \fancyhead[co]{\fancycenter{\slshape\rightmark}{}{\thepage}}% \def\chaptermark##1{% \markboth{\MakeUppercase{% \ifnum \c@secnumdepth >\m@ne \if@mainmatter \@chapapp\ \thechapter. \ \fi\fi##1}}{}}% \def\sectionmark##1{% \markright {\MakeUppercase{% \ifnum \c@secnumdepth >\z@ \thesection. \ \fi##1}}}% }% \else \def\ps@headings{\ps@fancy \let\@mkboth\markboth \fancyhead[ce]{\fancycenter{\thepage}{}{\slshape\leftmark}}% \fancyhead[co]{\fancycenter{\slshape\rightmark}{}{\thepage}}% \def\chaptermark##1{% \markright{\MakeUppercase{% \ifnum \c@secnumdepth >\m@ne \if@mainmatter \@chapapp\ \thechapter. \ \fi\fi##1}}}% \let\sectionmark\@gobble % Not needed but inserted for safety }% \fi }% \pagestyle{headings}% } \DeclareOption{testfloats}{% \let\NCC@fancymakecol\@makecol \let\NCC@fancytoplist\@empty \let\NCC@fancybotlist\@empty \def\@makecol{% \let\NCC@fancytoplist\@toplist \let\NCC@fancybotlist\@botlist \NCC@fancymakecol }% \newcommand\iftopfloat{% \ifx\NCC@fancytoplist\@empty \expandafter\@secondoftwo \else \expandafter\@firstoftwo \fi }% \newcommand\ifbotfloat{% \ifx\NCC@fancybotlist\@empty \expandafter\@secondoftwo \else \expandafter\@firstoftwo \fi }% \newcommand\iffloatpage{% \if@fcolmade \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi }% } \ProcessOptions* \normalheaders \fancyhf{} \endinput %% %% End of file `nccfancyhdr.sty'.