knitr chunk选项控制行间距,输出中的字体大小

时间:2013-11-20 13:40:48

标签: latex font-size knitr

我希望能够更好地控制用于的字体大小和行间距 通过LaTeX编写代码块和R输出。使用默认的render_latex(),我知道我可以 使用(在我的可预测中)全局设置

\renewenvironment{knitrout}{\small\renewcommand{\baselinestretch}{.85}}{} 
...
\begin{document}

但是,假设有一些块我想在\脚注中打印,或者在其他一些中自定义 办法。我知道我可以使用LaTeX组来完成这项任务,但不能使用knitrout环境:

{\small
\renewcommand{\baselinestretch}{.85}
<<arth-csv, eval=FALSE, results='asis'>>=
ID,Treatment,Sex,Age,Improved
57,Treated,Male,27,Some
46,Treated,Male,29,None
...
71,Placebo,Female,68,Some
1,Placebo,Female,74,Marked
@
}

使用render_listings()和listing包吗?

会更容易吗?

我可以使用自定义块选项和块挂钩来实现更好的控制吗?

1 个答案:

答案 0 :(得分:4)

为了部分回答我自己的问题,我发现了knitr size= chunk选项,它只适用于AFAIK render_latex()和精彩集锦。因此,对于要在脚注大小中设置的宽输出,我可以使用

<<tv3, size="footnotesize">>=
TV <- TV[,,1:3,]     # keep only ABC, CBS, NBC
TV <- TV[,,,3]       # keep only Persist -- now a 3 way table
structable(TV)
@

此外,我上面使用的results='asis'示例应该只使用verbatim LaTeX环境完成, 不像代码块那样。即使我使用过eval=FALSE,knitr也会尝试解析文本并生成警告。

{\footnotesize
\renewcommand{\baselinestretch}{.85}
\begin{verbatim}
ID,Treatment,Sex,Age,Improved
57,Treated,Male,27,Some
46,Treated,Male,29,None
...
71,Placebo,Female,68,Some
1,Placebo,Female,74,Marked
\end{verbatim}
}