Coyote's Guide to IDL Programming

QUESTION: My plot disappeared when I selected PostScript landscape mode. What happened?

ANSWER: Setting PostScript offsets in Landscape mode is non-intuitive (to say the least). If you don't know this, you're landscape output can disappear!

In portrait mode, the point from which PostScript window offsets are calculated is the lower-left corner of the page. The X offset is calculated left-to-right in the direction of the X size of the plot. The Y offset is calculated bottom-to-top in the direction of the Y size of the plot.

In landscape mode, the point from which the offsets are calculated is rotated along with the PostScript page. In practice this means that the X offset is calculated bottom-to-top in the direction of the Y size of the plot, and the Y offset is calculated right-to-left in the direction of the X size of the plot!

Here is a picture of the landscape offset situation.

Landscape Offsets are Screwy (32K)

If you were in the habit of setting the offsets to, say, 1 inch in both the X and Y directions for Portrait mode printing, you could easily rotate your graphic off the PostScript page by using offsets of 1 inch in Landscape mode. In other words, your plot can disappear.

One reason I like to use the program cgPS_Config to get the sizes and offsets of the PostScript output window is because it shields the user from this type of non-intuitive interface. In PSConfig the offsets are always calculated from the lower-left corner of the page, whether in Portrait or Landscape mode.

Another interesting feature of IDL's landscape mode is that in every other software package I use, this particular orientation is called “seascape.” That is to say, when IDL landscape PostScript files are opened in other software, they appear upside down. It is possible to fix this problem by using a Coyote Library routine named cgFixPS. If you use the Coyote Library routines cgPS_Open and cgPS_Close to create your PostScript files, this fix is applied to landscape output automatically.

Google
 
Web Coyote's Guide to IDL Programming