r - 更改 RMarkdown 中块的表示(背景颜色和框架)(使用 Beamer-Presentations)
问题描述
背景:我使用的是大都会主题,它的幻灯片背景颜色与投影仪中显示的代码块的默认背景颜色相同。
问题:我想更改块输出的表示。源代码和结果应该有不同类型的表示来区分它们。源代码背景应该是比大都会幻灯片背景稍深的灰色,结果应该被一条黑线包围作为一个框架。
我已经尝试过的: 这个威胁回答了我对 HTML 输出 (YAML: output: html_document
) 的问题,但我不知道如何让它在beamer_presentation
.
这是我的“最小”工作示例:
---
title: "The Influence of the German Statutory Minimum Wage's Introduction on Individuals' Health"
author: "Simon Ress | Ruhr-Universität Bochum"
institute: "Conference: 56. Jahrestagung der DGSMP, Leipzig, 2021"
date: "September 22, 2021"
output:
beamer_presentation:
keep_md: true
keep_tex: no
latex_engine: xelatex
#theme: metropolis
slide_level: 2 # which header level should be printed as slides
incremental: no
header-includes:
- \usetheme[numbering=fraction]{metropolis}
#Define footer:
- \definecolor{beaublue}{rgb}{0.74, 0.83, 0.9}
- \setbeamertemplate{frame footer}{\tiny{\textcolor{beaublue}{Conference 56. Jahrestagung der DGSMP, 2021 | SIMON RESS}}}
#hide footer on title page:
- |
\makeatletter
\def\ps@titlepage{%
\setbeamertemplate{footline}{}
}
\addtobeamertemplate{title page}{\thispagestyle{titlepage}}{}
\makeatother
#show footer on section's start/title pages:
#overwrite "plain,c,noframenumbering" in section pages definition -> enables footer:
- |
\makeatletter
\renewcommand{\metropolis@enablesectionpage}{
\AtBeginSection{
\ifbeamer@inframe
\sectionpage
\else
\frame[c]{\sectionpage}
\fi
}
}
\metropolis@enablesectionpage
\makeatother
#define footer of section pages:
- |
\makeatletter
\def\ps@sectionpage{%
\setbeamertemplate{frame footer}{\tiny{\textcolor{beaublue}{Conference 56. Jahrestagung der DGSMP, 2021 | SIMON RESS}}}
}
\addtobeamertemplate{section page}{\thispagestyle{sectionpage}}{}
\makeatother
#add secrtion numbers to TOC:
- |
\setbeamertemplate{section in toc}{
\leavevmode%
\inserttocsectionnumber.
\inserttocsection\par%
}
\setbeamertemplate{subsection in toc}{
\leavevmode\leftskip=2.5em\inserttocsubsection\par}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```
## Content
\tableofcontents[]
# Slide with R Output
```{r cars, echo = TRUE}
summary(cars)
```
解决方案
您可以更改代码的颜色
\definecolor{shadecolor}{RGB}{148,248,248}
(选择您喜欢的任何颜色)在输出周围添加一个框架有点 hacky。rmarkdown 自动加载各种包以格式化逐字代码,如
fancyverb
包,但随后它继续并忽略它们并使用正常的乳胶verbatim
endvironment 输出。完全没有意义,但是您可以使用这种肮脏的技巧来重新定义这样的环境,以使用 fancyverb 包,它提供了添加框架的选项:\let\verbatim\undefined \let\verbatimend\undefined \DefineVerbatimEnvironment{verbatim}{Verbatim}{frame=single}
---
title: "The Influence of the German Statutory Minimum Wage's Introduction on Individuals' Health"
author: "Simon Ress | Ruhr-Universität Bochum"
institute: "Conference: 56. Jahrestagung der DGSMP, Leipzig, 2021"
date: "September 22, 2021"
output:
beamer_presentation:
keep_md: true
keep_tex: yes
latex_engine: xelatex
#theme: metropolis
slide_level: 2 # which header level should be printed as slides
incremental: no
header-includes:
- \usetheme[numbering=fraction]{metropolis}
#Define footer:
- \definecolor{beaublue}{rgb}{0.74, 0.83, 0.9}
- \setbeamertemplate{frame footer}{\tiny{\textcolor{beaublue}{Conference 56. Jahrestagung der DGSMP, 2021 | SIMON RESS}}}
#hide footer on title page:
- |
\makeatletter
\def\ps@titlepage{%
\setbeamertemplate{footline}{}
}
\addtobeamertemplate{title page}{\thispagestyle{titlepage}}{}
\makeatother
#show footer on section's start/title pages:
#overwrite "plain,c,noframenumbering" in section pages definition -> enables footer:
- |
\makeatletter
\renewcommand{\metropolis@enablesectionpage}{
\AtBeginSection{
\ifbeamer@inframe
\sectionpage
\else
\frame[c]{\sectionpage}
\fi
}
}
\metropolis@enablesectionpage
\makeatother
#define footer of section pages:
- |
\makeatletter
\def\ps@sectionpage{%
\setbeamertemplate{frame footer}{\tiny{\textcolor{beaublue}{Conference 56. Jahrestagung der DGSMP, 2021 | SIMON RESS}}}
}
\addtobeamertemplate{section page}{\thispagestyle{sectionpage}}{}
\makeatother
#add secrtion numbers to TOC:
- |
\setbeamertemplate{section in toc}{
\leavevmode%
\inserttocsectionnumber.
\inserttocsection\par%
}
\setbeamertemplate{subsection in toc}{
\leavevmode\leftskip=2.5em\inserttocsubsection\par}
\definecolor{shadecolor}{RGB}{148,248,248}
\let\verbatim\undefined
\let\verbatimend\undefined
\DefineVerbatimEnvironment{verbatim}{Verbatim}{frame=single}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```
## Content
\tableofcontents[]
# Slide with R Output
```{r cars, echo = TRUE}
summary(cars)
```
推荐阅读
- javascript - 需要帮助限制数组/优化 axios 响应
- java - pcap4j - Android Proguard/R8 配置
- php - PHP/FPDF 一直在 cloudflare 后面加载
- android - FutureBuilder 不返回小部件
- function - 在不调用函数的情况下,如何判断一个类型的基函数是否已在 Go 中被覆盖?
- c++ - 如何在 ssh/server 中搜索和使用文件
- r - 如何卸载带有所有包、设置和其他所有内容的 R 和 RStudio?
- sql-server - 如何将 SQL Server 中的数据库转换为 Azure SQL 中基于架构的对象
- html - 什么 CSS 属性将下拉菜单保留在其父 li 下?
- jquery - 避免jquery范围/初始化/问题/冲突的最佳实践?