[Tex/LaTex] Overriding printer scaling defaults from within LaTeX

geometrymarginsprinting

Edited version of question

I have to produce a series of documents that need to be printed without scaling. The target users are likely to have low-level computer skills and will overlook instructions like: When printing, choose Paper Handling > Page Scaling > None.

Can I get LaTeX to embed the relevant code directly into the pdf?


Original version of question

Using geometry.sty, I have specified the margin of this document to have two text blocks with the following offsets, in landscape:

  • left margin = 0.75 inches
  • space between text blocks = 1.5 inches
  • right margin = 0.75 inches

The paper size is 8.5 x 11 inches = US letter. Yet, when colleagues in the US print the document (single sided, or double sided with long-edge binding), the results are very variable:

  • p4-p1: left=1, mid=0.94, right=0.75

    p2-p3: left=0.69, mid=0.94, right=1.125 (inches)

  • p4-p1: left=0.63, mid=0.97, right=0.75

    p2-p3: left=0.69, mid=0.97, right=0.69 (inches)

  • on an old single sided printer:

    left=0.81, mid=0.94, right=0.81 (inches)

It looks like different viewers and/or printers are tampering with my dimensions. Is there some way to avoid this?

Best Answer

This is indeed a pernicious problem. Practically every LaTeX document I see printed around the Math department here has been shrunk to fit within some margins. So everything is shrunk, fonts are too small, and margins are too big. This is absurd, of course, since the margins are already quite large. Apparently this is just what everyone thinks LaTeX looks like!

According to Adobe Reader's help (quoted here), "A PDF can contain a set of print presets, a group of document-specific values that is used to set basic print options. By creating a print preset for a document, you can avoid manually setting certain options in the Print dialog box each time you print the document. It’s best to define print settings for a PDF at the time that you create it..."

This answer by Boris suggests that hyperref has the (not well documented) ability to do this. Add to your preamble:

\usepackage{hyperref}
\hypersetup{pdfprintscaling=None}

As Kurt Pfeifle notes, this only affects the default setting shown in the print dialog of compliant viewers, which can still be changed by the user. However, in the typical case you describe, people are likely to accept the defaults.

I can confirm that this works with hyperref 6.82g and Adobe Reader 9.5.5 on a Mac.