6

2 番目の Latex ファイルを書き込もうとしています

\documentclass{article}
\title{simple Sweave script}
\usepackage{/Users/Brenden/Documents/R/R-2.15.1/share/texmf/tex/latex/Sweave}
\begin{document}
\maketitle
 This is a simple script to demonstrate Sweave. Let's
 begin by generating some results
<<>>=
x=rnorm(30)
y=rnorm(30)
mean(x)
cor(x,y)
@
and follow that up with some random text
\end{document}

拡張子 .Rnw で保存されたファイル。次に、R の下で Sweave を使用して、ファイルを tex に変換できます。次に、cmd の下で pdflatex を実行して、.pdf ファイルを取得します。R は /Users/Brenden/Documents に保存されます。MiKTex は /Users/Brenden/Desktop に保存されます。

R で Sweave を実行すると、/Users/Brenden/Documents に格納されている tex ファイルに「usepackage{Sweave}」の行が追加されるため、通常は「usepackage」の行は必要ないと言われています。ただし、userpackage 行を入れないと、cmd の下 (/Documents または /Desktop の下) で pdflatex を実行すると、「Sweave.sty が見つかりません」というメッセージが表示されます。そのため、問題を回避するために詳細なパスを含む usepackage の行を常に追加することで、この問題を解決してきました。「Sweave.sty not found」の問題は回避されていますが、cmd で pdflatex を実行すると、応答が得られたことに気付きました。

LaTeX Warning: You have requested package '/Users/Brenden/Documents/R/R- 
2.15.1/share/texmf/tex/latex/Sweave', but the package provides "Sweave'.

次に、MiKTex の下で .sty を使用していくつかのファイルを実行します

(C:\Users\Brenden\Desktop\MiKTex\tex\latex\base\ifthen.sty)
(C:\Users\Brenden\Desktop\MiKTex\tex\latex\graphics\graphicx.sty)
(C:\Users\Brenden\Desktop\MiKTex\tex\latex\graphics\keyval.sty)
(C:\Users\Brenden\Desktop\MiKTex\tex\latex\graphics\graphics.sty)
(C:\Users\Brenden\Desktop\MiKTex\tex\latex\graphics\trig.sty)
...

最終的に .pdf を作成する

Stackoverflow の別の投稿から、「そのパスは、LaTeX をインストールすると自動的に設定されます。これは個人の texmf ツリーであり、LaTeX に見つけてもらいたい任意のスタイル ファイルまたはクラス ファイルをそこに置くことができます。ディレクトリ名は問題ではありません。 Sweave.sty を再帰的に検索します。」ただし、パスを指定しない限り、明らかに MiKTex は Sweave.sty を見つけることができませんでした。パスを指定しても、LaTex から警告が表示されます。パスを指定せずに MiKtex が Sweave への道を見つけるのを助けることができるように、どこで失敗したか (おそらく MiKTex のインストール中に?) を誰かに説明してもらえますか?

ありがとうございました。

4

5 に答える 5

7

MiKTeX 設定プログラムには、「ルート」というタブがあります。.sty追加のファイルが見つかる場所を指定できるのはそこです。C:\Users\Brenden\Documents\R\R-2.15.1\share\texmfあなたの場合、追加のルートとして追加したいと思うでしょう。これを行うと、TeX プログラムのいずれかが、Sweave.styR 内から実行されているか、コマンド ラインから実行されているかを検出できます。

于 2012-10-22T18:50:43.153 に答える
6

このような小悪魔 (新しい概念texmf tree、無限の環境変数、、、TEXINPUTS... SWEAVE_STYLEPATH_DEFAULT) に常に気を取られているのは面倒です。を使用すれば、LaTeX パッケージについて心配する必要はありません。また、Sweave スタイルが好きな場合は、次のようにドキュメントにknitr簡単に入れることができます。render_sweave()

\documentclass{article}
\title{simple Sweave script}
<<setup, include=FALSE>>=
render_sweave()
@

\begin{document}
\maketitle
 This is a simple script to demonstrate Sweave. Let's
 begin by generating some results
<<>>=
x=rnorm(30)
y=rnorm(30)
mean(x)
cor(x,y)
@
and follow that up with some random text
\end{document}

名前を付けて保存し、test.Rnwコンパイルします

library(knitr); knit('test.Rnw') # or knit2pdf('test.Rnw')

そして、私はあなたがおそらくないほうがよいと思いますrender_sweave()(つまり、デフォルトの LaTeX スタイルを使用しますknitr)。

于 2012-10-29T01:49:18.383 に答える
3

他の投稿で言及されているパスは、Sweave が配置する場所ではなく、個人の texmf ツリーへのパスであると思われます。1 つのオプションは、それを個人の texmf ツリーに移動することですが、最近の通常の方法は、次のように R 内から pdflatex を実行することだと思います。

texi2dvi("foo.tex", pdf = TRUE)

追加することで、Sweaveにフルパスを自動的に追加させることもできると思います

export SWEAVE_STYLEPATH_DEFAULT="TRUE"

あなたの.bashrcファイル、またはあなたのシステム上にある同等のものなら何でも。

于 2012-10-22T18:51:40.863 に答える
2

コマンド ラインで、R CMDWindows などで R を実行するのに適した変数を使用して環境をセットアップします。

C:\Users\mtmorgan> "c:\Program Files\R\R-2.15.1\bin\R" CMD set

setインクルード (コマンドラインで入力した場合、これは見つかりません)

TEXINPUTS=.;c:/PROGRA~1/R/R-215~1/.1/share/texmf/tex/latex;

など

C:\Users\mtmorgan> "c:\Program Files\R\R-2.15.1\bin\R" CMD pdflatex myfile.tex

Sweave.sty が見つかります。また、tools::texi2dviR 内から呼び出すこともできます。

于 2012-10-22T20:00:44.467 に答える
0

私は最終的に次の解決策に行き着きます:

install.packages("tinytex")   
require("tinytex")}
install_tinytex(force = TRUE)

Sweave(  "Report.Rnw" , encoding = "utf8" )  
xelatex('Report.tex')

このコードはTinyTexをインストールすると、 pdflatex()xelatex()またはlualatex( ) でコンパイルできます。

于 2019-02-19T14:16:05.020 に答える