4

以下代码使我能够将Fira Code用作单色字体。

---
monofont: "Fira Code"
output: 
  pdf_document:
    latex_engine: xelatex
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

```{r}
x <- 1:5
x != 2
```

这会产生所需的连字 for!=但不是 for <-

在此处输入图像描述

在这篇文章中接受的答案中详述的解决方案在 LaTeX 中完成时有效,例如,

\documentclass{article}

\usepackage{mathspec}
\setmonofont[Contextuals={Alternate}, Scale=0.75, Ligatures=TeX]{Fira Code}
\makeatletter
\def\verbatim@nolig@list{}
\makeatother

\begin{document}

\begin{verbatim}
x <- 1:5
x != 2
\end{verbatim}

\end{document}

在此处输入图像描述

以下 YAML 不起作用。

---
monofont: "Fira Code"
output: 
  pdf_document:
    latex_engine: xelatex
header-includes: |
  \makeatletter
  \def\verbatim@nolig@list{}
  \makeatother
---

可以直接在 YAML 中启用连字吗?

4

1 回答 1

1

如果您查看生成的 LaTeX 输出,您会看到花括号已被引用:\def\verbatim@nolig@list\{\}. 这个引用问题已经在 github 上的几个问题中讨论过,并且似乎有一个可用的修复程序(参见这个问题),但我没有测试它,因为我的 Debian 测试机器仍然使用 pandoc 1.19.2.4。作为一种解决方法,您可以将必要的命令放入单独的文件中,例如preamble.tex

\makeatletter
\def\verbatim@nolig@list{}
\makeatother

然后使用

---
monofont: "Fira Code"
output: 
  pdf_document:
    latex_engine: xelatex
    include:
      in_header: preamble.tex
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

```{r}
x <- 1:5
x != 2
```
于 2018-04-28T14:08:11.737 回答