On 12-09-02 3:52 PM, Dennis Fisher wrote:
Duncan

Perhaps I did not explain sufficiently -- the code that I sent makes the 
correction in FINDCEX.  But, that correction does not accomplish the intended 
goal -- as evidenced by the graphic that is created from the code that I sent.

The option of "brute force" would require trial and error.  I was hoping that 
invoking some other option in mtext, such as padj, would accomplish my goal of needing 
only to multiply the line= value by the value returned from my function.

You're right, I didn't understand you.

Here's what I see in your sample code display (in 2.15.0 on a Mac with OSX 10.6.8):

The spacing between "line 0" and "line 1" (on the top and right) gets smaller from page 1 to page 4.

The size of the margin text is the same in all pages.

The size of "Index" within the subfigures is smaller in the later pages.

There are some other small movements of text from page to page, but not much.

What do you see?

Duncan Murdoch

Dennis

Dennis Fisher MD
P < (The "P Less Than" Company)
Phone: 1-866-PLessThan (1-866-753-7784)
Fax: 1-866-PLessThan (1-866-753-7784)
www.PLessThan.com

On Sep 2, 2012, at 11:43 AM, Duncan Murdoch <murdoch.dun...@gmail.com> wrote:

On 12-09-02 1:40 PM, Dennis Fisher wrote:
R 2.15.1
OS X (MLion)

Colleagues,

I am aware that changes in mfrow / mfcol in par() affect cex (from help: In a layout with 
exactly two rows and columns the base value of ‘"cex"’ is reduced by a factor 
of 0.83: if there are three or more of either rows or columns, the reduction factor is 
0.66).

I generate a multipage PDF in which mfrow varies such that cex is impacted.  
This affect mtext in the outer margin.  Sample code is pasted at the bottom of 
this email.  The impact is most obvious if one examines the text at the bottom 
of each page as one moves page-to-page.

Does anyone have a suggestion for how to overcome this (other than using brute 
force).

I am not sure what's wrong with brute force here.  You know the formula for the 
reduction; just apply a corresponding increase first.

Duncan Murdoch


Dennis

Dennis Fisher MD
P < (The "P Less Than" Company)
Phone: 1-866-PLessThan (1-866-753-7784)
Fax: 1-866-PLessThan (1-866-753-7784)
www.PLessThan.com

# In a layout with exactly two rows and columns the base value of ‘"cex"’ is 
reduced by a factor of 0.83: if
# there are three or more of either rows or columns, the reduction factor is 
0.66.

FINDCEX <- function()
        {
        CORRECT <- 1
        MFROW           <- par()$mfrow
        MFCOL           <- par()$mfcol
        TEST            <- all(MFROW == MFCOL)
        if (TEST && MFROW == c(2,2))                            CORRECT <- 1 / 
0.83
        if (TEST && (MFROW[1] >= 3 | MFROW[2] >= 3))      CORRECT <- 1 / 0.66
        if (!TEST)      cat("MFROW does not equal MFCOL\n")
        cat(MFROW, CORRECT, "\n")
        return(CORRECT)
        }
pdf("TestCEX.pdf", 8, 6)
par(mfrow=c(1,1), omi=c(1,1,1,1))
plot(1)
mtext(outer=T, side=1, line=0, cex=1, "line 0")
mtext(outer=T, side=1, line=FINDCEX(), cex=1, "line FINDCEX")
mtext(outer=T, side=3, line=0, cex=1, "line 0")
mtext(outer=T, side=3, line=1, cex=1, "line 1")
mtext(outer=T, side=2, line=0, cex=1, "line 0")
mtext(outer=T, side=2, line=FINDCEX(), cex=1, "line FINDCEX")
mtext(outer=T, side=4, line=0, cex=1, "line 0")
mtext(outer=T, side=4, line=1, cex=1, "line 1")


par(mfrow=c(1,2), omi=c(1,1,1,1))
plot(1)
mtext(outer=T, side=1, line=0, cex=1, "line 0")
mtext(outer=T, side=1, line=FINDCEX(), cex=1, "line FINDCEX")
mtext(outer=T, side=3, line=0, cex=1, "line 0")
mtext(outer=T, side=3, line=1, cex=1, "line 1")
mtext(outer=T, side=2, line=0, cex=1, "line 0")
mtext(outer=T, side=2, line=FINDCEX(), cex=1, "line FINDCEX")
mtext(outer=T, side=4, line=0, cex=1, "line 0")
mtext(outer=T, side=4, line=1, cex=1, "line 1")

par(mfrow=c(2,2), omi=c(1,1,1,1))
plot(1)
mtext(outer=T, side=1, line=0, cex=1, "line 0")
mtext(outer=T, side=1, line=FINDCEX(), cex=1, "line FINDCEX")
mtext(outer=T, side=3, line=0, cex=1, "line 0")
mtext(outer=T, side=3, line=1, cex=1, "line 1")
mtext(outer=T, side=2, line=0, cex=1, "line 0")
mtext(outer=T, side=2, line=FINDCEX(), cex=1, "line FINDCEX")
mtext(outer=T, side=4, line=0, cex=1, "line 0")
mtext(outer=T, side=4, line=1, cex=1, "line 1")

par(mfrow=c(3,3), omi=c(1,1,1,1))
plot(1)
mtext(outer=T, side=1, line=0, cex=1, "line 0")
mtext(outer=T, side=1, line=FINDCEX(), cex=1, "line FINDCEX")
mtext(outer=T, side=3, line=0, cex=1, "line 0")
mtext(outer=T, side=3, line=1, cex=1, "line 1")
mtext(outer=T, side=2, line=0, cex=1, "line 0")
mtext(outer=T, side=2, line=FINDCEX(), cex=1, "line FINDCEX")
mtext(outer=T, side=4, line=0, cex=1, "line 0")
mtext(outer=T, side=4, line=1, cex=1, "line 1")

graphics.off()
system("open TestCEX.pdf")

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.




______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to