[Rd] R_PAPERSIZE and LC_PAPER
Prof Brian Ripley
ripley at stats.ox.ac.uk
Thu Apr 20 19:48:34 CEST 2006
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 at 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
More information about the R-devel
mailing list