Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

After finishing my thesis in LaTeX (I am an absolute newcomer) I've been asked to format it in a specific design matching a doc-file I received.

I've managed to change titles and fonts and margins successfully, but I'm having trouble with the header.

Here's what I am trying to achieve:

Page header with gray background and without margin

I've tried messing around with fancyhdr - but after spending an hour on the documentation, I'm not sure it gives me what I need.

Can you give me a nudge into the right direction?

Particular questions: - What package should I be using to achieve this? - How do I create this floating box that ignores the page margin?

share|improve this question
1  
See: tex.stackexchange.com/questions/2288/… -- the commands you need are llap, rlap or makebox –  Marco Daniel Sep 19 '12 at 19:40
add comment

1 Answer

up vote 4 down vote accepted

The example for the page number uses \llap/\rlap to print something to the left/right without moving the current point.

\documentclass[twoside]{book}
\usepackage[
  headheight=14pt,
]{geometry}

\usepackage{color}
\definecolor{bgpagenum}{gray}{.82}
\definecolor{fgheader}{gray}{.5}

\usepackage{fancyhdr}
\pagestyle{fancy}

\makeatletter
\let\ps@plain\ps@fancy
\makeatother

\fancyhead{}
\fancyfoot{}
\renewcommand*{\headrulewidth}{0pt}
\renewcommand*{\footrulewidth}{0pt}

\fancyhead[RO]{%
  \textcolor{fgheader}{%
    \rightmark
    \rlap{%
      \hspace{\marginparsep}%
      \hspace{-\fboxsep}%
      \colorbox{bgpagenum}{%
        \makebox[\textwidth][l]{\thepage}%
      }%
    }%
  }%
}
\fancyhead[LE]{%
  \textcolor{fgheader}{%
    \llap{%
      \colorbox{bgpagenum}{%
        \makebox[\textwidth][r]{\thepage}%
      }%
      \hspace{\marginparsep}%
      \hspace{-\fboxsep}%
    }%
    \leftmark
  }%
}

% sans serif font as main font
\renewcommand*{\familydefault}{\sfdefault}

\begin{document}
\chapter{Asdfg}
\section{Hjkl}
\newpage
\section{Yuip}
\end{document}

I have used \marginparsep as horizontal distance from the page number to the text body. Then the page number would be vertical aligned with marginal notes, if there are any. If the page number should also be outside the marginal notes, then add \hspace{\marginparwidth}. The length the gray box can be calculated:

\dimexpr\paperwidth-\textwidth-1in-\oddsidemargin\relax % odd pages
\dimexpr\paperwidth-\textwidth-1in-\evensidemargin\relax % even pages

The example simplifies it by using a larger width (\textwidth).

The other things depend on used class/packages and, what have you already managed.

share|improve this answer
    
Thank you very much, that's a lifesaver! :-) –  tjdecke Sep 19 '12 at 20:10
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.