\Sexpr{}
\begin{document} コマンドの後、\maketitle コマンドの前に、LaTeX ドキュメントのタイトルでKnitr/Sweave インライン呼び出し ( ) を使用したいと思います。インライン R コードは、LaTeX に埋め込んでいる R スクリプトの早い段階で作成された R データ フレームから 1 つまたは 2 つの情報を抽出します。
タイトルに入れたい情報を取得する data.frame を作成する Knitr チャンクがいくつかあります。次のように、これらのチャンクを LaTeX の \begin{document} 呼び出しと \title コードの間に配置しようとしました。
\documentclass
[LaTex Preamble]
\begin{document}
[%% Knitr chunks that initialize an R data-frame]
\title \Sexpr{--a snippet of R code that extracts an element from the data-frame --}
\maketitle
... (rest of the LaTeX document)
また、 \begin{document} ステートメントの前に、LaTeX コードのプリアンブルに Knitr チャンクを入れてみました。
しかし、Knitr では、LaTeX の \maketitle 呼び出しの前に配置されたコード (初期化以外) を無視するように見えるため、インライン スニペットに含まれるタイトルは Latex のエラーのように見え、出力が停止します。
LaTeXドキュメントのタイトルにインラインコードを含めることに関するKnitrドキュメントの情報が見つかりません。
何か案は?
OK: 以下の @ben-bolker からのヒントのおかげで解決策が見つかりました。Ben は、RNW ファイルに出力する前に R チャンクのフォーマットを使用します (2 段階の Knitr プロセス: latex -> rnw -> pdf) 。しかし、TeXShop 内 (Mac OSX 上) から RNW ファイルに移動することなく、LaTeX ファイルをワンステップで PDF にコンパイルしています。RNW 区切り記号 (<<>>=) と 1 ステップのコンパイルを使用して、Ben の例を機能させることができることがわかりました。しかし、通常の LaTeX チャンク区切り文字 (%%begin.rcode と %% end.rcode) と RNW インライン ステートメント フック (\Sexpr{}) を混在させることはできませんでした。後者は、どういじってもうまくいきませんでした。最終的に、LaTeX の正しいインライン フックは\\rinline{}であることがわかりました。
これがLaTeXに必要な形式であることはKnitrのドキュメントではあまり明確ではなく、主にBenの例のおかげで最終的に見つけました。ベスト、ピーター
更新 2 ... そして、RTFM (またはこの場合は「チート シート」) があります: http://cran.r-project.org/web/packages/knitr/vignettes/knitr-refcard.pdf