1mult.fig <-
2function(nr.plots, mfrow, mfcol,
3         marP = rep(0, 4), mgp = c(if(par("las") != 0) 2. else 1.5, 0.6, 0),
4         mar = marP + 0.1 + c(4,4,2,1), oma = c(0,0, tit.wid, 0),
5         main = NULL, tit.wid = if (is.null(main)) 0 else 1 + 1.5*cex.main,
6         cex.main = par("cex.main"), line.main = cex.main - 1/2,
7         col.main = par("col.main"),
8         font.main = par("font.main"),
9         ...)
10{
11  ## Purpose: 'MULTiple FIGures' incl. title and other good defaults
12  ## -------------------------------------------------------------------------
13  ## Arguments: -- Either ONE of the first 3 arguments --
14  ###  =========> help(mult.fig)
15  ## -------------------------------------------------------------------------
16  ## Author: Martin Maechler, 1990 (UW, Seattle) -- 1995
17  ## -------------------------------------------------------------------------
18
19  use.row <- missing(mfcol)
20  if (use.row)
21    if (missing(mfrow)) {
22      if (missing(nr.plots))
23        stop("must either specify 'nr.plots', 'mfrow' or 'mfcol' !")
24      else  mfrow <- n2mfrow (nr.plots)
25    }
26  old.par <-
27    if(use.row) par(mfrow = mfrow, oma = oma, mar = mar, mgp= mgp)
28    else        par(mfcol = mfcol, oma = oma, mar = mar, mgp= mgp)
29  ##---- now go ahead :
30  if(!is.R())
31      frame()
32  if (!is.null(main)) {# Do title *before* first plot!
33      if(is.R()) plot.new()
34      mtext(main, side = 3, outer = TRUE,
35            line = line.main,
36            cex = cex.main,
37            font = font.main, col = col.main, ...)
38      if(is.R()) par(new=TRUE)# reverse `plot.new()' above
39  }
40  invisible(list(new.par = par(c("mfrow","mfcol","oma","mar","mgp")),
41                 old.par = old.par))
42}
43