41

I currently have an article document class and I previously changed it to include printing on A4 paper:

\documentclass[12pt, a4paper]{article}

However, I had to change my margins to meet my university requirements and the answer I received used A4 in the geometry package too.

\geometry{a4paper,margin=15mm,bindingoffset=25mm,heightrounded,}

Partially practical and partially theoretical, is there any difference to using either declaration and/or is there an effect by using both?

3
  • 3
    It's irrelevant: options to the class are automatically passed to all loaded packages.
    – egreg
    Commented Jul 5, 2012 at 15:51
  • @egreg: If you specify the paper size via \documentclass and don't use geometry, the paper will be of the correct size, so something changes. The question is, could these changes interfere with geometry in any way? (It doesn't seem like it.)
    – doncherry
    Commented Jul 5, 2012 at 16:30
  • @doncherry The class understands a4paper and sets the text block dimensions accordingly. If you also load geometry the dimensions are changed again according to geometry default for A4 paper, unless you use the pass option.
    – egreg
    Commented Jul 5, 2012 at 16:36

3 Answers 3

29

a4paper specified in document class will be passed to geometry. So there is no difference in your case if you specify the option in \documentclass{article} or \usepackage{geometry}.

However if other packages need to know document format, you need to specify a4paper in the document class.

4
  • Looking at the source for the article class, how is the paper size being passed to geometry? I only see that paperheight and paperwidth are being directly set. Commented Oct 8, 2015 at 3:18
  • @kissmyarmpit ! LaTeX Error: File a4paper.sty' not found.`
    – alhelal
    Commented Jan 10, 2018 at 3:32
  • 1
    Passing the option to \documentclass gives any package a chance to react to the option; on the other hand, passing it to \usepackage{geometry} doesn't, thus I wouldn't say there is no difference. It depends on what other packages do with the paper size. Nothing in most cases, but who knows...
    – frougon
    Commented Dec 22, 2018 at 10:22
  • 2
    There is a difference if you call a4paper as class option or only geometry option. Please see my answer tex.stackexchange.com/a/472270/16550
    – Mensch
    Commented Jun 23, 2019 at 23:16
5

I'm not sure about the changes, but I think the standard way is the following:

\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
...

You can specify the margins further. The simplest way is writing

\usepackage[a4paper, margin=2cm]{geometry}
8
  • no, add a4paper to the class options, it only passed on to geometry then any later package that might also react to a4paper would never see it.
    – daleif
    Commented Jul 5, 2012 at 16:08
  • @daleif I don't understand your comment sorry...
    – Alenanno
    Commented Jul 5, 2012 at 21:42
  • 2
    type \documentclass[12pt,a4paper]{...} not just \usepackage[a4paper]{geometry}
    – daleif
    Commented Jul 7, 2012 at 10:02
  • @daleif I just realized but if that's true, how is this different from the accepted answer?
    – Alenanno
    Commented Apr 23, 2015 at 15:48
  • @daleif No answer? :P
    – Alenanno
    Commented May 4, 2017 at 10:18
4

There might be a difference if you load some other packages that could use ...paper options. It is naturally global option of your manuscript so I think it is better declared global, similarly to the language options discussed here: https://tex.stackexchange.com/a/60298/11002

So I think that ...paper should be put as a global option of \documentclass.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .