Мой вопрос (ы):
Имеет ли параметр knitr параметр, позволяющий установить R width
для каждого блока?
Если нет, есть ли веская причина (т.е. некоторая фундаментальная ограниченность модели knitr), которой она не является?
Что я пробовал:
Чтобы показать то, что я желаю, вот ручная функция hook, которая делает в основном то, что я хочу. (Мне это действительно не нравится, (а) потому, что он уродлив, полагаясь на присвоение переменной .width
в глобальной среде, и (б), поскольку он недоступен "из коробки" в качестве поставляемой опции например, fig.width
, out.width
и др.)
\documentclass[preview=true,width=3mm]{standalone}
\begin{document}
<<setup, include=FALSE, cache=FALSE>>=
options(width=60)
knit_hooks$set(width = function(before, options, envir) {
if(before) {
.width <<- options(width=options$width) ## Set width and save 'old' value
} else {
options(.width)} ## Restore width 'old' value
})
@
First chunk uses default width
<<A>>=
c("aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee", "fffff", "ggggg", "hhhhh")
@
Second chunk uses narrower supplied width, but then resets width to
pre-existing value \dots
<<B, width=20>>=
c("aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee", "fffff", "ggggg", "hhhhh")
@
\noindent \dots as shown by results of the third chunk
<<C>>=
c("aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee", "fffff", "ggggg", "hhhhh")
@
\end{document}