xtable 中的水平虚线或点线

jmj*_*mjr 3 latex r lines xtable knitr

我想知道是否有一种方法可以使用 command 在 xtable 中制作一些 hlines 虚线或点线hline.after。我找不到解决办法。

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}
Run Code Online (Sandbox Code Playgroud)

给出这个乳胶表代码:

\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}
Run Code Online (Sandbox Code Playgroud)

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

我知道,在乳胶中,我可以使用arydshln包制作水平虚线,也可以操纵 \dashlinedash{}、\dashlinegap{} 和 \arrayrulewidth{} 来制作虚线。

但是在打印 xtable 时如何制作点划线呢?有没有人有办法解决吗?

CL.*_*CL. 5

add.to.row就是您正在寻找的。从print.xtable

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

不要忘记转义反斜杠,所以你必须写成\\hdashlineinstad of \hdashline。换行符\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}
Run Code Online (Sandbox Code Playgroud)

输出:

\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}
Run Code Online (Sandbox Code Playgroud)

带虚线的表。