4

我在基于表格的布局中插入 R 输出时遇到困难。

\documentclass{article}
\usepackage{float}

\begin{document}

    \begin{table}
        \begin{tabular}{ll}
        A & 
        <<results1>>=
        plot(1,1)
        @ \\
        B & 
        <<results2>>=
        table(rnorm(10))
        @
        \end{tabular}
    \end{table}

\end{document}

knitr 或 latex 扼流圈,因为换行符/块语法等都是错误的。

我有一些可以使用 minipage 的东西,但我需要更多的布局自由度。一种解决方法是单独或在 knitr 之前使用 brew,但我想知道是否有更简单的替代方法。

4

2 回答 2

4

我认为您需要将其\\放在新行上。我认为@必须靠自己。同样,您需要\\在第二个表格行上使用另一个。这似乎对我有用:

更新:感谢@Statwonk,我意识到这echo=FALSE将阻止 R 代码显示。

\documentclass{article}
\usepackage{float}

\begin{document}

    \begin{table}
        \begin{tabular}{ll}
        A & 
        <<results1, echo=FALSE>>=
        plot(1,1)
        @ 
        \\
        B & 
        <<results2, echo=FALSE>>=
        table(rnorm(10))
        @
        \\
        \end{tabular}
    \end{table}

\end{document}
于 2013-09-21T19:07:44.340 回答
2

根据@nograpes 的回答,您需要将\\endlines 与领先的@.

绘图向右移动的原因是,默认情况下会显示 R 代码块。覆盖这个集合echo=FALSE。另请注意,您可以使用\Sexpr{ r code goes here }语法将少量 R 代码内联。这有助于保持您的表格代码整洁。

见下文:

 \documentclass{article}
 \usepackage{float}

\begin{document}

\begin{table}
    \begin{tabular}{ll}
    A &
    <<result1, echo=FALSE>>=
    plot(1,1)
    @
    \\
    B & \Sexpr{table(rnorm(10))}
    \\
    \end{tabular}
\end{table}

\end{document}

希望这可以帮助!

于 2013-09-21T20:21:39.020 回答