По умолчанию вывод R заключен в дословную среду LaTeX, и вы не можете поместить один из них в \textbf
.Существует несколько различных подходов к решению этой проблемы.
Самый простой - просто использовать параметр чанка results='asis'
, то есть
\textbf{
<<asdf,results='asis',echo=FALSE>>=
cat("asdf")
@
}
Это не позволит knitr
добавить средувокруг выхода;код LaTeX будет просто
\textbf{
asdf
}
, что должно быть хорошо.
Если вы хотите форматирование по умолчанию, но хотите просто изменить шрифт или стиль текста, все будет сложнее.Вы должны указать knitr
использовать другую среду вместо verbatim
, например, среду Verbatim
, предоставляемую пакетом fancyvrb
.Вы можете сделать это, изменив выходной хук.Например, это должно работать
% in the preamble:
\usepackage{fancyvrb}
<<include=FALSE>>=
oldhook <- knitr::knit_hooks$get("output")
bold <- function(x, options)
paste0("\\begin{Verbatim}[fontseries=b]\n", x, "\\end{Verbatim}")
@
% in the body:
<<asdf,echo=FALSE>>=
knitr::knit_hooks$set(output = bold)
cat("asdf")
@
% Optionally restore the old hook...
<<include=FALSE>>=
knitr::knit_hooks$set(output = oldhook)
@
Однако это не всегда работает, потому что некоторые параметры (например, fontseries=b
) конфликтуют с настройками, которые устанавливает knitr
.Вы можете изменить курсив (используя fontshape=it
), но не жирным шрифтом.Так что придерживайтесь первого предложения.