60

I want to change the geometry for a single page only. I set the geometry for the whole document using:

\usepackage[left=1cm,right=2cm,vmargin=2.5cm,footnotesep=0.5cm]{geometry}

The geometry package provides the commands \newgeometry and \restoregeometry; however, the \newgeometry instruction forces a \clearpage. I just want to change the geometry for one page only, is that possible?


(Addendum applied by @JPi, 15 October 2017:)

The original question apparently didn't make sufficiently clear what the OP intended to achieve, and the (now-deleted) answer appears to correspond to a rather narrow interpretation of the question. I have added an MWE that has the special feature that the page with the different geometry is page 1. But a general solution to this question is sought.

Here is an example of a situation in which this would be useful; there are surely others.

\documentclass[12pt]{letter}

\usepackage[margin=1in]{geometry}
\usepackage{graphicx}
\usepackage{eso-pic}
\usepackage{lipsum}
\usepackage{afterpage}

\newcommand\BackgroundPicture{%
    \put(0,0){%
        \parbox[b][\paperheight]{\paperwidth}{%
            \vfill
            \centering
            \includegraphics[width=\paperwidth,height=\paperheight,%
            keepaspectratio]{letterhead.pdf}%
            \vfill
}}}


\begin{document}

\signature{Me}

\begin{letter}{You}
    \AddToShipoutPicture*{\BackgroundPicture}
%\vspace*{1.25in}  % sure this, works, but it's nasty

\newgeometry{margin=1in,top=3in}
\afterpage{\restoregeometry}

    \opening{Dear Sir/Madam,}

\lipsum

\closing{Yours mournfully,}

\end{letter}

\end{document}

(Another example added by @thymaro on 19 October 2017)

tl;dr Can you specify page geometries before the content is typeset on the pages?

Let's say I have a more or less 11 page document with, in it's preamble

\usepackage[whatever-paper-geometry,margin=2cm]{geometry}  %  keep it simple

I want page 3 of my document to have margins set to 10cm (that will be a vertically very narrow box of text) and I really couldn't care less what the text on that page is. As page 3 now contains almost no text any more, the document will be forced to extend to more or less 12 pages.

Can I (you? anyone?) define page geometry of page [1-2, 3, rest of the document*] in the preamble and then let the text flow into these receptacles?

  • "rest of the document" could really first be defined as page 4-20, and after compilation, see that there are only 12 pages and go back to define "rest of the document" as pages 4-12.

I hope this example does the original question justice.

thymaro
  • 1,507
Andre
  • 739
  • 1
    Try the package afterpage. – agodemar Oct 19 '12 at 07:26
  • 1
    That doesn't seem to work at all. When I put \afterpage{\restoregeometry} in the document, the geometry is not restored at all. – Andre Oct 19 '12 at 07:40
  • it sounds like you might like the adjustwidth environment from the changepage package – cmhughes Oct 19 '12 at 14:29
  • 1
    Is the difference only in the layout? Or does it include a difference in the page size as well? Are you working in twoside or not (doesn't seem like it)? Out of curiosity: What is on the page that requires it to have a different geometry? Do you have non-standard elements on that different page? What would you want the new geometry to look like? Do you have any restrictions in terms of the packages used? Would you be able to create a minimal working example (MWE) so we have something to work with that also answers the above questions? – Werner Oct 19 '12 at 15:12
  • We need a MWE to get anywhere with this: without one it's too localized. – Joseph Wright Nov 21 '12 at 08:39
  • 6
    I’m voting to reopen this question because I think that, contrary to what has been said, it concerns an issue of general interest. Maybe some day someone will come up with a good solution. – GuM Jun 15 '16 at 23:14
  • Thanks Mico: I wish you hadn't because others may have the question you answered and land on this question. – JPi Oct 15 '17 at 16:14
  • @JPi — I’ve reinstated the answer, but have added a preface to point out that it’s not likely to be of interest to future readers. – Mico Oct 15 '17 at 18:04
  • 1
    @JPi: Do you want to change the page geometry (i.e., paperwidth and paperheight) or simply the page margins. The latter should be doable; the former is difficult to automate given how tex's par builder works. – Aditya Oct 16 '17 at 23:39
  • 2
    @JPi and other editors: Please have a look into "When is it Kosher to edit one’s own question?" Often it is better to ask a new question or a follow-up question instead of do substantial changes to an old question. – Schweinebacke Oct 19 '17 at 06:42
  • Thanks @Schweinebacke. The only change I made was to add a MWE. The only thing I am looking for is an answer which is consistent with OP's stated intentions, which Mico's answer isn't. The inconsistency is not Mico's fault since the original question was ambiguous. The fact that my MWE has special features is neither here nor there: any example has special features. – JPi Oct 19 '17 at 21:19
  • 1
    @JPi: Have you read the answers to the linked question, esp., egreg's "in the second case [existing answer(s)], I'd be very cautious in doing a substantial addition that could invalidate the answers."? You've interpreted the question different than Mico in his answer, that already exists for 5 years. This invalidates the answer at least partly. It would have been easy to avoid this. But if you think that this does not make sense, it's your decision. I can life with it. You have to life with it. – Schweinebacke Oct 20 '17 at 12:59
  • @JPi changing margins is not difficult, what is difficult (or impossible) is deal with the textwidth (\hsize) – touhami Oct 21 '17 at 15:51

1 Answers1

28

Comment, 15 Oct 2017: The answer given below attempted to address the query as it was phrased originally, i.e., back in October 2012. I’m afraid the answer is not going to be of much interest to the query in its current (Oct. 2017) form.


With help from the afterpage package, the following should work for you:

% ... some material
\afterpage{%
\newgeometry{<options>}
% material for this page
\clearpage
\restoregeometry
} % end of \afterpage{...} material
% ... still more material
Mico
  • 506,678
  • 8
    My problem is that I want LaTeX to decide what to put on the page (in my case there is lots of text). If I woul'd knew what to put on the page then the \restoregeometry would be just fine. I wan't to tell LaTeX: This page has a different geometry, deal with it. – Andre Oct 19 '12 at 08:33
  • 1
    If I got it right, you want a new geometry on only one page and you don't know what goes in that page? What is the purpose of that? And of course \newgeometry forces \clearpage, logically you can't have two layouts (margins, page size) on the same page, so layout pages have to go to the next page. –  Nov 18 '12 at 11:54
  • 2
    The order at the end is important. For some reason we need \restoregeometry\clearpage. Otherwise the bottom margin on the next page is incorrect and text runs into the the end of the page (see http://tex.stackexchange.com/questions/139834/afterpage-clashes-with-restoregeometry-from-the-geometry-package) – Jörg Nov 28 '14 at 11:34
  • @Joseph well, perhaps one is writing a letter and has a letterhead on page 1. I address that using \vspace, but it's clunky. – JPi Oct 14 '17 at 23:38
  • 2
    Comments are not for extended discussion; this conversation has been moved to chat. – Joseph Wright Oct 19 '17 at 07:57