29

Windows で、R に MikTeX の代わりに TeXlive を呼び出すように指示するにはどうすればよいですか?

Linux および Windows マシンに R をセットアップしました。私の Windows マシンでは、たまたま MikTeX と TeXlive の両方が利用可能です。理由については触れませんが、R に TeXlive を呼び出してもらいたいと思います。現在、R は代わりに MikTeX を採用しています。

Renviron ファイルなどに TEXINPUTS を設定する必要があると思います。しかし、オンラインで正確な指示を見つけることができませんでした。助けていただければ幸いです。

更新: ここに私が試したさまざまなことがあります: PATH 内の TeXlive と MikTeX の順序を変更します。パスから MikTeX を削除します。どちらも機能せず、MikTeX はまだ取り上げられています。

R の関連ドキュメントは見つかりませんでしたが、RStudio のドキュメントにいくつかのヒントがあったので、RStudio 内で問題を解決しようとしました。RSTUDIO_PDFLATEX 環境変数を正常に定義しました。

Sys.getenv('RSTUDIO_PDFLATEX')
[1] "C:/texlive/2012/bin/win32"

[参考:http://www.rstudio.com/ide/docs/authoring/latex_program?version=0.97.312&mode=desktop]

しかし、MikTeX はまだ必要とされています。

Sys.which("pdflatex")
                                         pdflatex 
"C:\\PROGRA~2\\MIKTEX~1.9\\miktex\\bin\\pdflatex.exe" 

更新 2: 私が試したもう 1 つのこと: R 内から追加した場合に備えて、texlive が既に PATH にある間。

Sys.setenv("PATH" = paste(Sys.getenv("PATH"),"C:/texlive/2012/bin/win32",sep=":"))

また、次のように Sys.which("pdflatex") によって返される pdflatex へのパスを設定しようとしました。

Sys.setenv(pdflatex="C:/texlive/2012/bin/win32")

PDFLATEX または "PDFLATEX" のバリアントと同様ですが、それは役に立ちません。また、パスから texlive へのパスを除くすべてを削除しました。

Sys.setenv("PATH" = "C:/texlive/2012/bin/win32")

それは私に望ましい道を与える

Sys.which("pdflatex")
                                 pdflatex 
"C:\\texlive\\2012\\bin\\win32\\pdflatex.exe" 

ただし、texi2dvi の実行は失敗します。

tools::texi2pdf(Out)
Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet,  : 
pdflatex is not available
4

2 に答える 2

2

私は同様のプロジェクトで同じ問題に直面し、トリックを理解するのに時間を費やしました. パスをクリーンアップしても MikTeX が選択されているという事実は、MikTeX をインストールすると、かなりの数の Windows レジストリ エントリが設定されるというやや腹立たしい事実 (特に、私や他の人のような *nix 指向の開発者にとって) に起因します。ポータブル MikTeX (win32 のみ) ディストリビューションは、これに対する唯一の例外です。したがって、MikTeX が搭載されている必要がある場合、私のアドバイスは、私が行ったことを実行することです。

  1. 現在の MikTeX ディストリビューションをアンインストールします
  2. レジストリをクリーンアップします (ccleaner はうまくいきました)
  3. ポータブル win32 MikTeX ディストリビューションをインストールする

パスに TeXlive bin ディレクトリ パスが含まれていることを再度確認します。
Rmarkdown またはその他のマークダウン言語から pdf ファイルを作成するために pandoc を使用する場合、パスの問題を回避する便利な方法は、--latex-engineオプションを指定し、完全なファイルパスを引数として追加することです。以下は、RStudio IDE から適用された、可能なコマンド ラインです。
path/to/pandoc.exe -V papersize=A4 +RTS -K512m -RTS file.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash-implicit_figures --output file.pdf --template path/to/default.tex --highlight-style tango --latex-engine /path/to/pdflatex.exe --variable geometry:margin=1in

于 2015-11-27T16:22:58.053 に答える
0

グローバル環境変数にここにパスを追加する必要があると確信しています。参照: http://statmath.wu.ac.at/software/R/qfin/およびhttp://www.howtogeek.com/51807/how-to-create-and-use-global-system-environment-variables /

于 2015-11-04T20:37:18.217 に答える