[R-SIG-Mac] checking for pdflatex

John Fox jfox at mcmaster.ca
Tue Mar 17 16:24:14 CET 2015


Dear Simon,

> -----Original Message-----
> From: Simon Urbanek [mailto:simon.urbanek at r-project.org]
> Sent: March-17-15 10:48 AM
> To: jfox at mcmaster.ca
> Cc: JJ Allaire; Berend Hasselman; r-sig-mac at r-project.org
> Subject: Re: [R-SIG-Mac] checking for pdflatex
> 
> 
> > On Mar 17, 2015, at 10:41 AM, John Fox <jfox at mcmaster.ca> wrote:
> >
> > Dear Simon,
> >
> > Sorry to prolong this, but I have two additional questions:
> >
> > (1) Is there a reason that R.app uses a different default PATH than R in a
> terminal window does? That is, why not make them the same? I suspect that
> there's a consideration that I'm not aware of.
> >
> 
> See the FAQ I was pointing to.

Yes, I did read that, but it's really more an explanation of *what* happens rather than *why* R.app doesn't circumvent this behaviour, and the Apple technical Q&A linked to is labelled "Retired Document." 

> 
> 
> > (2) Would it still be objectionable if I reverted to the previous solution of
> having the Rcmdr package add "/usr/texbin" to the current PATH if it's not
> already present rather than replacing the PATH? Though that wouldn't be as
> bullet-proof, it would cover the large majority of cases,  and wouldn't
> potentially surprise a user by removing a directory from the PATH.
> >
> 
> I guess that would be less disruptive. If the user has picked a custom order at
> least it would be preserved. But as noted earlier I also think that this should
> be better fixed in rmarkdown - preferably by using the full path so it doesn't
> depend on PATH. I'm told RStudio is providing pandoc binaries so I would
> guess it's easy for them to guarantee the functionality but JJ is included so he
> can weigh in.

Yes, and RStudio also uses a PATH that includes pdflatex. But rmarkdown is intended to work outside of RStudio too and won't under R.app if pdflatex isn't on the PATH.

No need to respond further.

Thanks again for your time.

John

> 
> Cheers,
> Simon
> 
> 
> 
> > Thanks,
> > John
> >
> >> -----Original Message-----
> >> From: Simon Urbanek [mailto:simon.urbanek at r-project.org]
> >> Sent: March-17-15 10:34 AM
> >> To: JJ Allaire
> >> Cc: jfox at mcmaster.ca; Berend Hasselman; r-sig-mac at r-project.org
> >> Subject: Re: [R-SIG-Mac] checking for pdflatex
> >>
> >> JJ,
> >>
> >> this is unrelated - this is about apps started via LS not using shell
> >> profiles. (The issue you refer to has been fixed long time ago on our end).
> >>
> >> Cheers,
> >> Simon
> >>
> >>
> >>
> >>> On Mar 17, 2015, at 6:21 AM, JJ Allaire <jj at rstudio.com> wrote:
> >>>
> >>> 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
> >>> -
> >> g
> >>> ui-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
> >>>>>>>> .s
> >>>>>>>> ep)
> >>>>>>>> )
> >>>>>>>>>> }
> >>>>>>>>>
> >>>>>>>>> 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/b
> >>>>>>>> in
> >>>>>>>> :/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
> >>>>
> >>>
> >
> >
> > ---
> > 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