|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T f
Length: 9673 (0x25c9)
Types: TextFile
Names: »fancyheadings.sty«
└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
└─⟦this⟧ »latex-style/fancyheadings.sty«
% 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}