尝试将 R4DS 渲染为 pdf

问题描述

当我尝试渲染R for Data Science (R4DS) 一书的最新版本时,我得到了 LaTeX 编译,然后被以下错误消息阻止。

! Text line contains an invalid character.
l.406 #> -- ^^[
               [1mAttaching packages^^[[22m --------------------------------...

Error: LaTeX Failed to compile _main.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. See _main.log for more info.
>

这对应于 R4DS 书籍中我们展示如何加载 tidyverse 的部分,查看 _main.tex 文件,我看到许多行看起来像 ANSI 转义序列,从这一行开始。它们的形式为 ^[[1m,^[[22m,等等。我使用 lualatex 手动编译了 LaTeX 输出,发现整本书中有几十个甚至数百个这样的例子。我怀疑是因为我在 R 中使用了 colorout 包,但看起来该包是必需的,所以其他渲染成功的人也必须使用它。我相信我已经成功更新了所有相关的包。

解决方法

看起来我通过将 _common.R 文件中的一个选项从 crayon.enabled=TRUE 更改为 crayon.enabled=FALSE 来“解决”了问题。这从书中删除了 ANSI 转义序列。之前我曾尝试在 R 会话中设置 options(crayon.enabled=FALSE),但这显然被 _common.R 中的设置覆盖。