我想\Sexpr{}
在\ begin {document}命令之后但在\ maketitle命令之前使用LaTeX文档标题中的Knitr/Sweave内联调用().内联R代码将从我在LaTeX中嵌入的R脚本中早期创建的R数据帧中提取一条或两条信息.
我有几个Knitr块创建了一个data.frame,我从中获取了我想要放入Title的信息.我尝试在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)
Run Code Online (Sandbox Code Playgroud)
我还尝试在\ begin {document}语句之前将Knitr块放在LaTeX代码的序言中.
但是在Knitr中似乎忽略了放在LaTeX中\ maketitle调用之前的代码(初始化除外),因此内联片段包含标题看起来像Latex的错误并且它会停止输出.
我在Knitr文档中找不到有关在LaTeX文档的标题中包含内嵌代码的任何信息.
有任何想法吗?
好的:感谢下面@ ben-bolker提示的解决方案.Ben在输出到RNW文件之前使用R块的格式(在2步Knitr过程中:latex - > rnw - > pdf).但我正在一步编译LaTeX文件,而不是从TeXShop内部(在Mac OSX上)转到RNW文件.我发现我可以让Ben的例子使用RNW分隔符(<< >> =)和一步编译.但我无法混合通常的LaTeX块分隔符(%% begin.rcode和%% end.rcode)和RNW内联语句钩子(\ Sexpr {}).无论我如何摆弄它,后者都无法奏效.最终我发现LaTeX的正确内联钩子是\\ rinline {}.
在Knitr文档中不太清楚这是LaTeX所需的格式,我发现它最终主要归功于Ben的例子.最好,彼得
更新2 ...然后是RTFM(在这种情况下是'备忘单'):http://cran.r-project.org/web/packages/knitr/vignettes/knitr-refcard.pdf
嗯.以下文件适合我:
\documentclass{article}
<<echo=FALSE>>=
x <- 5
@
\title{The number is \Sexpr{x^2}}
\begin{document}
\maketitle
Some stuff
\end{document}
Run Code Online (Sandbox Code Playgroud)
在Ubuntu 10.04上使用knitr 0.8版,通过knit2pdf("knitr_title.Rnw")
......