【问题标题】:Double line in xtablextable中的双行
【发布时间】:2019-07-22 09:11:26
【问题描述】:

我正在使用xtable 在 R 中打印一个 LaTeX 表格。 我想插入双行(\\[-1.8ex]\hline \hline \\[-1.8ex])而不是第一行(简单的\hline\topline)。

我怎样才能自动完成?

例子:

table <- data.frame(a=rep(1,2),b=rep(2,2))
print(xtable(table,type = "latex"),
  hline.after = c(-1, 0, nrow(table)-1,nrow(table)))

结果

\begin{table}[ht]
\centering
\begin{tabular}{rrr}
\hline
& a & b \\ 
\hline
1 & 1.00 & 2.00 \\ 
\hline
2 & 1.00 & 2.00 \\ 
\hline
\end{tabular}
\end{table}

需求:

\begin{table}[ht]
\centering
\begin{tabular}{rrr}
\\[-1.8ex]\hline 
\hline \\[-1.8ex]
& a & b \\ 
\hline
1 & 1.00 & 2.00 \\ 
\hline
2 & 1.00 & 2.00 \\ 
\hline
\end{tabular}
\end{table}

【问题讨论】:

  • 你能给我们看一些代码和预期的输出吗?
  • 已添加!我希望现在更清楚了。

标签: r latex xtable


【解决方案1】:

我认为最好的办法是使用add.to.row,如 5.9 here 中所述。

你的情况可能是这样的

library(xtable)
table <- data.frame(a=rep(1,2),b=rep(2,2))
tab <- xtable(table, type="latex")

addtorow <- list(
  pos=list(-1), 
  command=c("\\\\[-1.8ex]\\hline")
)

print(tab, type="latex", add.to.row=addtorow)

生产

或者更优雅一点,去掉最上面一行,换成双行

add <- list(
  pos=list(-1), 
  command=c(
    "\\\\[-2ex]\\hline 
     \\hline \\\\[-2ex]")
)

print(tab, type="latex", add.to.row=add, hline.after=c(0:nrow(table)))
% latex table generated in R 3.5.0 by xtable 1.8-2 package
% Mon Jul 22 18:32:44 2019
\begin{table}[ht]
\centering
\begin{tabular}{rrr}
  \\[-2ex]\hline 
     \hline \\[-2ex] & a & b \\ 
  \hline
1 & 1.00 & 2.00 \\ 
   \hline
2 & 1.00 & 2.00 \\ 
   \hline
\end{tabular}
\end{table}

【讨论】:

    【解决方案2】:

    刚刚从 KableExtra 的作者那里得到了一个很酷的答案:

    如何使用 KableExtra 在表格的顶部和底部添加双线? #546 https://github.com/haozhu233/kableExtra/issues/546 haozhu233 于 11 小时前发表评论 • 最直接的解决方案是使用一些简单的正则表达式。请注意,您最好将它们放在最后,因为我记得 kableExtra 的某些功能依赖于 toprule 的位置来发挥作用。

    library(kableExtra)
    kbl(mtcars[1:5, 1:5], booktabs = T) %>%
        sub("\\\\toprule", "\\\\midrule\\\\midrule", .) %>%
        sub("\\\\bottomrule", "\\\\midrule\\\\midrule", .)
    

    这样就解决了上下同时添加双线的问题。

    【讨论】:

      猜你喜欢
      • 2015-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      • 2013-05-10
      相关资源
      最近更新 更多