From ripley at stats.ox.ac.uk  Thu Apr 20 21:56:15 2006
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Thu, 20 Apr 2006 20:56:15 +0100 (BST)
Subject: [Rd] R_PAPERSIZE and LC_PAPER
In-Reply-To: <1145559230.4876.83.camel@localhost.localdomain>
References: <Pine.LNX.4.64.0604200758440.14307@gannet.stats.ox.ac.uk> 
	<1145548335.4876.17.camel@localhost.localdomain> 
	<Pine.LNX.4.64.0604201811480.28018@gannet.stats.ox.ac.uk> 
	<1145557958.4876.67.camel@localhost.localdomain>
	<4447D6AA.1090304@jhsph.edu>
	<1145559230.4876.83.camel@localhost.localdomain>
Message-ID: <Pine.LNX.4.64.0604202006001.32057@gannet.stats.ox.ac.uk>

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

> Roger,
>
> Thanks.
>
> Yes, this I know. In fact I have a line in my shell script for building
> R[-patched]:
>
>  ./configure R_PAPERSIZE=letter
>
>
> R_PAPERSIZE is document in several places, however R_PAPERSIZE_DEFAULT
> is not, unless I am going blind in my middle age...  :-)

It does not exist in any system at present (not even mine): just an idea 
in my head to represent the default found at configure time.

In some sense LC_PAPER is set on FC3:

gannet% locale -ck LC_PAPER
LC_PAPER
height=297
width=210
paper-codeset="ISO-8859-1"

and it is unsupported on Solaris 8.  And

> Sys.getlocale("LC_PAPER")
[1] "en_GB"

in the system I am prototyping just now.

Brian


>
> Regards,
>
> Marc
>
> On Thu, 2006-04-20 at 14:44 -0400, Roger D. Peng wrote:
>> Papersize can be set at compile time in the 'config.site' file (R_PAPERSIZE).
>>
>> -roger
>>
>> Marc Schwartz (via MN) wrote:
>>> Prof. Ripley,
>>>
>>> Happy to help.
>>>
>>> So, it sounds like we are thinking along the same lines then.
>>>
>>> A couple of follow up questions:
>>>
>>> 1. Is R_PAPERSIZE_DEFAULT to be the proposed new compile time setting in
>>> 2.4.0? Unless I missed it, I did not see it documented anywhere (ie.
>>> R-admin/NEWS for 2.2.1 patched or 2.3.0 devel) and it is not in the
>>> configure related files that I have here.
>>>
>>> 2. For LC_ALL, it is not set (at least on my FC4 system, have not had
>>> the time yet to go to FC5) in en_US.UTF-8. Is it set in other locales
>>> such that it would be of value?
>>>
>>>
>>> Thanks also for the pointer to the devel guidelines. I had read through
>>> them at some point in the past, but it has been a while.
>>>
>>> Regards,
>>>
>>> Marc
>>>
>>> On Thu, 2006-04-20 at 18:48 +0100, Prof Brian Ripley wrote:
>>>> 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
>>>>>
>>>>>
>>>>>
>>>
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>>
>>
>
>

-- 
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



[Rd] R_PAPERSIZE and LC_PAPER
Prof Brian Ripley