Dear Simon, > -----Original Message----- > From: Simon Urbanek [mailto:[email protected]] > Sent: March-16-15 3:57 PM > To: [email protected] > Cc: Berend Hasselman; [email protected] > Subject: Re: [R-SIG-Mac] checking for pdflatex > > > > On Mar 16, 2015, at 3:43 PM, John Fox <[email protected]> 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:[email protected]] On Behalf Of > >> John Fox > >> Sent: March-16-15 2:45 PM > >> To: 'Berend Hasselman' > >> Cc: [email protected] > >> 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:[email protected]] > >>> Sent: March-16-15 2:34 PM > >>> To: [email protected] > >>> Cc: Simon Urbanek; [email protected] > >>> Subject: Re: [R-SIG-Mac] checking for pdflatex > >>> > >>> John, > >>> > >>>> On 16-03-2015, at 18:53, John Fox <[email protected]> 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 > >> [email protected] > >> 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. _______________________________________________ R-SIG-Mac mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-sig-mac
