Я хочу создать виньетку для пакета R, используя уценку (knitr
) и вывод PDF.Некоторые из моих функций выдают сообщения, которые красиво разбиты на строки в консоли.Однако в полученном PDF-файле строки не помещаются в блок для фрагмента кода, а переполняются.
Я пытался использовать strwrap
и writeLines
в message
с шириной = 80 (см. Примеры),Он разбивает строки в нужных местах, но я должен использовать con = stdout()
в writeLines
, чтобы увидеть результат в PDF-файле уценки.
con = stderr()
(по умолчанию) не показывает сообщение.Однако, таким образом, вывод консоли больше не форматируется так же, как обычные сообщения (красный в моем случае), а как обычный вывод (черный).
mes <- "A very, very, very, very, very, very, very, very, very, very, very, very, very, very long message."
# default settings
message(mes)
# using writeLines and strwrap
message(writeLines(strwrap(mes, width = 80, con = stderr()))
message(writeLines(strwrap(mes, width = 80), con = stdout())
Вот результаты в консоли R
и в уценке pdf:
Моим предпочтительным решением было бы не форматировать сообщения, а найти правильныйвзломать для уценки / knitr.