Re: [Rd] R_PAPERSIZE and LC_PAPER

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Thu 20 Apr 2006 - 17:48:34 GMT

Marc,

Thanks for the comments. The 2.3.x series is in feature freeze, and although a few features do break though for patch releases, they had better be `badly needed' see
http://developer.r-project.org/devel-guidelines.txt).

So I was thinking of 2.4.0.

My suggestion was going to be along the lines of

local({
papersize <- as.vector(Sys.getenv("R_PAPERSIZE")) if(!nchar(papersize)) {

     lcpaper <- Sys.getlocale("LC_PAPER")
     if(nchar(lcpaper))
         papersize <- if(length(grep(, lcpaper)) > 0) "letter" else "a4"
     else papersize <- as.vector(Sys.getenv("R_PAPERSIZE_DEFAULT"))
}
options(papersize = papersize)
})

This is unchanged if LC_PAPER is unset. For those with LC_PAPER set, its value takes precedence over the compile-time default. That's almost exactly equivalent to what happens on Windows (which sets LC_MONETARY for this purpose, as LC_PAPER is not a locale category there).

Now, one could argue that if LC_PAPER is unset it should default to LC_ALL, but I think is less desirable.

Of course, at present Sys.getlocale("LC_PAPER") is not supported, so that's part of the TODO.

Brian

On Thu, 20 Apr 2006, Marc Schwartz (via MN) wrote:

> On Thu, 2006-04-20 at 08:09 +0100, Prof Brian Ripley wrote:
>> R uses the environment variable R_PAPERSIZE to set its papersize, e.g. for
>> postscript.
>>
>> It seems the modern way is to via LC_PAPER, e.g.
>>
>> http://mail.nl.linux.org/linux-utf8/2002-05/msg00010.html
>>
>> and Googling will show that people expect this to work.
>>
>> However, that is not set on my FC3 system, and it would affect people who
>> use en_US as their locale in, say, Austria.
>>
>> Should we be making use of LC_PAPER, or would it just cause further
>> complications? (On Windows, the locale name is used to set the default
>> papersize, but there it is unlikely to be set inappropriately.)
>
>
> Here's my 0.0162 Euros (at current conversion rates):
>
> For R 2.4.0, announce that LC_PAPER will become the default environment
> variable used to set the default R papersize and then not set
> R_PAPERSIZE by default (ie. in build scripts, etc.)
>
> However, If someone sets R_PAPERSIZE in their site or local profile,
> this will supercede the LC_PAPER setting. This would allow for a R
> setting that may need to be different than the system default.
>
> Doing this for 2.4.0 (as opposed to 2.3.x) would give folks notice and
> time to consider the impact on their local installations and code, while
> enabling future users to take advantage of the standard.
>
> I think that in general, R should abide by published standards unless
> there are very compelling reasons not to.
>
> HTH,
>
> Marc Schwartz
>
>
>

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Fri Apr 21 03:51:54 2006

This archive was generated by hypermail 2.1.8 : Thu 20 Apr 2006 - 20:18:01 GMT