8

当使用 RStudio 和Rnw转换文件时,代码块具有令人愉悦的灰色背景色(就像他们在 SO 中所做的那样)。当我将文件转换为 时,背景颜色为白色,我似乎无法更改它。knitr代码装饰选项仅适用于 LaTeX,在.PDFknitrmdPDF backgroundmd

如何为PDFmd文件中获取的代码块设置背景颜色?我在一些相关问题中看到编辑 markdown.css 文件可能是相关的,但我不确定这是否适用于这里,因为md和文件之间没有 htmlPDF文件。

可以使用 knitr 示例重现此效果:Rnw source: knitr-minimal.Rnwmarkdown source: 001-minimal.Rmd

要转换RnwPDF我只需单击 RStudio 中的“编译 PDF”按钮。这是我要转换md为的操作PDF

# Load packages
require(knitr)
require(markdown)

setwd("C:/Users/.../Desktop/")

# Process .md and .pdf files
filen <- "myfile"
knit(paste0(filen,".md"))
system(paste0("pandoc -s ", paste0(filen,"-out.md"), " -t latex -o ", paste0(filen,".pdf")))

是否有另一种转换方式mdPDF以便我可以获得彩色代码背景?

4

2 回答 2

6

由于您已经设置了 Pandoc,因此您应该能够使用 Pandoc 的--highlight-style参数来实现这一点。从文档

--highlight-style=STYLE 指定要在突出显示的源代码中使用的着色样式。选项是 pygments(默认)、kate、单色、espresso、zenburn、haddock 和 tango。

如果您没有指定每个代码块在降价文件中包含的语言,您可能还必须设置--indented-code-classes参数:

--indented-code-classes=CLASSES 指定用于缩进代码块的类,例如 perl、numberLines 或 haskell。多个类可以用空格或逗号分隔。

从记忆中,我认为这可能需要一个乳胶包fancyvrb,所以你可能必须在它工作之前安装它。

于 2013-06-24T06:52:30.473 回答
6

Marius 的回答正是我所追求的。由于评论不能拍照,所以我在这里贴几张截图,以防其他人对此感到好奇。

为了从PDF生成的代码中获取代码背景md,我调整了我的代码,如下所示:

# Load packages
require(knitr)
require(markdown)

setwd("C:/Users/.../Desktop/")

# Create .md and .pdf files
filen <- "test"
knit(paste0(filen,".md"))
system(paste0("pandoc -s ", paste0(filen,"-out.md"), " -t latex -o ", paste0(filen,".pdf"), " --highlight-style=tango -S"))

在测试七个pandoc突出显示选项时,我发现只有三个提供代码背景。以下是使用这三个选项生成的 PDF 的屏幕截图,以供将来参考。

这是探戈,最符合我所追求的浅灰色:

在此处输入图像描述 这是zenburn: 在此处输入图像描述 这是浓缩咖啡 在此处输入图像描述

于 2013-06-24T07:37:32.520 回答