[R-SIG-Mac] checking for pdflatex

John Fox jfox at mcmaster.ca
Tue Mar 17 02:12:07 CET 2015


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.



More information about the R-SIG-Mac mailing list