将R markdown中的代码背景颜色设置为PDF

Ben*_*Ben 7 markdown r pandoc knitr

Rnw文件转换为PDF使用RStudio时knitr,代码块具有令人愉快的灰色背景颜色(就像他们在此处所做的那样).当我将md文件转换为时PDF,背景颜色为白色,我似乎无法改变它.knitr code decoration选项 background仅适用于LaTeX,并且不起作用md.

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

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

要转换RnwPDFI,只需单击RStudio中的"编译PDF"按钮即可.这是我要转换mdPDF:

# 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")))
Run Code Online (Sandbox Code Playgroud)

有另一种方式转换mdPDF这样我就可以得到一个彩色代码背景?

Ben*_*Ben 6

马吕斯的回答正是我所追求的.由于评论不能拍摄图像,我在这里粘贴一些截图,以防其他人对此感到好奇.

为了获得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"))
Run Code Online (Sandbox Code Playgroud)

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

这是探戈,最能与我所追求的浅灰色相匹配的探戈:

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


Mar*_*ius 5

由于您已经使用Pandoc进行了设置,因此您应该可以使用Pandoc的--highlight-style参数来实现此目的.来自文档:

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

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

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

从内存来看,我认为这可能需要一个乳胶包fancyvrb,所以你可能需要在它运行之前安装它.