Ответ 1
Документация сообщает нам:
Если вы не используете RStudio, вам просто нужно вызвать функцию
rmarkdown::render
, например:rmarkdown::render("input.Rmd")
Обратите внимание, что в случае использования кнопки "Вязание" в RStudio основной механизм одинаков (RStudio вызывает функцию
rmarkdown::render
под капотом).
По сути, rmarkdown::render
делает гораздо больше настроек, чем knitr::knit2html
, хотя у меня нет исчерпывающего списка всех различий.
Самый гибкий способ рендеринга вывода - это, во всяком случае, предоставить свою собственную таблицу стилей для форматирования вывода в соответствии с вашими пожеланиями.
Обратите внимание, что вам нужно настроить Pandoc вручную для работы с rmarkdown::render
в командной строке.
При этом, вот два замечания, которые улучшат вывод knitr::knit2hmtl
, и, по моему мнению, превосходят использование rmarkdown::render
:
-
Чтобы включить заголовок, используйте тег заголовка Markdown, а не тег YAML:
# My title
-
Чтобы форматировать таблицы, не используйте функцию raw
kable
. На самом деле это также верно при использованииrmarkdown::render
: выравнивание ячеек таблицы полностью отключено. Rmarkdown, по-видимому, использует центрирование как выравнивание по умолчанию, но этот параметр почти никогда не является правильным. Вместо этого вы должны выровнять текст и (как правило) выравнивать по правому краю числа. На момент написания статьи, Knitr не может делать это автоматически (насколько я знаю), но довольно легко включить фильтр для этого:```{r echo=FALSE} library(pander) # Use this option if you don’t want tables to be split panderOptions('table.split.table', Inf) # Auto-adjust the table column alignment depending on data type. alignment = function (...) UseMethod('alignment') alignment.default = function (...) 'left' alignment.integer = function (...) 'right' alignment.numeric = function (...) 'right' # Enable automatic table reformatting. opts_chunk$set(render = function (object, ...) { if (is.data.frame(object) || is.matrix(object)) { # Replicate pander’s behaviour concerning row names rn = rownames(object) justify = c(if (is.null(rn) || length(rn) == 0 || (rn == 1 : nrow(object))) NULL else 'left', sapply(object, alignment)) pander(object, style = 'rmarkdown', justify = justify) } else if (isS4(object)) show(object) else print(object) }) ```