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

Martin Morgan mtmorgan at fhcrc.org
Tue Oct 7 02:33:40 CEST 2014


On 10/06/2014 04:52 PM, Henrik Bengtsson wrote:
> Maybe you could use
>
> \RequirePackage{Bioconductor}
>
> and then set the TEXINPUTS environment variable via Sys.setenv().
> Internally tools::texi2dvi() is used that that "listens to" TEXINPUTS.

Thanks; I think that would require 'us' to run texi2dvi (otherwise the 
environment variable isn't seen by texi2dvi) and that sounds like writing a 
Sweave driver, or worse. latex() could be modified to be passed a flag or path 
indicating a TEXINPUTS directory where bioconductor.sty could be found, but that 
doesn't sound like a robust strategy (e.g., because the specially-installed sty 
file becomes out of sync with the version in the package). Hopefully there is a 
simpler solution.

Martin

>
> Just FYI: I use this trick in
> https://github.com/HenrikBengtsson/R.rsp/blob/master/R/compileLaTeX.R
> to set/fix/update TEXINPUTS temporarily, but for somewhat different
> reasons.  There you also see take extra precautions to drop duplicates
> etc.
>
> /Henrik
>
> On Mon, Oct 6, 2014 at 3:21 PM, Martin Morgan <mtmorgan at fhcrc.org> wrote:
>> 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
>>
>> \RequirePackage{C:/PROGRA~1/R/R-31~1.0/library/BiocStyle/sty/Bioconductor}
>>
>> 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
>>
>>
>> _______________________________________________
>> Bioc-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel


-- 
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M1 B861
Phone: (206) 667-2793



More information about the Bioc-devel mailing list