[R-SIG-Mac] checking for pdflatex

JJ Allaire jj at rstudio.com
Tue Mar 17 11:21:19 CET 2015


Sounds like this may be targeted at fixing the OS X Yosemite bug
wherein some environment variables for GUI applications are
duplicated:

http://tex.stackexchange.com/questions/208181/why-did-my-tex-related-gui-program-stop-working-in-mac-os-x-yosemite

Until Apple fixes this issue I think that GUI applications need to
clean the duplicated environment variables received at launch time.
Here's what we do in RStudio:

https://github.com/rstudio/rstudio/commit/09c9be12




On Mon, Mar 16, 2015 at 9:12 PM, John Fox <jfox at mcmaster.ca> wrote:
> Dear Simon,
>
>> -----Original Message-----
>> From: Simon Urbanek [mailto:simon.urbanek at r-project.org]
>> Sent: March-16-15 3:57 PM
>> To: jfox at mcmaster.ca
>> Cc: Berend Hasselman; r-sig-mac at r-project.org
>> Subject: Re: [R-SIG-Mac] checking for pdflatex
>>
>>
>> > On Mar 16, 2015, at 3:43 PM, John Fox <jfox at mcmaster.ca> wrote:
>> >
>> > Dear all,
>> >
>> > I've now implemented Simon's solution, setting the path in the .onLoad()
>> function of the Rcmdr package and resetting it to its pre-existing value in
>> .onUnload(). This seems to work fine for me and, I hope, will be a more
>> robust solution.
>> >
>>
>> I don't think messing with PATH of the R process is a good idea - as a user I'd
>> be somewhat unpleasantly surprised if you changed the PATH of my running
>> session. I'm not quite sure what's your intention, but I would suggest using
>> the setting to locate the binary to run it explicitly - that is what R does
>> normally. If you rely on some scripts that you don't control, then I would
>> suggest setting it in the shell that you start the script with, but not in the R
>> process itself.
>
> That occurred to me, but the problem arises when a function in the rmarkdown package calls pandoc and pandoc fails to run pdflatex. I don't think that I have control over this.
>
> I'm cc'ing J. J. Alaire, the maintainer of the rmarkdown package in case he sees a solution in that package. The problem doesn't of course occur when rmarkdown is run from RStudio (or a terminal) but only from R.app, as I explained initially.  (J.J.: Please let me know if this is unclear, and I can send you the rest of this thread.)
>
> OTOH, I doubt whether Rcmdr users will care that the package alters the PATH of the R process (though it would be better to avoid that).
>
> Best,
>  John
>
>>
>> Cheers,
>> Simon
>>
>>
>>
>> > Thanks again to everyone for their help.
>> >
>> > John
>> >
>> >> -----Original Message-----
>> >> From: R-SIG-Mac [mailto:r-sig-mac-bounces at r-project.org] On Behalf Of
>> >> John Fox
>> >> Sent: March-16-15 2:45 PM
>> >> To: 'Berend Hasselman'
>> >> Cc: r-sig-mac at r-project.org
>> >> Subject: Re: [R-SIG-Mac] checking for pdflatex
>> >>
>> >> Dear Berend and Simon,
>> >>
>> >> I've now tried Berend's solution and it appears to work fine: If
>> >> necessary, I add /usr/texbin to the path when the Rcmdr GUI starts up
>> >> and restore the path to its previous state when it closes.
>> >>
>> >> I agree that Simon's solution will be more flexible since it should
>> >> work if pdflatex is located elsewhere (as long as it's on the path
>> >> reported by path_helper), and I'll give that a try as well.
>> >>
>> >> Thanks again for all the help,
>> >> John
>> >>
>> >>> -----Original Message-----
>> >>> From: Berend Hasselman [mailto:bhh at xs4all.nl]
>> >>> Sent: March-16-15 2:34 PM
>> >>> To: jfox at mcmaster.ca
>> >>> Cc: Simon Urbanek; r-sig-mac at r-project.org
>> >>> Subject: Re: [R-SIG-Mac] checking for pdflatex
>> >>>
>> >>> John,
>> >>>
>> >>>> On 16-03-2015, at 18:53, John Fox <jfox at mcmaster.ca> wrote:
>> >>>>
>> >>>> Dear Berend,
>> >>>> ….
>> >>>>>
>> >>>>> For what it’s worth: I have the following code in the .First
>> >>>>> function in
>> >>>>> ~/.Rprofile:
>> >>>>> (R 3.1.3 on OS X Yosemite)
>> >>>>>
>> >>>>>   if( .Platform$GUI == "AQUA" ) {
>> >>>>>       # this appends /usr/local/bin to what is already in PATH
>> >>>>>       # by default this is already in PATH (at least in 10.6.8)
>> >>>>>       # so remove any duplicated items
>> >>>>>       z <- Sys.getenv("PATH")
>> >>>>>       z <- unlist(strsplit(z,.Platform$path.sep,fixed=TRUE))
>> >>>>>       # add path to MacTeX executables for OS X Yosemite (which
>> >>>>> has a
>> >>> bug)
>> >>>>>       # in Terminal it is added automatically
>> >>>>>       z[length(z)+1] <- "/usr/texbin"
>> >>>>>
>> >>> Sys.setenv(PATH=paste(z[!duplicated(z)],collapse=.Platform$path.sep)
>> >>> )
>> >>>>>   }
>> >>>>
>> >>>> This should work fine if pdflatex is in /usr/texbin, which I now
>> >>>> understand is
>> >>> by far the most common case (and is the case on my Mac).
>> >>>>
>> >>>> Do you mind if I adapt your code for the Rcmdr? I can fix the path
>> >>>> in this
>> >>> manner at startup of the Rcmdr GUI and restore it to its initial
>> >>> value on exit from the GUI.
>> >>>>
>> >>>
>> >>> Go right ahead. Don’t forget it assumes MacTeX.
>> >>>
>> >>> But do also have a look Simon’s suggestion of using path_helper,
>> >>> which seems more flexible than my solution:
>> >>>
>> >>> I tried this in R-GUI
>> >>>
>> >>> system2("/usr/libexec/path_helper","-s", stdout=TRUE)
>> >>>
>> >>> and got this answer
>> >>>
>> >>> [1]
>> >>> "PATH=\"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/u
>> >>> sr
>> >>> /texbi
>> >>> n\"; export PATH;”
>> >>>
>> >>> which will have to be fiddled with to get something that is usable.
>> >>>
>> >>> Berend
>> >>>
>> >>>
>> >>>> Thanks for this,
>> >>>> John
>> >>>>
>> >>>>>
>> >>>>> Berend
>> >>>>
>> >>>>
>> >>>> ---
>> >>>> This email has been checked for viruses by Avast antivirus software.
>> >>>> http://www.avast.com
>> >>>>
>> >>
>> >>
>> >> ---
>> >> This email has been checked for viruses by Avast antivirus software.
>> >>
>> >> _______________________________________________
>> >> R-SIG-Mac mailing list
>> >> R-SIG-Mac at r-project.org
>> >> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>> >
>> >
>> > ---
>> > This email has been checked for viruses by Avast antivirus software.
>> > http://www.avast.com
>> >
>
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> http://www.avast.com
>



More information about the R-SIG-Mac mailing list