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



    问题

    在这里插入图片描述

    通常做表格的时候可能会遇到如表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}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    \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}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

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

      • booktabs宏包提供的\cmidrule的格式如下
      \cmidrule[](){a-b}
      
      • 1
      • {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}
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17

      在这里插入图片描述

      三、其它解决方案

      在这里插入图片描述

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

      四、引用

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

    • 相关阅读:
      python 列表常用方法
      用户登录问题
      【17】基础知识:reduxjs/toolkit
      XAPP585框架详解-LVDS时钟恢复逻辑
      【国庆活动】掌握这些SQL核心理念,一起轻松玩转国庆假期
      成都力寰璨泓科技有限公司抖音小店购物新体验
      淘宝API接口
      【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现
      AOP切面类使用代码
      基于C#的学生综合教务管理系统
    • 原文地址:https://blog.csdn.net/qq_21774161/article/details/127719179