Tuesday Tiny Techie Tip

Paper saving

I was having so much fun shuffling views around (come see the before and after pictures on Deborah's cube wall) that I didn't do this weeks' tip until Wednesday, so this week's is neither Tuesday nor Tiny.

I'll put off the revamp of last week's pitiful quoting quagmire until inspiration strikes.

There are several tools available to reduce the amount of paper you use when you print stuff out.

First off, all the qmX printers can print double sided on 8.5x11 inch paper. To use the double-sided feature, just send your printout to qmX-duplex instead of just qmX.

a2ps(1)
This tool takes any text file and transforms it into postscript This is the brains behind the faganprint script if you've ever used that. Default behavior is to print two pages side by side with borders and headers showing when the printout was done, what the filename was, and other debatably useful information. Here's sorta what it looks like:
% a2ps .login > foo.ps
[.login: 2 pages on 1 sheet]
[Total: 2 pages on 1 sheet]

picture of a piece of paper

Frame
Framemaker lets you print what it calls "thumbnails" which is fancy professional printer words for n-up. To enable this, in the "print" dialog, turn on the little thumbnails checkbox, and then enter the number of rows and columns of logical pages you would like on each page of paper (1 row and 2 columns does something similar to a2ps). The dialog looks kinda like this:

picture of a Frame dialog

Yours is probably a different color. Notice that I also took advantage of the fact that I can restrict the list of pages I want to print, and I'm printing to qm2-duplex to get double sided in addition to 2-up. Here's what that printout looked like:


picture of a piece of paper
Notice that Frame doesn't have enough sense to re-orient the landscape page to take advantage of as much of the paper as possible, so it shrinks the landscape one to fit in a portrait-sized space. To get around this you can switch to doing 2 rows and 1 column, and then the portrait pages get shrunk to fit into a landscape sized space, but the landscape pages come out full size. Kinda lame either way.

mpage(1)
mpage works on both regular text files and on postscript files. Its default behavior is to print four logical pages per physical page with lines around the pages. Four-up is actually fairly readable for plain text files. It will also do 2-up (via the "-2" option), 8-up ("-8", good if you don't mind using a magnifying glass. Great for documentation of unknown usefulness, you can get 16 page on one sheet of paper, and if it turns out to be useless you don't have to feel too guilty when you chuck it in the recycling bin.) and 1-up ("-1", not real useful).

Some of mpage's other defaults aren't real intuitive, so I set the MPAGE environment variable to override them:


% printenv MPAGE
-aP

The "-a" causes successive pages to be placed across the physical page (in rows), rather than the default of down the page (in columns). The "-P" forces the output to go to stdout rather than directly to the printer.

I strongly recommend that you at least use the "-P" flag so that mpage's output can be redirected to a file for further examination before printing. The "-a" is more a matter of taste.

mpage solves the problem of getting useful n-up printouts from Frame. First print the pages you want from your frame document without using thumbnails, but print them out to a postscript file using the "Print Only to File:" option in the Frame print dialog. Once you have the postscript file, you can run mpage on that to generate a new postscript file with the multiple pages per sheet.

Here's that chunk from the SCD again (plus a couple more pages) as spit out by the following command:


% mpage scd.ps > foo.ps
[mpage: 1 pages, on <stdout>]

picture of a piece of paper

ghostview(1)
While you're playing around with your command of choice, it makes sense to take a look at the postscript output before you send it off to the printer to be laboriously transcribed in carbon on wood pulp, so get in the habit of doing your postscriptification into a file, then examining the file using ghostview to make sure it looks mostly like you'd expect. I wouldn't encourage anyone to try to actually read anything using ghostview, but I've heard of people doing it. All the paper pictures in this tip are snapshots of the ghostview screen (shrunk down tiny. At the default size it is basically readable).

Once you're convinced you're generating postscript that achieves the effect you're going for, send it to the printer with lpr:


% mpage -8 lamedoc.ps > foo.ps
[mpage: 4 pages, on <stdout>]
% ghostview foo.ps
% lpr -Pqm2-duplex foo.ps
% rm foo.ps

That put up to 32 pages of (probably useless) stuff onto only two sheets of paper.

Your friendly local tree thanks you.


Tuesday Tiny Techie Tip -- 11 February 1997
Forward to (02/18/97)
Back to (02/04/97)
Written by Jeff Youngstrom

Up to the TTTT index

Tuesday Tiny Techie Tips are all © Copyright 1996-1997 by Jeff Youngstrom. Please ask permission before reproducing any of this material.