5

Sweaveドキュメントの出力でカラーシンタックスハイライトが機能するようになった人はいますか?Sweave.sty次のようにファイルにボックスなどを追加することで、出力スタイルをカスタマイズすることができました。

\DefineVerbatimEnvironment{Sinput}{Verbatim}{fontseries=bc,frame=single}
\DefineVerbatimEnvironment{Soutput}{Verbatim}{frame=leftline}
\DefineVerbatimEnvironment{Scode}{Verbatim}{fontseries=bc}

そして、次のように、mintedパッケージでドキュメント内の逐語的なコードブロックの構文の強調表示を行うことができます。

\begin{minted}{perl}
use Foo::Bar;
...
\end{minted}

しかし、R入力セクションの2つを組み合わせる方法がわかりません。私は次のことを試しました:

\DefineVerbatimEnvironment{Sinput}{minted}{r}
\DefineVerbatimEnvironment{Scode}{minted}{r}

助言がありますか?

4

4 に答える 4

5

はい、たとえば(1つだけを選択するために)Rcpp-FAQ pdfのように、 Rcppのビネットのいくつかを見てください。

Romainによるハイライトを使用します。これ自体は、AndreSimonによるハイライトバイナリにまで拡張できます。それはすべてをもう少し複雑にします---ビネットなどのMakefilespp---しかし、RおよびC /C++コードからカラフルな出力を取得します。それはそれだけの価値があります。

于 2011-01-26T20:35:59.617 に答える
5

私は私のために働いた解決策を持っています、しかし私は他のどのシステムでもそれを試していません、それで物事はあなたのために箱から出してうまくいかないかもしれません。https://gist.github.com/797478にいくつかのコードを投稿しました。これは、逐語的なブロックの代わりにミントブロックを使用する変更されたRweaveドライバー関数のセットです。

このドライバーを使用するには、driver = RweaveLatexMinted()オプションを指定してSweave関数を呼び出すときに指定するだけです。

于 2011-01-26T21:24:43.300 に答える
4

@daroczigの提案から始めて、これが私がそれを解決することになった方法です。

\usepackage{minted}

\renewenvironment{Sinput}{\minted[frame=single]{r}}{\endminted}
\DefineVerbatimEnvironment{Soutput}{Verbatim}{frame=leftline}
\DefineVerbatimEnvironment{Scode}{Verbatim}{}

大きなデータセットを使用していて、1つのチャンクが完了するまでに約3分かかっていたため、キャッシュを機能させる必要がありました。そこで、キャッシュを使用してファイルzshを処理するために、このシェル関数を作成しました。.Rnw

function sweaveCache() {
    Rscript -e "library(cacheSweave); setCacheDir(getwd()); Sweave('$1.Rnw', driver = cacheSweaveDriver)" &&
    pdflatex --shell-escape $1.tex &&
    open $1.pdf
}

これでsweaveCache myFile、結果がプレビュー(OS X上)で開かれます。

于 2011-01-26T21:02:19.217 に答える
3

tex.StackExchangeに関するこのトピックは、簡単な解決策としてSweaveListingUtilsパッケージをRにロードすることを提案しているため、興味深いかもしれません。

于 2011-01-26T18:16:40.293 に答える