こちらのサイトを参考にした。
まず、ターミナルで「pdflatex」の場所を確かめる。whichを使う。
$ which pdflatex
/usr/texbin/pdflatex
ちなみに「R」の場所はこちら。
$ which r
/usr/bin/r
「pdflatex」が入っていることを確認した。mac側ではなくR側の問題ということになる。
Rがソフトウェアを認識するかどうかは、Sys.which()で知ることができる。
たとえば「R」を探すなら、
> Sys.which("r")
r
"/usr/bin/r"
という具合。ターミナルでみたときと同じ。
上のエラーが出ている状態で「pdflatex」を探してみると、
> Sys.which("pdflatex")
pdflatex
""
どうやら認識していないことがわかる。
これはPATHの問題。RのPATHを調べるには、Sys.getenv()を使う。
> Sys.getenv("PATH")
[1] "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"
いくつかPATHがあるが、「/usr/texbin」がない。
これがエラーの元凶。
PATHを通す作業を行う。そのためには、Sys.setenv()を使う。
既存のPATHと「/usr/texbin」をpaste()で繋げるところがRっぽい。
Sys.setenv(PATH = paste(Sys.getenv("PATH"), "/usr/texbin", sep=":"))
これで、PATHが追加された。
> Sys.getenv("PATH")
[1] "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin"
Rが「pdflatex」の場所を知ることができるようになった。
> Sys.which("pdflatex")
pdflatex
"/usr/texbin/pdflatex"
これで、「pdflatex is not available」というエラーが出なくなる。