Two pagestyles for underlining headers^{∗}

Rainer Schöpf schoepf@uni-mainz.de

1997/02/16

Abstract

This package implements two new pagestyles underline and myunderline that are similar to the standard headings and myheadings pagestyles but provide a horizontal line just below the head line.

The purpose of this package file is to provide a way to underline a running head. This is done by redefining the \@evenhead and \@oddhead macros. To understand this you must know that whenever a given pagestyle (say ‘xxx’) is selected by a \pagestyle{xxx} command the macro \ps@xxx is executed. Therefore we define a

macro \ps@underline which is called when you say \pagestyle{underline}. To

provide for a rule with user-defined headings we also define the pagestyle ‘myunderline’ , i.e. the macro \ps@myunderline.

1 Implementation

1 ⟨∗package⟩

\ps@underline The first thing the macro \ps@underline does is to call \ps@headings to set

up everything like the ‘headings’ pagestyle does. Here we do not need to distinguish onesided and twosided printing since this is already done correctly by

\ps@headings.
 2 \def\ps@underline{\ps@headings

Then we redefine \@evenhead. The first part is a copy of the definition in \ps@headings. This has the advantage that this style option works with document styles ‘article’, ‘report’, and ‘book’.

 3 \def\@evenhead{\thepage\hfil\slshape\leftmark\null

\null is defined to be \hbox{} in the L^{A}TEX kernel file ltplain.dtx. Additionally we include a \vadjust primitive. The effect of this primitive is to add its argument after the current \hbox to the enclosing vertical list.

 4  \vadjust{\vskip .3ex\hrule}}%

The \@oddhead macro is constructed analogously.

 5 \def\@oddhead{\null{\slshape \rightmark}\hfil\thepage
 6  \vadjust{\vskip .3ex\hrule}}}

∗This file has version number v1.01, last revised 1997/02/16.

1 IMPLEMENTATION 2

\ps@myunderline The macro \ps@myunderline for underlining user defined running heads is constructed analogously.

7 \def\ps@myunderline{\ps@myheadings
8 \def\@oddhead{\null{\slshape\rightmark}\hfil
9  \rm\thepage\vadjust{\vskip .3ex\hrule}}%
10 \def\@evenhead{\thepage\hfil\slshape \leftmark \null
11  \vadjust{\vskip .3ex\hrule}}}

Well, that’s all. Use it and enjoy.