bap*_*ste 5 r tex sweave knitr
听起来这应该是一个常见的问题,但我没有找到明显的伎俩.考虑下面的knitr Rnw文件,
\documentclass[twocolumn, 12pt]{article}
\usepackage{graphicx}
\begin{document}
%\SweaveOpts{dev=pdf, fig.align=center}
\begin{figure*}
<<aaa, fig.width=8, fig.height=5, fig.show=hold>>=
plot(1,1)
@
\end{figure*}
\end{document}
Run Code Online (Sandbox Code Playgroud)
我希望这个宽大的数字跨越两列,使用{figure*}LaTeX环境.那有什么钩子吗?
编辑:包装块figure*提供以下输出.

两个事实:
knitr 让一切都可以访问,所以乳头技巧通常是不必要的;chunk钩子,你可以用它来包装你的块结果;一个简单的解决方案是:
knit_hooks$set(chunk = function(x, options) {
sprintf('\\begin{figure*}\n%s\n\\end{figure*}', x)
})
Run Code Online (Sandbox Code Playgroud)
我把剩下的工作留给你来处理更多的细节options(例如,当options$fig.keep == 'none'你不应该输出输出时figure*).您可能想要了解如何定义LaTeX 的默认chunk挂钩knitr以更好地了解chunk挂钩的工作原理.
但是,在这种情况下,我倾向于在文档中自己编写LaTeX代码,而不是自动创建它.在你得到之后figure*,你可能会开始思考\caption{}并且\label{}(并不难,但我仍然希望在LaTeX中看到它们).