[Bioc-devel] BiocStyle on windows with spaces in path names

Martin Morgan mtmorgan at fhcrc.org
Tue Oct 7 00:21:11 CEST 2014

On 10/6/2014 2:44 PM, James W. MacDonald wrote:
> Hi Steffen,
> It looks like you are running R as an administrator, rather than as a
> regular user (or you are on something really old like XP). By default R
> should try to create a user-level library directory in your Documents
> folder. It is probably not such a good idea to run R as administrator if
> you are on a more modern version of Windows.
> Note that system.file (which BiocStyle::latex()  calls to find the package
> path) will in the case of base packages use .Library to construct the path:
>> system.file()
> [1] "C:/PROGRA~1/R/R-31~1.0/library/base"
> Which being an 8.1 path, will work for MikTex. But if I run as an

It would be great for BiocStyle to return a functional path under all circumstances.

I'm not sure that MikTex handles ~ in paths? or at least not the way BiocStyle 
currently uses this, as


When I try to mock this up it looks like the ~ are being processed as latex -- 
there is a latex file not found error with the ~ replaced by \unhbox\voidb at x 
\penalty \@m \{}.

I thought there might be some hints with the Sweave sty file use by all 
vignettes. This is found with

         styfile <- file.path(R.home("share"), "texmf", "tex", "latex", "Sweave")
         if (.Platform$OS.type == "windows")
             styfile <- chartr("\\", "/", styfile)
         if (length(grep(" ", styfile)))
             warning(gettextf("path to %s contains spaces,\n", sQuote(styfile)),
                     gettext("this may cause problems when running LaTeX"),
                     domain = NA)

but R.home() (eventually find.package()) uses .Library for the special case when 
the path to a single package from the base distribution is being sought

 > find.package("stats")
[1] "C:/PROGRA~1/R/R-31~1.1/library/stats"
 > find.package(c("stats", "stats"))[1]
[1] "C:/Program Files/R/R-3.1.1/library/stats"

So I'm not sure how to get at a working path to Bioconductor.sty in the face of 
spaces in the installed path name (the warning hints that R has similar problems).

> administrator and put BiocStyle in my Program Files library, I get
>> latex()
> \RequirePackage{C:/Program
> Files/R/R-3.1.0/library/BiocStyle/sty/Bioconductor}
> \AtBeginDocument{\bibliographystyle{C:/Program
> Files/R/R-3.1.0/library/BiocStyle/sty/unsrturl}}
> Which of course will fail. So the best option is to stop running R as an
> administrator, and install packages in your Documents folder in a path with
> no spaces.
> Best,
> Jim
> On Mon, Oct 6, 2014 at 4:34 PM, Neumann, Steffen <sneumann at ipb-halle.de>
> wrote:
>> Hi,
>> sometimes I am forced to R CMD check packages on windows,
>> and my problem is that both the system-wide library and
>> the personal library with BiocStyle contain spaces, so that
>> BiocStyle::latex() results in:
>> \RequirePackage{C:/Program
>> Files/R/R-3.1.0/library/BiocStyle/sty/Bioconductor}
>> which causes MiKTeX to fail with
>> ! LaTeX Error: File
>> `C:/ProgramFiles/R/R-3.1.0/library/BiocStyle/sty/Bioconductor.sty' not
>> found.
>> (This is with BiocStyles-1.3.15)
>> What is the recommended solution here ? Installing R to a non-standard
>> location ?
>> Use texlive instead of miktex (does that make a difference ?) Or something
>> else ?
>> Yours,
>> Steffen
>> _______________________________________________
>> Bioc-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel

Dr. Martin Morgan, PhD
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

More information about the Bioc-devel mailing list