如何保持旋转表的位置

如何保持旋转表的位置

由于我正在使用 R,因此我使用该xtable包在 Latex 中生成表格。有些表格只有旋转后才能适合页面。似乎总是sidewaystable从新页面开始。我现在的问题是,各部分的顺序是错误的。旋转后的表格从新页面开始,但应该出现在旋转后的表格之后的部分现在直接打印在第二部分之后。以下是一个例子:

\documentclass{article}
\usepackage{float}
\usepackage{rotating}

\begin{document}

\section{first}

<<table1,echo=FALSE,results='asis',message=FALSE>>=
require(xtable)
t1 <- xtable(data.frame(a=rnorm(10),b=rnorm(10)))
print(t1)
@

\section{second}

<<table2,echo=FALSE,results='asis'>>=
t2 <- xtable(data.frame(z=rnorm(20),y=rnorm(20),x=rnorm(20)))
print(t2,floating.environment="sidewaystable")
@

\section{third}

<<table3,echo=FALSE,results='asis'>>=
t3 <- xtable(data.frame(z=rnorm(20),y=rnorm(20),x=rnorm(20)))
print(t3,floating.environment="sidewaystable")
@


\end{document}

我想要的是:

  1. 表格保持在正确的位置
  2. 没有开始新的一页(如果表格 2 适合,则应以水平模式打印在与表格 1 相同的页面上。如果没有足够的空间来打印整个表格,则应将其打印在下一页上。

有什么建议么?

答案1

问题是 R 表也是浮点数,因此您需要包含该floating=F选项。然后可以旋转或旋转 R 块,如 MWE 中所示:

这样做的问题是,标题不能由 R 在没有浮动的表中生成,并且\caption\captionof不能caption放在旋转对象内,但你可以将旋转对象放在浮动对象中,然后使用\rotcaption

平均能量损失

\documentclass{article}
\usepackage{caption}
\usepackage{rotating}
\begin{document}
\SweaveOpts{concordance=TRUE}

\section{Turning}

\begin{table}[h]
\centering
\begin{minipage}[c]{.05\linewidth}
\rotcaption{Turned  90\textdegree}
\end{minipage}
\begin{minipage}[c]{.8\linewidth}
\begin{turn}{90}
<<table1,echo=F,results=tex>>=
require(xtable)
print(xtable(data.frame(a=rnorm(10),b=rnorm(10)),caption="x"),floating=F)
@
\end{turn}
\end{minipage}
\end{table}

\section{Rotating}

\begin{table}[h]
\centering
\begin{minipage}[c]{.05\linewidth}
\rotcaption{Rotated 90\textdegree}
\end{minipage}
\begin{minipage}[c]{.8\linewidth}
\rotatebox{90}{
<<tablex,echo=F,results=tex>>=
print(xtable(data.frame(z=rnorm(20),y=rnorm(20),x=rnorm(20))),floating=F)
@
}
\end{minipage}
\end{table}
\end{document}

相关内容