在knitr中的所有文本周围添加div

时间:2014-01-08 00:46:40

标签: r knitr

我正在尝试将以下div和类添加到knitr中的整个Rmd文件中:

<div class="container">
</div>

我使用css创建了容器类,如下所示:

.container {
    box-shadow: 10px 10px 5px #888888;
    width: 70%;
    margin: 15em auto 5em;
    margin-bottom:-9em;
    margin-top:5em;
    background: #FFF;
}
.container p {
    padding-left: 14%;
    padding-right: 10%;
    text-indent : 1.25cm;
}
body {
   background: #efefef;
}

我通常会使用style.css来添加它,但对于MWE,我们将它放在最后的MW Rmd文件的主文档主体中。我将整个文档包含在div类的container中,并获得此输出HERE。请注意标题# Hello World未作为标题处理? div标记中的任何内容都不会被处理为html。我可以通过在没有div容器的情况下运行knitr然后稍后添加它来解决此问题:(The HTMLThe Rmd)。

如何直接将div标记添加到Rmd文件中?

<div class="container">

# Hello World
```{r setup, include=FALSE}
opts_chunk$set(cache=FALSE)
library(knitr); library(knitcitations); 
```

<style>
.container {
box-shadow: 10px 10px 5px #888888;
    width: 70%;
    margin: 15em auto 5em;
    margin-bottom:-9em;
    margin-top:5em;
    background: #FFF;
}
.container p {
    padding-left: 14%;
    padding-right: 10%;
    text-indent : 1.25cm;
}
body {
   background: #efefef;
}
</style>

</div>

1 个答案:

答案 0 :(得分:1)

使用自定义模板将Rmd包装在<div class="container"></div>

<!DOCTYPE html>
<html>
    <head>
        <title>#!title#</title>
    </head>
    <div class="container">
        #!html_output#
    </div>
</html>

然后在编织时调用模板

knit2html('document.Rmd', template='template.html', title='Page title')

这样您还可以向模板添加自定义style.css