完美解决在Latex的表格里的单元格内的文本紧贴着上边框线条的问题

完美解决在Latex的表格里的单元格内的文本紧贴着上边框线条的问题

  • 问题
  • 一、通常出现表1的情况的代码如下
  • 二、解决办法,也就是表2的代码
  • 三、其它解决方案
  • 四、引用


问题

完美解决在Latex的表格里的单元格内的文本紧贴着上边框线条的问题_第1张图片

通常做表格的时候可能会遇到如表1所示的情况,也就是单元格中的文本紧贴着单元格顶部的线条,这样看起来总觉得很变扭。而正常情况下我们希望看到的效果如表2所示,也就是在垂直方向也希望单元格中的文本能上下居中。

一、通常出现表1的情况的代码如下

\begin{table}[h]
\centering
\begin{tabular}{cccccc}
\toprule
 \multirow{2}{*}{$g$,$s$ Leves}   & \multirow{2}{*}{Q-matrix}  & \multirow{2}{*}{Models} & \multirow{2}{*}{Metrics} & \multicolumn{2}{c}{No. of $N$} \\ \cline{5-6}
                                  &                            &                         &                          & 50       & 300       \\ 
\midrule
row1 & A.1 & B.1 & C.1 & D.1 & E.1 \\
row2 & A.2 & B.2 & C.2 & D.2 & E.2 \\
row3 & A.3 & B.3 & C.3 & D.3 & E.3 \\
row4 & A.4 & B.4 & C.4 & D.4 & E.4 \\
row5 & A.5 & B.5 & C.5 & D.5 & E.5 \\
\bottomrule
\end{tabular}
\caption{table 1}
\end{table}

\multirow{2}{}{ g g g, s s s Leves} & \multirow{2}{}{Q-matrix} & \multirow{2}{}{Models} & \multirow{2}{}{Metrics} & \multicolumn{2}{c}{No. of N N N} \ \cline{5-6}
问题就出在这一行上,通常我们给单元格添加边框用的命令为==\cline==当用这个命令的时候就容易出现表1中的问题。

二、解决办法,也就是表2的代码

\begin{table}[h]
\centering
\begin{tabular}{cccccc}
\toprule
 \multirow{2}{*}{$g$,$s$ Leves}   & \multirow{2}{*}{Q-matrix}  & \multirow{2}{*}{Models} & \multirow{2}{*}{Metrics} & \multicolumn{2}{c}{No. of $N$} \\ \cmidrule{5-6}
                                  &                            &                         &                          & 50       & 300       \\ 
\midrule
row1 & A.1 & B.1 & C.1 & D.1 & E.1 \\
row2 & A.2 & B.2 & C.2 & D.2 & E.2 \\
row3 & A.3 & B.3 & C.3 & D.3 & E.3 \\
row4 & A.4 & B.4 & C.4 & D.4 & E.4 \\
row5 & A.5 & B.5 & C.5 & D.5 & E.5 \\
\bottomrule
\end{tabular}
\caption{table 2}
\end{table}

解决办法就是换一个命令,改用 \cmidrule

  • booktabs宏包提供的\cmidrule的格式如下
\cmidrule[](){a-b}
  • {a-b}就是表示从第几列到第几列之间需要划一条线
  • \cmidrule在连续使用的时候, 可以使用(lr)表示间距的表格线可以左右向内缩短一小段距离, 如果只向左,则可用(l{<距离>}),向右,则用 (r{<距离>}),<距离>可以根据自己需要来设置
  • 如下所示 用命令== \cmidrule(lr){4-4} \cmidrule(l){5-6}==调整线条两端不互相连接
\begin{table}[h]
\centering
\begin{tabular}{cccccc}
\toprule
 \multirow{2}{*}{$g$,$s$ Leves}   & \multirow{2}{*}{Q-matrix}  & \multirow{2}{*}{Models} & Metrics   & \multicolumn{2}{c}{No. of $N$} \\  
 \cmidrule(lr){4-4} \cmidrule(l){5-6}
                                  &                            &                         &100        & 50       & 300       \\ 
\midrule
row1 & A.1 & B.1 & C.1 & D.1 & E.1 \\
row2 & A.2 & B.2 & C.2 & D.2 & E.2 \\
row3 & A.3 & B.3 & C.3 & D.3 & E.3 \\
row4 & A.4 & B.4 & C.4 & D.4 & E.4 \\
row5 & A.5 & B.5 & C.5 & D.5 & E.5 \\
\bottomrule
\end{tabular}
\caption{table 3}
\end{table}

完美解决在Latex的表格里的单元格内的文本紧贴着上边框线条的问题_第2张图片

三、其它解决方案

完美解决在Latex的表格里的单元格内的文本紧贴着上边框线条的问题_第3张图片

有作者提出这种解决方案,这种方案也可以解决上面的问题,但是这种方案美中不足,这种方案会整体修改原来的表格的每一行的高度,使用这种方案之后会导致整个表格在纵向上变得很长,在论文排版中非常占用版面,不太推荐使用。

四、引用

[1] : LaTeX表格字太贴近上面表线

你可能感兴趣的:(论文写作,latex,latex,论文写作)