2012-10-05 9 views
11

\ begin {document}コマンドの後で\ maketitleコマンドの前に、LaTeXドキュメントのタイトルにKnitr/Sweaveインラインコール(\Sexpr{})を使用したいと思います。インラインRコードは、LaTeXに埋め込まれているRスクリプトの初期に作成されたRデータフレームから1つまたは2つの情報を抽出します。ラテックス文書のタイトルにニットインライン式を使用できますか?

私は、タイトルに入れる情報を得るためのdata.frameを作成するKnitrチャンクをいくつか持っています。

\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) 

私も前にLaTeXコードを前文にKnitrチャンクを入れてみました\:私はこのような、{文書}コールと\タイトルコードを開始\ LaTeXの者の間でこれらのチャンクを配置しようとしましたbegin {document}ステートメント。

しかし、Knitrは、LaTeXの\ maketitle呼び出しより先に配置されたコード(初期化以外)を無視しているようです。そのため、タイトルを含むインラインスニペットはLatexのエラーのように見え、出力を停止します。

LaTeX文書のタイトルにインラインコードを含めることに関する情報は、Knitrのドキュメントでは見つかりません。

アイデア?


OK:下記の@ ben-bolkerのヒントのおかげで解決策が見つかりました。 BenはRNWファイルへの出力前にR塊のフォーマットを使用します(2ステップKnitrプロセス:latex→rnw→pdf)。しかし、私はTeXShop(Mac OSX上)からRNWファイルに行くことなく、LaTeXファイルをPDFにコンパイルしています。 RNW区切り文字(< < >> =)とワンステップコンパイルを使用してBenの例を得ることができました。しかし、通常のLaTeXチャンク区切り文字(%% begin.rcodeと%% end.rcode)とRNWのインライン・ステートメント・フック(\ Sexpr {})を混在させることはできませんでした。後者は、私がそれをどのように手にしても機能しませんでした。最終的にLaTeXの正しいインラインフックは\\ rinline {}であることがわかりました。

これはLaTeXに必要なフォーマットであることはあまり明確ではないので、主にBenの例のおかげで主に見つけました。ベストピーター


アップデート2 ...そしてありますRTFM(またはこの場合の 'チートシート')http://cran.r-project.org/web/packages/knitr/vignettes/knitr-refcard.pdf

+0

'\ Sexpr {}'ドキュメント内のどこにでも使用することができます。うまくいかない場合は、再現可能な最小限の例がここで大いに役立ちます。 –

+2

答えとして見つけた解決策を書いて、質問を変更しないでください。 – Dason

+0

あなた自身の答えで解決策を書くことができますか? – Kev

答えて

5

うーん。下記のファイルは、私の作品:

\documentclass{article} 
<<echo=FALSE>>= 
x <- 5 
@ 
\title{The number is \Sexpr{x^2}} 
\begin{document} 
\maketitle 

Some stuff 
\end{document} 

のUbuntu 10.04上knitrバージョン0.8で、knit2pdf("knitr_title.Rnw")経由... enter image description here

+0

ありがとう、@ ben-bolker。私はこれを自分で解決しましたが、あなたの解決策が私に与えたヒントのせいでほとんどです。上記を参照。 –

関連する問題