如何在R Markdown中不使用YAML参数引用bslib自定义主题?
在R Markdown中用bslib实现类似引用CSS的自定义主题调用
要实现你想要的theme: my_theme这种简洁引用方式,因为bslib主题本质是R对象,无法直接像纯CSS那样引用,但可以通过两种方式达到类似效果:
方法一:在Rmd内预定义主题对象,YAML直接引用
- 在Rmd的
setup代码块里定义自定义bslib主题:
```{r setup, include=FALSE} library(bslib) # 定义你的自定义主题 my_theme <- bs_theme( version = 5, # 指定Bootstrap版本 primary = "#2c3e50", # 主色调 secondary = "#3498db",# 辅助色 base_font = font_google("Inter"), # 基础字体 code_font = font_google("Fira Code") # 代码字体 )
2. 在YAML头部直接调用这个预定义的主题对象: ```yaml output: html_document: theme: !expr my_theme
方法二:将主题保存为外部文件,YAML加载引用
如果想和CSS文件一样把主题单独存成外部文件,步骤如下:
- 先在R控制台定义并保存主题为RDS文件:
library(bslib) my_theme <- bs_theme( version = 5, primary = "#2c3e50", secondary = "#3498db" ) # 保存到外部文件 saveRDS(my_theme, "my_theme.rds")
- 在Rmd的YAML头部加载这个外部主题文件:
output: html_document: theme: !expr readRDS("my_theme.rds")
两种方式都是通过!expr让YAML执行R代码,实现类似引用外部资源的简洁写法,加载预先定义好的bslib主题对象。
内容的提问来源于stack exchange,提问作者Anna Rouw
相关产品推荐
相关产品推荐

