1

I'm trying to make letters without relying on predefined classes to that effect (why not?). In the example below, I'd like the top margin to be changed to 0.75in after page 1.

\documentclass[12pt]{report}
\usepackage[english]{babel}
\usepackage{datetime}
\usepackage[
% https://css.paperplaza.net/conferences/support/page.php
letterpaper,
top=1in, %first
% top-0.75in,%rest
left=0.75in,
right=0.75in,
bottom=0.75in,
showframe%only for testing
]{geometry}
\usepackage{lipsum}
\usepackage{titleps}
\usepackage{xparse}

\NewDocumentCommand{\myheading}
{O{}+mO{\newline}}
{\noindent #1#2#3}

\newpagestyle{rest}
[\small\sffamily]
{
  \sethead{}{xyz}{}
  \setfoot{}{\thepage}{}

% this has no effect  
%  \newgeometry{%
%    letterpaper,
%    % top=1in, %first
%    top=0.75in,%rest
%    left=0.75in,
%    right=0.75in,
%    bottom=0.75in
%  }

}

\begin{document}
\thispagestyle{empty}
\pagestyle{rest}

\myheading{John Smith\\
  1000 Main Street\\
  Washington, DC}

\myheading[\shortdate]{\today}

\myheading{John Doe\\
  1001 Main Street\\
  Washington, DC}

\myheading[Re:~]{xyz}

\myheading{Sir,}

\lipsum[1-5]\\

\myheading{Sincerely}[,]

\vspace*{3em}

\myheading{John Smith.}

\myheading[Encl.:~]{Specimen xyz}

\myheading[PS:~]{One last thing\dots}

\end{document}

Shot-1 Shot-2

3

Set your page margins according to the requirements for the bulk of your document. In your case, this would be

\usepackage[
  % https://css.paperplaza.net/conferences/support/page.php
  letterpaper,
  margin = 0.75in
]{geometry}

Then, issue \vspace*{0.25in} on the first page (or, \AtBeginDocument{\vspace*{0.25in}} in the preamble) which reduces the text block on the first page by 1/4in (or, increases the top margin by 1/4in).

Here is a template showing the use-case:

enter image description here

\documentclass{article}

\usepackage[
  margin = 0.75in,
  showframe% Just for this example
]{geometry}
\usepackage{lipsum}

\AtBeginDocument{\vspace*{0.25in}}

\begin{document}

\sloppy% Just for this example
\lipsum[1-15]

\end{document}

Your document will have the same margins for all pages, even with the change on the first page (visualised by adding the showframe option to you geometry settings).

|improve this answer|||||
0

The flowfram package is a bit wasted on something this simple. But changing the geometry of specific pages is precisely what it does.

\documentclass[12pt]{report}
\usepackage[english]{babel}
\usepackage{datetime}
\usepackage[
% https://css.paperplaza.net/conferences/support/page.php
letterpaper,
top=0.75in,% use larger
left=0.75in,
right=0.75in,
bottom=0.75in,
showframe%only for testing
]{geometry}
\usepackage{lipsum}
\usepackage{titleps}
\usepackage{xparse}

\usepackage{flowfram}
\newflowframe[1]{\textwidth}{\dimexpr \textheight-.25in}{0pt}{0pt}

\NewDocumentCommand{\myheading}
{O{}+mO{\newline}}
{\noindent #1#2#3}

\newpagestyle{rest}
[\small\sffamily]
{
  \sethead{}{xyz}{}
  \setfoot{}{\thepage}{}

% this has no effect  
%  \newgeometry{%
%    letterpaper,
%    % top=1in, %first
%    top=0.75in,%rest
%    left=0.75in,
%    right=0.75in,
%    bottom=0.75in
%  }

}

\begin{document}
\thispagestyle{empty}
\pagestyle{rest}

\myheading{John Smith\\
  1000 Main Street\\
  Washington, DC}

\myheading[\shortdate]{\today}

\myheading{John Doe\\
  1001 Main Street\\
  Washington, DC}

\myheading[Re:~]{xyz}

\myheading{Sir,}

\lipsum[1-5]\\

\myheading{Sincerely}[,]

\vspace*{3em}

\myheading{John Smith.}

\myheading[Encl.:~]{Specimen xyz}

\myheading[PS:~]{One last thing\dots}

\end{document}
|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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