编织为 tuffte_handout pdf 时如何更改块内使用的字体?

How to change the font used inside the chunks when knitting as tuffte_handout pdf?

我正在写一本书,使用 R 和 Tufte 库。 我为每个 .Rmd 章节使用以下 YAML:

---
title: "Chapter 2: A First Linear Program"
header-includes:
 \usepackage{longtable}
 \usepackage{caption}
output:
  tufte::tufte_handout:
    citation_package: natbib
    latex_engine: xelatex
  highlight: monochrome
  tufte::tufte_html: default
  tufte::tufte_book:
    citation_package: natbib
    latex_engine: xelatex
---

\pagestyle{headings}


```{r setup, include=FALSE}
library(tufte)
library(tint)
library(knitr)
library(gridExtra)
knitr::opts_chunk$set(echo = TRUE)
knitr::opts_chunk$set(tidy = F)
knitr::opts_chunk$set(cache = TRUE)
knitr::opts_chunk$set(width = 30)
```

下面是索引.Rmd 文件的 YAML:

---
title: "Operations Research Using R<br />"
author: "Timothy R. Anderson"
date: "`r Sys.Date()`"
site: bookdown::bookdown_site
documentclass: book
bibliography: ["Master4Bookdowns.bib"]
---

# Preface {-}

我尝试了不同的选项,比如在 YAML 中添加 sansfont 和 mainfont:

output:
  tufte::tufte_handout:
    citation_package: natbib
    latex_engine: xelatex
  highlight: monochrome
  sansfont: Calibri Light
  mainfont: Calibri Light

但它并没有改变块内的字体,只改变了外面的文字。


这里有一个更简单的示例文档,显示了我尝试按照评论中的建议更改 monofont

---
title: "Chapter 2: A First Linear Program"
header-includes:
\usepackage{longtable}
 \usepackage{caption}
output:
  tufte::tufte_handout:
    citation_package: natbib
    latex_engine: xelatex
    toc: TRUE
    number_sections: true
  highlight: monochrome
  monofont: Times New Roman
  tufte::tufte_html: default
  tufte::tufte_book:
    citation_package: natbib
    latex_engine: xelatex
---

\pagestyle{headings}


```{r setup, include=FALSE}
library(tufte)
library(tint)
library(knitr)
library(gridExtra)
knitr::opts_chunk$set(echo = TRUE)
knitr::opts_chunk$set(tidy = F)
knitr::opts_chunk$set(cache = TRUE)
knitr::opts_chunk$set(width = 30)
```

This is an example, where we can see that text in the book is affected by the use of command
monofont: Times New Roman in the YAML. However, we can see that next chunk, the oucome when generating the tuffte_handout pdf is using a different font and also using multiple colors (no only black as in the main body).


```{r base_case_no_pipes_step_4}

model0d <- c("example", 6 + 2 <= 2000) 
#fabrication
model0e <- c("example", 8 + 6 <= 2000)  
#assembly    
```

您必须将 YAML headers 带到正确的级别:

  • monofont 等人。是 top-level headers
  • highlight低于输出格式,不低于output

以下示例使用 "Times New Roman" 作为代码块,使用 XeLaTeX 的默认字体(Latin Modern)作为正文。您可以使用 mainfont 更改它。另外,没有语法高亮:

---
title: "Chapter 2: A First Linear Program"
header-includes:
- \usepackage{longtable}
- \usepackage{caption}
monofont: Times New Roman
output:
  tufte::tufte_handout:
    citation_package: natbib
    latex_engine: xelatex
    toc: TRUE
    number_sections: true
    highlight: monochrome
  tufte::tufte_html: default
  tufte::tufte_book:
    citation_package: natbib
    latex_engine: xelatex
---

\pagestyle{headings}


```{r setup, include=FALSE}
library(tufte)
library(tint)
library(knitr)
library(gridExtra)
knitr::opts_chunk$set(echo = TRUE)
knitr::opts_chunk$set(tidy = F)
knitr::opts_chunk$set(cache = TRUE)
knitr::opts_chunk$set(width = 30)
```

This is an example, where we can see that text in the book is affected by the use of command
monofont: Times New Roman in the YAML. However, we can see that next chunk, the oucome when generating the tuffte_handout pdf is using a different font and also using multiple colors (no only black as in the main body).


```{r base_case_no_pipes_step_4}

model0d <- c("example", 6 + 2 <= 2000) 
#fabrication
model0e <- c("example", 8 + 6 <= 2000)  
#assembly

```

结果: