当使用RStudio和Rnw
将PDF
文件转换为knitr
时,代码块具有令人愉快的灰色背景色(就像他们在此处所做的那样)。当我将md
文件转换为PDF
时,背景颜色为白色,我似乎无法更改它。 knitr code decoration option background
仅适用于LaTeX,对md
无效。
如何从PDF
文件中获取md
中的代码块设置背景颜色?我在一些相关问题中看到编辑markdown.css文件可能是相关的,但我不确定这是否适用于此,因为md
和PDF
文件之间没有html文件。
使用knitr示例可以复制此效果:Rnw source: knitr-minimal.Rnw和markdown source: 001-minimal.Rmd。
要将Rnw
转换为PDF
,我只需点击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")))
是否有另一种方法可以将md
转换为PDF
,以便获得彩色代码背景?
答案 0 :(得分: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"))
在测试七个pandoc
突出显示选项时,我发现只有三个提供代码背景。以下是使用这三个选项中的每一个生成的PDF的屏幕截图,供将来参考。
这是探戈,最能与我所追求的浅灰色相匹配的那个:
这是zenburn: 这是浓缩咖啡
答案 1 :(得分:5)
由于您已经使用Pandoc进行了设置,因此您应该可以使用Pandoc的--highlight-style
参数来实现此目的。来自docs:
- highlight-style = STYLE指定要在突出显示的源代码中使用的着色样式。选项是pygments(默认值),kate, 单色,浓咖啡,zenburn,黑线鳕和探戈。
如果您未在markdown文件中指定每个代码块包含的语言,则可能还需要设置--indented-code-classes
参数:
- indented-code-classes = CLASSES指定用于缩进代码块的类 - 例如,perl,numberLines或haskell。多个班级 可以用空格或逗号分隔。
从内存来看,我认为这可能需要像fancyvrb
这样的乳胶软件包,所以你可能需要在它运行之前安装它。