[Tex/LaTex] First page bottom margin problems — fancyhdr / geometry

fancyhdrgeometryheader-footermargins

Can anyone please help me understand why the bottom margin on the first page spills over if I only use the geometry definitions inside the square brackets of \usepackage[]{geometry}; however, placing the same geometry definitions inside the wavy brackets of \newgeometry{} works just fine? I feel like what I have done is a hack, instead of the way it is supposed to be.

\documentclass[12pt]{article}
\usepackage[head=122.5pt, headsep=-40pt, top=1.6in, bottom=.7in, left=1in, right=1in]{geometry}
%    \newgeometry{head=122.5pt, headsep=-40pt, top=1.6in, bottom=.7in, left=1in, right=1in}
\usepackage{fancyhdr} % This is a special package for headers / footers.
\usepackage{lastpage}

\usepackage{lipsum}


% HEADERS
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

% first page header
\fancypagestyle{plain}{
            \fancyhead{} % print nothing on top-left and top-right of the first page.
            \fancyhead[C]{ Company \\ Street Address \\ City, State ~ Zip \\~\\ Tel. / Fax.: ~ (xxx) xxx-xxxx \\ noone@nowhere.com \\~\\ \today }
            \fancyfoot{} % print nothing on bottom-left and bottom-right of the first page.
            \fancyfoot[C]{} % first page center footer
                      }

% second page header
\pagestyle{fancy}
    \fancyhead{} % center of second page
    \fancyhead[L] {Name of Recipient \\ \today \\ Page {\thepage\ of {\pageref{LastPage}}} \vspace*{.9in} }
    \fancyhead[R]{} % right header \quad \thepage
    \fancyfoot[C]{} % second page center footer

\thispagestyle{plain}
\vspace*{0.6in}

\begin{document}


\lipsum[1-15]

\end{document}

Best Answer

If you look at the internals of geometry, you'll find that \newgeometry includes a call to \Gm@changelayout, which is intended to apply a 'replacement' geometry, while setting the various keys directly as options does not do this. Indeed, neither does the \geometry command, which is more-or-less identical to setting the keys via the package option route. What's not clear, at least to me, is whether the outcome you see is intentional or not. Certainly the difference in internals is, but I think reporting this to the package author would be a good idea: at least some more detailed documentation on this would be helpful.

Related Question