Knitr / RMarkdown (Beamer) 中的 LaTeX 数学表达式

问题描述

在 Beamer 演示文稿中使用 knitrkableExtra 编译表格时,我无法正确呈现 LaTeX 数学表达式。我最初使用 xelatex 作为我的引擎,然后切换到 pdflatex 以查看是否可以解决问题。我被这个难住了。

TeX 序言

% For resizing caption font size
\usepackage{caption}
\captionsetup[figure]{font=tiny}

% Other packages
\usepackage{fancyvrb}
\usepackage{color,xcolor}
\usepackage{framed}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{array}
\usepackage{multirow}
\usepackage{wrapfig}
\usepackage{float}
\usepackage{colortbl}
\usepackage{pdflscape}
\usepackage{tabu}
\usepackage{threeparttable}
\usepackage{threeparttablex}
\usepackage[normalem]{ulem}
\usepackage{makecell}

% Colour formatting
\definecolor{UBCblue}{rgb}{0.04706,0.13725,0.26667} % UBC Blue (primary)
\definecolor{UBCgrey}{rgb}{0.3686,0.5255,0.6235} % UBC Grey (secondary)
\setbeamercolor{title}{fg=UBCblue} % slide title
\setbeamercolor{frametitle}{fg=UBCblue} % slide title
\setbeamercolor{structure}{fg=darkgray} % more list stuff,I think
\setbeamertemplate{itemize items}[circle] % for list itemes

% Page numbers
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}[page number]

% Margins
\setbeamersize{text margin left=8mm,text margin right=8mm}

% make code-output smaller
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{fontsize=\footnotesize,commandchars=\\\{\}}

% make console-output smaller:
  \makeatletter
\def\verbatim{\footnotesize\@verbatim \frenchspacing\@vobeyspaces \@xverbatim}
\makeatother
\setlength{\parskip}{0pt}
\setlength{\OuterFrameSep}{-4pt}
\makeatletter
\preto{\@verbatim}{\topsep=-10pt \partopsep=-10pt }
\makeatother

% For better spacing between the list bullets
\renewcommand{\tightlist}{\setlength{\itemsep}{1ex}\setlength{\parskip}{0pt}}

RMarkdown 文档

---
title: "My Title"
subtitle: "My Subtitle"
author: Speleo4Life
date: "march 11th,2021"
output: 
  beamer_presentation:
    latex_engine: pdflatex
    includes:
        in_header: preamble.tex
    theme: "default"
    colortheme: "orchid"
    fonttheme: "serif"
    slide_level: 2
    keep_tex: true
urlcolor: blue
linkcolor: purple
---

```{r setup,eval=TRUE,include=FALSE,echo=FALSE}
library(tidyverse)
library(ggplot2)
library(kableExtra)
library(psych)
```

```{r,echo=FALSE}
knitr::opts_chunk$set(echo = TRUE)
options(knitr.table.format = "latex")
```
## Review: Null Hypothesis Significance Testing  

```{r,echo=FALSE}
c1 <- c('$\\text{Reject } H_0$','$\\text{Retain } H_0$')
c2 <- c('$\\text{Type I Error } (\\alpha)$','Correct Retention')
c3 <- c('$\\text{Power } (1-\\beta)$','$\\text{Type II Error } \\beta$')
df <- data.frame(c1,c2,c3)
colnames(df) <- c('$\\textbf{Decision}$','$\\mathbf{H_0} \\textbf{\\textit{is true}}$','$\\mathbf{H_0} \\textbf{\\textit{is false}}$')
kbl(df,booktabs = T) %>%
  add_header_above(c(" ","State of Reality" = 2))
```

相关输出

LaTeX expressions not being rendered

解决方法

只需将 escape = F 添加到 kbl

---
title: "My Title"
subtitle: "My Subtitle"
author: Speleo4Life
date: "March 11th,2021"
output: 
  beamer_presentation:
    latex_engine: pdflatex
    includes:
        in_header: preamble.tex
    theme: "default"
    colortheme: "orchid"
    fonttheme: "serif"
    slide_level: 2
    keep_tex: true
urlcolor: blue
linkcolor: purple
---

```{r setup,eval=TRUE,include=FALSE,echo=FALSE}
library(tidyverse)
library(ggplot2)
library(kableExtra)
library(psych)
```

```{r,echo=FALSE}
knitr::opts_chunk$set(echo = TRUE)
options(knitr.table.format = "latex")
```
## Review: Null Hypothesis Significance Testing  

```{r,echo=FALSE}
c1 <- c('$\\text{Reject } H_0$','$\\text{Retain } H_0$')
c2 <- c('$\\text{Type I Error } (\\alpha)$','Correct Retention')
c3 <- c('$\\text{Power } (1-\\beta)$','$\\text{Type II Error } \\beta$')
df <- data.frame(c1,c2,c3)
colnames(df) <- c('$\\textbf{Decision}$','$\\mathbf{H_0} \\textbf{\\textit{is true}}$','$\\mathbf{H_0} \\textbf{\\textit{is false}}$')
kbl(df,booktabs = T,escape = F) %>%
  add_header_above(c(" ","State of Reality" = 2))
```

-输出 enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...