summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-papergeom.html
blob: 3c69972e33f45dab76e294a59d50f1e242e60b77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<head>
<title>UK TeX FAQ -- question label papergeom</title>
</head><body>
<h3>Getting the right paper geometry from (La)TeX</h3>
<p/>If your output is the wrong size, and you&#8217;ve checked that it&#8217;s not due
to the <a href="FAQ-acroantics.html">ministrations of Adobe <i>Reader</i></a>,
the problem is probably that your (La)TeX system is producing output
that specifies the wrong paper size.  Paper sizes can be a pain:
they&#8217;re a forgotten backwater &#8212; Knuth seems not to have considered
paper size as something the TeX engine needs to know about.  As a
result, there is no DVI command to specify the paper on which
the document should be printed, which has led a dichotomy where macros
shape the text according to the needs of the author&#8217;s chosen paper
size, and device drivers&#8217; choice happens independently of the macros&#8217;
ideas.
<p/>In practice, one usually finds that macro packages (such as Plain TeX and
LaTeX) assume American &#8220;letter&#8221; paper size, by default; and since
most distributions nowadays originate in Europe, the drivers usually
default to ISO &#8220;A4&#8221; paper size.
<p/>This is (of course) pretty unsatisfactory.  Users may select a
different paper size for their document (current LaTeX offers a
range of sizes as options in the standard classes), pretty easily.
Nevertheless, the user also has to be sure that each time
<i>xdvi</i>, <i>dvips</i> (or whatever) runs, it uses the
paper size the document was designed for.
<p/>The default paper size for DVI drivers may be changed by a
distribution management command (<i>texconfig</i> for TeX Live,
the <i>Options</i> application for MiKTeX), but this still
doesn&#8217;t provide for people using the &#8220;wrong&#8221; sort of paper for some
reason.
<p/>A different issue arises for users of PDFTeX &#8212; the
PDF format <em>does</em> have the means of expressing paper size
and PDFTeX has system variables <code>\</code><code>pdfpagewidth</code> and
<code>\</code><code>pdfpageheight</code>, that are written into the output PDF file.
Unfortunately, most of the core software predates PDFTeX, so not even
PDFLaTeX sets the correct values into those variables, to match the
paper size specified in a <code>\</code><code>documentclass</code> option.
<p/>The DVI drivers <i>dvips</i> and <i>dvipdfm</i> define
<code>\</code><code>special</code> commands for the document to specify its own paper size;
so in those cases, as when PDFTeX or VTeX is being used, the
paper size can be programmed by the document.  Users who wish to, may
of course consult the manuals of the various programs to write the
necessary code.
<p/>The <i>geometry</i> package (whose main business is defining
typeset page areas), also takes notice the size of the paper that the
document is going to be printed on, and can issue the commands
necessary to ensure the correct size of paper is used.  If
<i>geometry</i> is used when a document is being processed by
PDFLaTeX, it can set the necessary dimensions &#8220;in the output&#8221;.
If the document is being processed by LaTeX on a TeX or e-TeX
engine, there are package options which instruct <i>geometry</i>
which <code>\</code><code>special</code> commands to use.  (Note that the options are
ignored if you are using either PDFLaTeX or VTeX.)
<p/>So, the resolution of the problem is to add
<blockquote>
<pre>
\usepackage[dvixxx,...]{geometry}
</pre>
</blockquote><p>
(where <code>dvixxx</code> is your current favourite DVI
driver &#8212; <i>geometry</i> knows about <code>dvips</code> and
<code>dvipdfm</code>), and the document will run correctly with
LaTeX.  If you&#8217;re using PDFLaTeX, load with
<blockquote>
<pre>
\usepackage[pdftex,...]{geometry}
</pre>
</blockquote><p>
<p/>Needless to say, both the &#8220;big&#8221; classes (<i>koma-script</i> and
<i>memoir</i>) provide their own ways to get the paper size
&#8220;right&#8221;.
<p/>The <i>typearea</i> package is the <i>Koma-script</i>
distribution&#8217;s way of providing page layout functionality.  Load it
with the <code>pagesize</code> option and it will ensure the correct
paper is selected, for PDF output from PDFLaTeX, and for
PostScript output from LaTeX via <i>dvips</i>.
<p/><i>Memoir</i> has the standard classes&#8217; paper-size selections
(<code>a4paper</code>, <code>letterpaper</code> and so on), but also
permits the user to choose an arbitrary paper size, by setting the
length registers <code>\</code><code>stockheight</code> and <code>\</code><code>stockwidth</code>.  The commands
<code>\</code><code>fixdvipslayout</code> (for LaTeX processing), and <code>\</code><code>fixpdflayout</code>
(for PDFLaTeX processing) then instruct the processor to produce
output that specifies the necessary paper size.
<dl>
<dt><tt><i>geometry.sty</i></tt><dd><a href="http://mirror.ctan.org/macros/latex/contrib/geometry.zip">macros/latex/contrib/geometry</a> (or <a href="http://mirror.ctan.org/macros/latex/contrib/geometry/">browse the directory</a>); <a href="http://mirror.ctan.org/help/Catalogue/entries/geometry.html">catalogue entry</a>
<dt><tt><i>memoir.cls</i></tt><dd><a href="http://mirror.ctan.org/macros/latex/contrib/memoir.zip">macros/latex/contrib/memoir</a> (or <a href="http://mirror.ctan.org/macros/latex/contrib/memoir/">browse the directory</a>); <a href="http://mirror.ctan.org/help/Catalogue/entries/memoir.html">catalogue entry</a>
<dt><tt><i>typearea.sty</i></tt><dd>Distributed as part of <a href="http://mirror.ctan.org/macros/latex/contrib/koma-script.zip">macros/latex/contrib/koma-script</a> (or <a href="http://mirror.ctan.org/macros/latex/contrib/koma-script/">browse the directory</a>); <a href="http://mirror.ctan.org/help/Catalogue/entries/typearea.html">catalogue entry</a>
</dl>
<p/><p>This question on the Web: <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=papergeom">http://www.tex.ac.uk/cgi-bin/texfaq2html?label=papergeom</a>
</body>