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.

I have a document with different page margins, so I have to change geometry settings after fancyhdr loaded. However, the width of header after geometry is not correct.

\documentclass[12pt]{article}
\usepackage[left=35mm, right=35mm]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\addtolength{\headheight}{8pt}
\fancyhead[C]{Some header text}

\begin{document}
It's fine here.
\newpage

\newgeometry{left=25mm, right=25mm}
PROBLEM: The line of header is 20mm narrower than expected here.
\end{document}

How can I solve this problem?

share|improve this question
    
You have to set the \geometry first, then \fancyhead. So in this instance, you have to reset the header. Have you tried that? Ideally, make a complete, minimal working example (MWE) that one can copy-and-paste to reproduce your problem. –  Werner Dec 25 '12 at 5:04
    
@Werner Thanks for your advices, and I've added the MWE. Also, how to "reset" the header? –  Haocheng Dec 25 '12 at 5:39
add comment

1 Answer

up vote 9 down vote accepted

Here's a MWE

\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0.4pt}\renewcommand{\footrulewidth}{0.4pt}
\lhead{Hi}\rhead{Bye}
\makeatletter
\newcommand{\resetHeadWidth}{\fancy@setoffs}
\makeatother

\usepackage{lipsum}
\begin{document}

\lipsum[1-3]

\pagebreak
\newgeometry{margin=1.5in}
\resetHeadWidth

\lipsum[1-3]

\pagebreak
\newgeometry{margin=0.75in}
\resetHeadWidth

\lipsum[1-3]

\end{document}

The key here is the new command \resetHeadWidth which calls the fancyhdr macro for defining the header and footer widths.

share|improve this answer
    
It works, thank you. –  Haocheng Dec 25 '12 at 6:02
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.