R Markdown Beamer中代码块背景色与边框设置问题
解决Metropolis主题Beamer中代码块无背景色和边框的问题
Metropolis主题默认不会给代码块添加背景色和边框,你需要通过LaTeX预定义来覆盖默认的代码高亮环境设置,下面是几种可行的方案:
方案1:通过外部LaTeX前置文件配置
- 先创建一个名为
preamble.tex的文件,写入以下内容:
\usepackage{fancyvrb} \DefineVerbatimEnvironment{Highlighting}{Verbatim}{ frame=single, % 添加单边框 bgcolor=gray!10, % 设置浅灰色背景(可调整灰度值,比如gray!20) fontsize=\small % 可选:调整代码字体大小 }
- 修改你的R Markdown的YAML头部,引入这个前置文件:
--- title: "你的演示文稿标题" output: beamer_presentation: theme: metropolis includes: in_header: preamble.tex ---
方案2:直接在YAML中嵌入LaTeX配置
不想单独创建文件的话,可以直接把配置写在YAML的header-includes里:
--- title: "你的演示文稿标题" output: beamer_presentation: theme: metropolis header-includes: - \usepackage{fancyvrb} - \DefineVerbatimEnvironment{Highlighting}{Verbatim}{frame=single, bgcolor=gray!10, fontsize=\small} ---
方案3:使用minted高亮包(更美观的语法高亮)
如果想要更精致的语法高亮,可以用minted包,注意编译时需要开启shell escape:
- 修改YAML配置:
--- title: "你的演示文稿标题" output: beamer_presentation: theme: metropolis latex_engine: xelatex # 或lualatex,pdflatex需额外配置shell escape highlight: minted header-includes: - \usepackage{minted} - \setminted{frame=single, bgcolor=gray!10, fontsize=\small} ---
- 在RStudio中开启shell escape:依次点击
Tools -> Global Options -> Sweave -> LaTeX compiler,勾选"Enable shell escape commands"。
测试代码块
写完配置后,用下面的代码块测试效果:
# 测试代码 x <- seq(1, 20, by=2) y <- sin(x) plot(x, y, type="l", col="blue")
内容的提问来源于stack exchange,提问作者user3856486
相关产品推荐
相关产品推荐

