Стилизация кода для черно-белых документов

Одна из приятных вещей о knitr заключается в том, что вы можете легко изменить окраску кода R. Однако большинство документов печатаются черно-белым цветом. Так будет хорошей настройкой стиля для кода R при печати документов с использованием черно-белого принтера?

Ответы

Ответ 1

Теперь в сериале есть темы серого масштаба: greyscale0, greyscale1 и greyscale2. Вы можете просмотреть все темы knitr через:

library("knitr")
knit_theme$get()

Чтобы задать тему в документе knitr, добавьте (например) строку

knit_theme$set("greyscale2")

Ответ 2

Как уже отмечали другие комментаторы, у вас действительно есть выбор, чтобы изменить несколько оттенков серого, плюс полужирный и курсив. Здесь таблица стилей в свободном порядке из самых известных наименее известных предметов. Ваши предпочтения могут отличаться.

.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/themes/bw.css" в той библиотеке, в которой находится пакет knitr. Затем вы можете использовать его, вызывая

knit_theme$set("bw")

(В качестве альтернативы, для небольшого количества дополнительного ввода вы можете предоставить knit_theme путь к файлу CSS.)

Ответ 3

Откровенно говоря, я не продаюсь ни на одной из этих тем для темы для печати B & W, они все уступают старым enscript -E<lang>

Вот критерии, которые я считаю важными для удобочитаемости на распечатке 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

Вы не сказали, что это необходимо для LaTex, поэтому почему бы не рассмотреть варианты PS или PDF?