2011-08-29 19 views
5

私はsweave内のechoの出力の幅に問題があります。大量のテキストを含むリストがあります。問題は、Rからのエコー応答がpdf内のページを実行することです。私は使用しようとしましたSweaveを使用してエコー幅を制御する方法

<<>>= 
options(width=40) 
@ 

しかし、これは何も変更されていません。

例:リストを設定します(ラテックスには表示されません)。

<<echo=FALSE>>= 
my_list <- list(example="Site location was fixed using a Silvia Navigator handheld GPS  in October 2003. Point of reference used was the station Bench Mark. If the bench mark location was remote from the site then the point of reference used was changed to the 0-1 metre gauge. Bench Mark location was then recorded as a separate entry in the Site History section [but not used as the site location].\r\nFor a Station location map and all digital photograph's of the station, river reach, and site details see H:\\hyd\\dat\\doc. For non digital photo's taken prior to October 2003 please see the relevant station file at Tumut office.") 
@ 

リストのエントリを表示します。

<<>>= 
my_list 
@ 

私はこれがcat文でリストを分割することなく動作するように得ることができる方法はあります。

+1

これはMacで完璧に動作します。あなたのラテックスのインストールとプラットフォームの詳細を提供することができます – Ramnath

+1

texshop 2.43を使用してMacで。 TeXバージョン3.1415926(TeX Live 2010)。 R 2.13.0。それは私のマシン上で動作しますが、テキストはpdfのページから実行されます。 –

+0

「あなたのマシン」とはなんですか? –

答えて

3

capture.output()を使用すると、リストの印刷された表現をキャプチャしてから、writeLines()strwrap()を使用して、きれいにラップされたこの出力を表示できます。 capture.output()は、オブジェクトの印刷された表現を含む文字列のベクトルを返しますので、それぞれをスクリーン/ページにキャッチできますが、strwrap()を使用して折り返します。

writeLines(strwrap(capture.output(my_list))) 

生成します:

$example 
[1] "Site location was fixed using a Silvia Navigator 
handheld GPS in October 2003. Point of reference used 
was the station Bench Mark. If the bench mark location 
was remote from the site then the point of reference used 
was changed to the 0-1 metre gauge. Bench Mark location 
was then recorded as a separate entry in the Site History 
section [but not used as the site location].\r\nFor a 
Station location map and all digital photograph's of the 
station, river reach, and site details see 
H:\\hyd\\dat\\doc. For non digital photo's taken prior 
to October 2003 please see the relevant station file at 
Tumut office." 
+0

ありがとうございましたGavin、治療をします。 –

1

を2010投稿から、マーク・シュワルツによってrhelpするために、このアプローチの利点は、結果に見えるそれはR.によって印刷されたようにここで解決策だということです。

cat(paste(strwrap(x, width = 70), collapse = "\\\\\n"), "\n") 
+0

うわー。それは2時間前か89年後のことでしたか? ;-) – Andrie

+1

あなたはマークがタイムロードであることを知らなかったのですか? –

関連する問題