R 黑白文档的代码样式

R 黑白文档的代码样式,r,latex,knitr,R,Latex,Knitr,knitr的一个优点是,您可以轻松更改R代码的颜色。但是,大多数文档都是黑白打印的。因此,在使用黑白打印机打印文档时,R代码的样式设置会很好吗?坦白地说,我不喜欢B&W打印的任何knitr主题,它们都不如好的旧enscript-E 这是我认为B& W打印输出清晰度的标准,有斜体化和加色以及着色: #Comments should be italicized - very important fn.name.declarations.should.be.heavily.bolded <- f

knitr的一个优点是,您可以轻松更改R代码的颜色。但是,大多数文档都是黑白打印的。因此,在使用黑白打印机打印文档时,R代码的样式设置会很好吗?

坦白地说,我不喜欢B&W打印的任何knitr主题,它们都不如好的旧
enscript-E

这是我认为B& W打印输出清晰度的标准,有斜体化和加色以及着色:

#Comments should be italicized - very important
fn.name.declarations.should.be.heavily.bolded <- function(...) {
"strings should be bolded"
numbers, NA, Nan should be a different color (prints as something dark gray)
Your choice of how to treat variable names
Your choice of how to treat fncalls, builtins
#注释应为斜体-非常重要

fn.name.declarations.should.be.highly.bolded正如其他评论员所提到的,您实际上只能选择更改一些灰色,加上粗体和斜体。下面是一个样式表,按照从最突出到最不突出的顺序排列。您的偏好可能会有所不同

.background {
  color: #ffffff;
}
.source, .output, .warning, .error, .message {
  padding: 0em 1em;
  border: solid 1px #f7f7f7;
}
.error, .warning, .message {
  font-weight: bolder;
  font-style: italic;
  color: #000000;
}
.keyword {
  font-weight: bolder;
  color: #000000;
}
.functioncall, .package {
  font-weight: bolder;
  color: #202020;
}
.source, .output, .number, .argument, .formalargs, .eqformalargs, .assignement, .symbol, .prompt {
  color: #404040;
}
.string {
  font-weight: bold;
  color: #606060;
}
.comment, .roxygencomment, .slot {
  font-style: italic;
  color: #808080;
}
使其可用的最简单方法是在knitr包所在的库中另存为“knitr/themes/bw.css”。然后你可以打电话使用它

knit_theme$set("bw")

(或者,对于少量的额外键入,您可以提供CSS文件的路径。)

现在knitr中有灰度主题:
greyscale0
greyscale1
greyscale2
。您可以通过以下方式查看所有knitr主题:

library("knitr")
knit_theme$get()
要在knitr文档中设置主题,请添加(例如)行


也许您可以尝试使用
grDevices::hsv()
保持
s
v
常数(最大
s
和中等
v
)生成颜色,并改变
h
;您将得到一些颜色,在黑白打印机上看起来不会太淡。我想一定有一些主题考虑到了这一点;以下是knitr中所有主题的预览:@Yihui这是一个不错的列表。我认为有几个主题适合在黑白中打印。如果你打算构建你自己的css主题,除了你已经在考虑的灰色色调外,你可能还想玩字体。例如,您可以使用
.comment{font-style:italic;}
以斜体打印注释,使用粗体显示函数调用,等等。谢谢您的回答。PS或PDF选项是什么意思?PS:Postscript,PDF:Adobe PDF格式。LaTex的可能替代方案,取决于您是否要打印此文件、是否将其嵌入文档或其他内容。我了解PS和PDF是什么,但不知道如何在其中表示代码。您没有说明您的要求,但听起来您希望a)在GUI中查看代码,b)漂亮地打印它。(最初的问题听起来好像你只想要清晰漂亮的打印,在这种情况下,
enscript-E
非常棒。)如果你对你的读者恨之入骨,你可以在样式文件中撒一些
text装饰:blink
s。这会在readLines(文件)中抛出以下警告:在“C:/Users/R/win library/3.0/knitr/themes/bw.css”上发现不完整的最后一行,并使用颜色定义(前景,“fgcolor”):颜色“”无效;使用默认颜色…请参阅http://yihui.name/knitr/options
。我正在使用
r3.0.2
knitr1.5.15
knit_theme$set("greyscale2")