xtable中的水平虚线或虚线

时间:2015-08-06 09:03:16

标签: r latex knitr lines xtable

我想知道是否有办法使用命令hline.after在xtable虚线或点线中创建一些hlines。我找不到解决方案。

MWE(Rnw):

\documentclass{article}
\usepackage{booktabs}
\begin{document}

<<mytable, results='asis', echo=F>>=
library("xtable")
print(xtable(matrix(rnorm(32), 8,4), align="lllll"), booktabs=T, hline.after = c(-1,0,4,8))
@

\end{document}

给出了这个乳胶表代码:

\begin{table}[ht]
\centering
\begin{tabular}{lllll}
\toprule 
 & 1 & 2 & 3 & 4 \\ 
 \midrule
 1 & 0.50 & -0.49 & -1.32 & -0.29 \\ 
 2 & 1.01 & 0.57 & 1.35 & 0.54 \\ 
 3 & -1.20 & 1.02 & 1.12 & 0.07 \\ 
 4 & 0.04 & 0.14 & 0.23 & -0.38 \\ 
  \midrule
 5 & -1.71 & -0.90 & 0.59 & -0.05 \\ 
 6 & 0.14 & -0.82 & -0.44 & 0.52 \\ 
 7 & -0.28 & 1.91 & -1.80 & 0.53 \\ 
 8 & 0.38 & 2.66 & 0.26 & -1.38 \\ 
 \bottomrule
 \end{tabular}
 \end{table}

而不是第4行之后的实体\midrule,我想要一个虚线或最好是虚线。

我知道,在乳胶虚线水平线上我可以使用arydshln包,也可以点缀hlines可以操纵\ dashlinedash {},\ dashlinegap {} 和\ arrayrulewidth {}。

但是如何在打印xtable时创建虚线/虚线?有没有人有解决方案?

1 个答案:

答案 0 :(得分:3)

add.to.row正是您要找的。来自print.xtable

  

add.to.row:两个组件的列表。第一个组件(应该称为'pos')是一个列表,其中包含最后应在其上添加额外命令的行的位置,第二个组件(应该称为'command')是一个相同的字符向量包含应在指定行末尾添加的命令的第一个组件的长度。默认值为NULL,即不添加命令。

不要忘记转义反斜杠,因此你必须编写\\hdashline \hdashline的instad。换行符\n是可选的,但它可以使您的TEX代码更清晰。

\documentclass{article}
\usepackage{booktabs}
\usepackage{arydshln}
\begin{document}

<<mytable, results='asis', echo=F>>=
  library("xtable")
print(xtable(matrix(rnorm(32), 8,4), align="lllll"), 
      booktabs=T, 
      hline.after = c(-1,0,8), 
      add.to.row = list(pos=list(4), command="\\hdashline \n"))
@

\end{document}

输出:

\begin{table}[ht]
\centering
\begin{tabular}{lllll}
  \toprule
 & 1 & 2 & 3 & 4 \\ 
  \midrule
1 & -0.44 & 1.18 & -1.14 & -0.50 \\ 
  2 & 1.71 & -0.24 & 1.06 & -0.21 \\ 
  3 & -0.50 & -0.91 & 1.84 & 1.45 \\ 
  4 & -1.64 & -1.68 & -0.70 & 1.25 \\ 
   \hdashline 
5 & -2.03 & -0.81 & 0.35 & 1.12 \\ 
  6 & 0.46 & 0.47 & -1.05 & -0.98 \\ 
  7 & 0.45 & -0.05 & -0.79 & 0.17 \\ 
  8 & 1.31 & -2.96 & -2.50 & 0.02 \\ 
   \bottomrule
\end{tabular}
\end{table}

Table with dashed line.