避免代码块破坏Knitr? (最好使用块选项)

时间:2013-10-29 10:18:09

标签: r pdf break knitr floating

使用knitr创建pdf,codechunks根据分页符中断。通常这正是我想要的,但在某些情况下我希望能够避免这种情况。例如。通过使代码块跳转到下一页,如果它不适合当前页面。我希望如果这可以在一个块选项中完成,I.E不使用eg。 \ newpage等。

以下是破坏的代码块的示例。我该如何避免这种情况?

\documentclass{article}
\usepackage[english]{babel}
\usepackage{lipsum}

\begin{document}

\lipsum[1-3] \textbf{The following chunk will break. How do I avoid this breaking? }



<<echo=TRUE>>=

(iris)[1:20,]

@



\end{document}

1 个答案:

答案 0 :(得分:3)

为了这些目的,我在knitrout设计中留下了一个空的环境knitr。您可以重新定义此环境以实现您想要的效果。有许多不可破解的LaTeX环境,例如figure环境。下面我以minipage环境为例:

\documentclass{article}
\renewenvironment{knitrout}{\begin{minipage}{\columnwidth}}{\end{minipage}}
% alternatively, you can use `figure`
% \renewenvironment{knitrout}{\begin{figure}}{\end{figure}}
\begin{document}

\begin{figure}
\caption{One figure.}
\end{figure}

% placeholder
\framebox{\begin{minipage}[t][0.3\paperheight]{1\columnwidth}%
nothing
\end{minipage}}

<<echo=TRUE>>=
(iris)[1:20,]
@

\begin{figure}
\caption{Another one.}
\end{figure}

\end{document}