From khansen at stat.berkeley.edu  Wed Apr 22 21:49:05 2009
From: khansen at stat.berkeley.edu (Kasper Daniel Hansen)
Date: Wed, 22 Apr 2009 12:49:05 -0700
Subject: [Rd] RFC: Ability to suppress 'locale' from sessionInfo
In-Reply-To: <18926.55876.329732.6352@lynne.math.ethz.ch>
References: <5c62e0070904211916w36310bfdsd720fae189cad25b@mail.gmail.com>
	<18926.50861.369595.3396@lxh5.stat.uni-muenchen.de>
	<49EECDEA.9020800@telenet.be>
	<18926.55876.329732.6352@lynne.math.ethz.ch>
Message-ID: <1CF05FF1-8327-4E3A-AC93-4991458FC154@stat.berkeley.edu>

This is a better way, it does two things
a) enclose the itemize environment in a flushleft environment - this  
gives us much better line breaks for the verb.
b) does a replace of ";" with ";| \verb|" so that each "component" of  
the locale gets enclosed in its own \verb command, which allows latex  
to produce line breaks (since I am using gsub, I do gsub(";", ";| \\\ 
\verb", object$locale))

Below is a proposed utils:::toLatex.sessionInfo

I think it might make sense to have a locale argument, but I would  
argue that the default ought to be TRUE.

Kasper

function (object, ...)
{
     opkgver <- sapply(object$otherPkgs, function(x) x$Version)
     nspkgver <- sapply(object$loadedOnly, function(x) x$Version)
     z <- c("\\begin{flushleft}", "\\begin{itemize}", paste("  \\item  
", object$R.version$version.string,
         ", \\verb|", object$R.version$platform, "|", sep = ""),
         paste("  \\item Locale: \\verb|", gsub(";", ";| \\\\verb|",  
object$locale), "|",
             sep = ""), strwrap(paste("\\item Base packages:",
             paste(sort(object$basePkgs), collapse = ", ")), indent = 2,
             exdent = 4))
     if (length(opkgver)) {
         opkgver <- opkgver[sort(names(opkgver))]
         z <- c(z, strwrap(paste("  \\item Other packages: ",
             paste(names(opkgver), opkgver, sep = "~", collapse = ",  
")),
             indent = 2, exdent = 4))
     }
     if (length(nspkgver)) {
         nspkgver <- nspkgver[sort(names(nspkgver))]
         z <- c(z, strwrap(paste("  \\item Loaded via a namespace (and  
not attached): ",
             paste(names(nspkgver), nspkgver, sep = "~", collapse = ",  
")),
             indent = 2, exdent = 4))
     }
     z <- c(z, "\\end{itemize}", "\\end{flushleft}")
     class(z) <- "Latex"
     z
}



On Apr 22, 2009, at 1:50 , Martin Maechler wrote:

>>>>>> "TobiasV" == Tobias Verbeke <tobias.verbeke at telenet.be>
>>>>>>    on Wed, 22 Apr 2009 09:57:30 +0200 writes:
>
>    TobiasV> Friedrich Leisch wrote:
>>>>>>>> On Tue, 21 Apr 2009 21:16:59 -0500,
>>>>>>>> Kevin W (KW) wrote:
>>>
>>>> The printing of the locale information from sessionInfo is not  
>>>> very tidy.
>>>> Using toLatex(sessionInfo) pretty much guarantees "badness" from  
>>>> breaking
>>>> the margin boundary (though my version of TeX no longer reports  
>>>> such
>>>> errors).  A random example is here:
>>>> http://cran.r-project.org/web/packages/Matrix/vignettes/Design-issues.pdf
>>>
>>>> I find the locale information unnecessary and right now I hack  
>>>> this with
>>>> si = sessionInfo()
>>>> si$locale = "US"
>>>> toLatex(si)
>>>
>>>> I would like to be able to do something a bit cleaner, for example
>>>> sessionInfo(locale=FALSE)
>>>
>>>> For what it's worth, I don't think that early versions of  
>>>> sessionInfo
>>>> printed information about the locale.
>>>
>>> It went in on 2006-05-26, so it's bben there for some time now.
>>>
>>>
>>>> Discussion welcome.
>>>
>>> I agree that it doesn't look nice in latex documents, but it is very
>>> handy in bug reports.
>>>
>>> Are there any objections if we add a locale argument to the  
>>> toLatex()
>>> method and let that default to FALSE?
>
>    TobiasV> No objection although I would not be against
>    TobiasV> letting it default to TRUE to preserve current behaviour.
>
> I agree with setting the default to keep the current behavior.
> As Fritz mentioned, there situations where the locale
> (information) is of quite some importance.  As we know that
> Sweave is used in quite a few circumstances with automatic
> report generation, of which in *some* cases the locale may also
> matter (and is desired to be visible),
>
> I think we should not change the default behavior lightly
> (apart from the extra spaces, see below).
>
>    TobiasV> One improvement in the locale information that would  
> make the LaTeX look
>    TobiasV> much nicer would be to add a space after the separator,  
> i.e.
>
>    TobiasV> item1; item2; item3
>
>    TobiasV> instead of
>
>    TobiasV> item1;item2;item3
>
>    TobiasV> That is for me more important than having the
>    TobiasV> option to include locale info or not
>
> I agree very much; and indeed, adding the space after ";" is
> trivial to achieve in the next version of  toLatex()'s
> "sessionInfo" method, as well.
>
> Martin
>
>    TobiasV> as without such a change I found no way to prevent the  
> locale
>    TobiasV> information to run into the margin (and off the
>    TobiasV> page) of the resulting LaTeX document and that is
>    TobiasV> esthetically much more displeasing than the mere
>    TobiasV> presence of the locale information.
>
>    TobiasV> Best,
>    TobiasV> Tobias
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] RFC: Ability to suppress 'locale' from sessionInfo
Kasper Daniel Hansen