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.

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