I think that a creative use of the XMARGIN, YMARGIN and NOERASE keywords to MAP_SET will get you there. The only tricky part of this is that the XMARGIN and YMARGIN keywords always have to be defined in terms of character width; that is why I had to work with the '!d.x_ch_size' and '!d.y_ch_size' IDL environment variables in the example code below. That example code is designed to display maps in four quadrants of one display window, i.e. similar behavior to the !p.multi=[0,2,2] setting (which does not interface with MAP_SET).
set_plot, 'PS'
device, FILENAME='multimap.ps'
; This same code can be run in your WIN or X device as well
winW = !d.x_size
winH = !d.y_size
winMargin = 1 ; 1 character width, that is
leftQuadsXMargin = [winMargin, (winW / 2)/!d.x_ch_size - 1]
rightQuadsXMargin = [(winW / 2)/!d.x_ch_size + winMargin, winMargin]
lowerQuadsYMargin = [winMargin, (winH / 2)/!d.y_ch_size - 1]
upperQuadsYMargin = [(winH / 2)/!d.y_ch_size + winMargin, winMargin]
MAP_SET, /CONTINENTS, /GRID, $
XMARGIN=leftQuadsXMargin, YMARGIN=lowerQuadsYMargin
MAP_SET, /AITOFF, /CONTINENTS, /GRID, $
XMARGIN=leftQuadsXMargin, YMARGIN=upperQuadsYMargin, /NOERASE
MAP_SET, /SINUSOIDAL, /CONTINENTS, /GRID, $
XMARGIN=rightQuadsXMargin, YMARGIN=upperQuadsYMargin, /NOERASE
MAP_SET, /STEREOGRAPHIC, /CONTINENTS, /GRID, $
XMARGIN=rightQuadsXMargin, YMARGIN=lowerQuadsYMargin, /NOERASE
device, /CLOSE
|