1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233
|
% fancyheadings.sty version 1.0
% Fancy headers and footers.
% Piet van Oostrum, Dept of Computer Science, University of Utrecht
% Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands
% Telephone: +31-30-531806. piet@cs.ruu.nl (mcvax!hp4nl!ruuinf!piet)
% March, 1989.
% Here is a documentstylestyle option that allows you to customize your
% page headers and footers in an easy way. It combines features that were
% separately available in other pagestyles, without introducing much
% complexity. You can define:
% - three-part headers and footers
% - rules in header and footer
% - headers and footers wider than \textwidth
% - multiline headers and footers
% - separate headers and footers for even and odd pages
% - separate headers and footers for chapter pages
%
% To use this pagestyle, you must include the ``fancyheadings'' style
% option in your \documentstyle, and issue the \pagestyle{fancy} command.
% The \pagestyle{fancy} command should be issued after any changes made to
% \textwidth.
%
% The page layout will be as follows:
%
% LHEAD CHEAD RHEAD
% ----------------------------------- (rule)
%
% page body
%
%
% ----------------------------------- (rule)
% LFOOT CFOOT RFOOT
%
% The L-fields will be leftadjusted, the C-fields centered and the
% R-fields rightadjusted.
% Each of the six fields and the two rules can be defined separately.
%
% Simple use:
%
% The header and footer fields can be defined by commands \lhead{LHEAD}
% and so on for the other fields. If the field depends on something in the
% document (e.g. section titles) you must in general use the \markboth and
% \markright commands, otherwise a title may end on the wrong page. You
% can do this e.g. by redefining the commands \chaptermark, \sectionmark
% and so on (see example below). The defaults for these marks are as in
% the standard pagestyles. The marks can be put into a header or footer
% field by referencing \leftmark and \rightmark.
%
% Rules in header and footer
%
% The thickness of the rules below the header and above the footer can be
% changed by redefining the length parameters \headrulewidth (default
% 0.4pt) and \footrulewidth (default 0). These may be redefined by the
% \setlength command. A thickness of 0pt makes the rule invisible.
% If you want to make more complicated changes, you have to redefine the
% commands \headrule and/or \footrule.
%
% Headers and footers wider than \textwidth
%
% The headers and footers are set in a box of width \headwidth. The
% default for this is the value of \textwidth. You can make it wider (or
% smaller) by redefining \headwidth with the \setlength or \addtolength
% command. The headers and footers will stick out the page on the same
% side as the marginal notes. For example to include the marginal notes,
% add both \marginparsep and \marginparwidth to \headwidth (see also the
% example below).
%
% Multiline headers and footers
%
% Each of the six fields is set in an appropriate parbox, so you can put a
% multiline part in it with the \\ command. It is also possible to put
% extra space in it with the \vspace command. Note that if you do this you
% will probably have to increase the \headheight or \footskip lengths.
%
% Separate headers and footers for even and odd pages
%
% If you want the headers and footers to be different on even- and
% odd-numbered pages in the ``twoside'' style, the field-defining macros
% can be given an optional argument, to be used on the even-numbered
% pages, like \lhead[EVEN-LHEAD]{ODD-RHEAD}.
%
% Separate headers and footers for chapter pages
%
% LaTeX gives a \thispagestyle{plain} command for the first page of the
% document, the first page of each chapter and a couple of other pages. It
% might be incompatible with your pagestyle. In this case you can use a
% slightly different version of the pagestyle, called \pagestyle{fancyplain}.
% This pagestyle redefines the pagestyle ``plain'' to also use pagestyle
% ``fancy'' with the following modifications:
% - the thicknesses of the rules is defined by \plainheadrulewidth and
% \plainfootrulewidth (both default 0).
% - the 6 fields may be defined separately for the plain pages by
% giving them the value \fancyplain{PLAIN-VALUE}{NORMAL-VALUE}. This
% construct may be used in both the optional argument and the normal
% argument. Thus \lhead[\fancyplain{F1}{F2}]{\fancyplain{F3}{F4}}
% specifies the LHEAD value in a two-sided document:
% F1 on an even-numbered ``plain'' page
% F2 on an even-numbered normal page
% F3 on an odd-numbered ``plain'' page
% F4 on an odd-numbered normal page.
%
% Defaults:
%
% \headrulewidth 0.4pt
% \footrulewidth 0pt
% \plainheadrulewidth 0pt
% \plainfootrulewidth 0pt
%
% \lhead[\fancyplain{}{\sl\rightmark}]{\fancyplain{}{\sl\leftmark}}
% % i.e. empty on ``plain'' pages \rightmark on even, \leftmark on odd pages
% \chead{}
% \rhead[\fancyplain{}{\sl\leftmark}]{\fancyplain{}{\sl\rightmark}}
% % i.e. empty on ``plain'' pages \leftmark on even, \rightmark on odd pages
% \lfoot{}
% \cfoot{\rm\thepage} % page number
% \rfoot{}
%
% Examples:
%
% To put two lines containing the section title and the subsection title
% in the righthandside corner, use:
%
% \documentstyle[fancyheadings]{article}
% \pagestyle{fancy}
% \renewcommand{\sectionmark}[1]{\markboth{#1}{}}
% \renewcommand{\subsectionmark}[1]{\markright{#1}}
% \rfoot{\leftmark\\\rightmark}
%
% The following definitions give an approximation of the style used in the
% LaTeX book:
%
% \documentstyle[fancyheadings]{book}
% \pagestyle{fancyplain}
% \addtolength{\headwidth}{\marginparsep}
% \addtolength{\headwidth}{\marginparwidth}
% \renewcommand{\chaptermark}[1]{\markboth{#1}{#1}} % remember chapter title
% \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
% % section number and title
% \lhead[\fancyplain{}{\bf\thepage}]{\fancyplain{}{\bf\rightmark}}
% \rhead[\fancyplain{}{\bf\leftmark}]{\fancyplain{}{\bf\thepage}}
% \cfoot{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\lhead{\@ifnextchar[{\@xlhead}{\@ylhead}}
\def\@xlhead[#1]#2{\gdef\@elhead{#1}\gdef\@olhead{#2}}
\def\@ylhead#1{\gdef\@elhead{#1}\gdef\@olhead{#1}}
\def\chead{\@ifnextchar[{\@xchead}{\@ychead}}
\def\@xchead[#1]#2{\gdef\@echead{#1}\gdef\@ochead{#2}}
\def\@ychead#1{\gdef\@echead{#1}\gdef\@ochead{#1}}
\def\rhead{\@ifnextchar[{\@xrhead}{\@yrhead}}
\def\@xrhead[#1]#2{\gdef\@erhead{#1}\gdef\@orhead{#2}}
\def\@yrhead#1{\gdef\@erhead{#1}\gdef\@orhead{#1}}
\def\lfoot{\@ifnextchar[{\@xlfoot}{\@ylfoot}}
\def\@xlfoot[#1]#2{\gdef\@elfoot{#1}\gdef\@olfoot{#2}}
\def\@ylfoot#1{\gdef\@elfoot{#1}\gdef\@olfoot{#1}}
\def\cfoot{\@ifnextchar[{\@xcfoot}{\@ycfoot}}
\def\@xcfoot[#1]#2{\gdef\@ecfoot{#1}\gdef\@ocfoot{#2}}
\def\@ycfoot#1{\gdef\@ecfoot{#1}\gdef\@ocfoot{#1}}
\def\rfoot{\@ifnextchar[{\@xrfoot}{\@yrfoot}}
\def\@xrfoot[#1]#2{\gdef\@erfoot{#1}\gdef\@orfoot{#2}}
\def\@yrfoot#1{\gdef\@erfoot{#1}\gdef\@orfoot{#1}}
\newdimen\headrulewidth
\newdimen\footrulewidth
\newdimen\plainheadrulewidth
\newdimen\plainfootrulewidth
\newdimen\headwidth
\newif\if@fancyplain \@fancyplainfalse
\def\fancyplain#1#2{\if@fancyplain#1\else#2\fi}
% Initialization of the head and foot text.
\headrulewidth 0.4pt
\footrulewidth\z@
\plainheadrulewidth\z@
\plainfootrulewidth\z@
\lhead[\fancyplain{}{\sl\rightmark}]{\fancyplain{}{\sl\leftmark}}
% i.e. empty on ``plain'' pages \rightmark on even, \leftmark on odd pages
\chead{}
\rhead[\fancyplain{}{\sl\leftmark}]{\fancyplain{}{\sl\rightmark}}
% i.e. empty on ``plain'' pages \leftmark on even, \rightmark on odd pages
\lfoot{}
\cfoot{\rm\thepage} % page number
\rfoot{}
% Put together a header or footer given the left, center and
% right text, fillers at left and right and a rule.
% The \lap commands put the text into an hbox of zero size,
% so overlapping text does not generate an errormessage.
\def\@fancyhead#1#2#3#4#5{#1\hbox to\headwidth{\vbox{\hbox
{\rlap{\parbox[b]{\headwidth}{\raggedright#2\strut}}\hfill
\parbox[b]{\headwidth}{\centering#3\strut}\hfill
\llap{\parbox[b]{\headwidth}{\raggedleft#4\strut}}}\headrule}}#5}
\def\@fancyfoot#1#2#3#4#5{#1\hbox to\headwidth{\vbox{\footrule
\hbox{\rlap{\parbox[t]{\headwidth}{\raggedright#2\strut}}\hfill
\parbox[t]{\headwidth}{\centering#3\strut}\hfill
\llap{\parbox[t]{\headwidth}{\raggedleft#4\strut}}}}}#5}
\def\headrule{{\if@fancyplain\headrulewidth\plainheadrulewidth\fi
\hrule\@height\headrulewidth\@width\headwidth \vskip-\headrulewidth}}
\def\footrule{{\if@fancyplain\footrulewidth\plainfootrulewidth\fi
\vskip-0.3\normalbaselineskip\vskip-\footrulewidth
\hrule\@width\headwidth\@height\footrulewidth\vskip0.3\normalbaselineskip}}
\def\ps@fancy{
\let\@mkboth\markboth
\@ifundefined{chapter}{\def\sectionmark##1{\markboth
{\uppercase{\ifnum \c@secnumdepth>\z@
\thesection\hskip 1em\relax \fi ##1}}{}}
\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne
\thesubsection\hskip 1em\relax \fi ##1}}}
{\def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth>\m@ne
\@chapapp\ \thechapter. \ \fi ##1}}{}}
\def\sectionmark##1{\markright{\uppercase{\ifnum \c@secnumdepth >\z@
\thesection. \ \fi ##1}}}}
\def\@oddhead{\@fancyhead\relax\@olhead\@ochead\@orhead\hss}
\def\@oddfoot{\@fancyfoot\relax\@olfoot\@ocfoot\@orfoot\hss}
\def\@evenhead{\@fancyhead\hss\@elhead\@echead\@erhead\relax}
\def\@evenfoot{\@fancyfoot\hss\@elfoot\@ecfoot\@erfoot\relax}
\headwidth\textwidth}
\def\ps@fancyplain{\ps@fancy \let\ps@plain\ps@plain@fancy}
\def\ps@plain@fancy{\@fancyplaintrue\ps@fancy}
|