我知道如何使用自定义css文件更改R markdown样式。但是,当更改很小时,我更喜欢内部或内联css,以节省管理两个文件的麻烦。我用谷歌搜索,并没有找到解决方案。下面是使用外部css文件更改样式的简单示例。有没有办法用内部或内联css来做?
R降价文件:
---
title: "test"
output:
html_document:
css: test.css
---
## Header 1 {#header1}
But how to change style with internal css?
test.css文件:
#header1 {
color: red;
}
答案 0 :(得分:7)
Markdown接受原始HTML并将其传递给不变,因此将“样式”元素定义为HTML:
<h2 style="color: red;">Header 1</h2>
当然,有些工具实际上并不允许原始HTML传递(出于安全原因或最终输出不是HTML),因此您的里程可能会有所不同。
根据您正在使用的Markdown实现,您可以在属性列表中定义样式(如果它支持任意键):
## Header 1 {style="color: red;"}
但是,这是最不可能工作的。
请记住,HTML <style>
标记不需要在文档<head>
中工作。如果您可以使用原始HTML,则可以在文档正文中包含<style>
元素(如评论中@ user5219763所指出的):
---
title: "test"
output:
html_document
---
<style>
#header1 {
color: red;
}
</style>
## Header 1 {#header1}
But how to change style with internal css?
答案 1 :(得分:1)
如果您不想创建一个外部.css文件,但是想定义几种样式并希望使您的代码不那么拥挤,那么另一种可能性是在 css 块中使用R降价的开始:
---
title: "test"
output: html_document
---
```{css, echo = FALSE}
#header1 {
color: red;
}
```
## Header 1 {#header1}
在 css 块中,您可以控制多种样式,就像在外部.css文件中一样。
答案 2 :(得分:0)
另一种棘手的选择是在脚本中指定一个css文件,然后在第一个块中创建它。
例如.Rmd
文件的前18行:
---
title: "Something Important"
output:
html_document:
css: mystyle.css
---
```{r b, echo=F}
writeLines("td, th { padding : 6px }
th { background-color : coral ;
color : white;
border : 1px solid white; }
td { color : black ;
border : 1px solid skyblue }
h1, h2, h3, h4, h5, p { font-family: consolas; ",
con = "mystyle.css")
```
在上面,我首先在markdown的标题块中引用文件mystyle.css
。然后,我使用writeLines()
创建文件,并将其保存到用con = ...
指定的文件中。
就个人而言,我认为最好的选择是将代码放在一个<script></script>
标签之间,如果它是一次性的R脚本。
但是,如果您想创建一个外部文件,但又不想编辑一个单独的文件,则上述方法提供了一种解决方法。感觉很奇怪。