带对齐和脚注的 long xtable()

带对齐和脚注的 long xtable()

有一张长桌子,我想做一个自定义列宽带有脚注

R 代码如下所示,align() 到特定列宽不起作用?非常感谢,

x <- matrix(rnorm(1000), ncol = 2)
x.big <- xtable(x, caption = "A \\code{longtable} spanning several pages")

add.to.row <- list(pos = list(0), command = NULL)
command <- paste0("\\hline\n\\endhead\n",
                  "\\hline\n",
                  "\\multicolumn{", dim(x)[2] + 1, "}{l}",
                  "{\\footnotesize Continued on next page}\n",
                  "\\endfoot\n",
                  "\\endlastfoot\n")
add.to.row$command <- command
print(x.big,
      align=c(

        "p{0.1cm}|","p{0.1cm}|",
        "p{20cm}|"),

      hline.after=c(-1), add.to.row = add.to.row, file="x.big.tex",
      tabular.environment = "longtable")

答案1

姆韦

有这么多的线索(“不起作用”加上不完整
R 代码和没有什么关于 LaTeX 部分应该如何工作),我们不可能知道到底出了什么问题。

顺便说一句,这种对齐方式没有任何问题(除了这些数据的荒谬宽度)。相反,一个明显的问题是标题将位于几页的底部!另一个可能的错误是:

  1. \code{}对于标准文档来说,其用途尚不清楚。
  2. 不加载 xtable ( library(xtable))
  3. 当问题的代码是 R 块的一部分时,将表格导出x.big.tex到 Sweave/knitr 文档中以直接显示,或者不要在主 LaTeX 文档(即\input{x.big.tex})中导入表格。
  4. 使用longtablextable.floating = TRUE(不会造成致命后果,但会产生令人讨厌的警告)

考虑到所有这些,显示不同宽度的列的工作代码可能是:

示例.Rnw

\documentclass{article}
\usepackage{longtable,array}
\begin{document}
<<results='asis',echo=F>>=
library(xtable)
options(xtable.floating = FALSE)
x <- matrix(rnorm(100), ncol = 2)
x.big <- xtable(x, 
align=c("|c","|>{\\centering}p{6em}","|>{\\centering\\arraybackslash}p{12em}|"),  
                caption = "A \\texttt{longtable} spanning several pages")
add.to.row <- list(pos = list(0), command = NULL)
command <- paste0("\\hline\n\\endhead\n",
                  "\\hline\n",
                  "\\multicolumn{", dim(x)[2] + 1, "}{l}",
                  "{\\footnotesize Continued on next page}\n",
                  "\\endfoot\n",
                  "\\endlastfoot\n")
add.to.row$command <- command
print(x.big,
      hline.after=c(-1), 
      add.to.row = add.to.row, 
      tabular.environment = "longtable",
      caption.placement ="top"
      )
@
\end{document}

注意:本例中垂直线仅用于查看列宽。在实际表格中,请避免使用垂直线,而使用booktabs水平线。

相关内容