\Xcline (makecell) 与 \vrule 不一致

\Xcline (makecell) 与 \vrule 不一致

我不知道如何解决这个问题,其中\Xcline“来自”与“我”中设置的“我”makecell不一致(需要这样做,因为实际的表格可能跨越几页)。\vrulelongtable

以下是该问题的 MWE:

\documentclass[11pt]{article}

\usepackage{longtable}
\usepackage{makecell}

\begin{document}
    \begin{longtable}{c!{\vrule width 1.5pt}c!{\vrule width 1.5pt}c}
        \Xcline{2-3}{1.5pt}
        A & B & C \\
        \Xcline{1-3}{1.5pt}
        A & B & C \\
        \Xcline{2-3}{1.5pt}
    \end{longtable}
\end{document}

我遇到的问题是,最后一个 \Xcline 和 \vrule 之间的小方块保持为白色(我猜发生这种情况是因为 \vrule 为水平线留出了空间,但 \Xcline 只是填充了单元格下方的空间 - 但我真的不知道如何解决这个问题)。

以下是编译后的 MWE

我尝试添加没有\vrules 的额外表行,但同样不起作用。如果这makecell是问题所在,如果有其他建议,我不介意切换到另一个包,我真的不需要任何其他makecell功能。

答案1

不知道你的表格的背景。但是,正如我在评论中所说,我会再考虑一下是否真的需要垂直线,即你不喜欢有专业外观的表格(如给定链接中建议的那样)...

假设您需要整个表中这样的规则,那么以下建议可以帮助您:

\documentclass{article}
\usepackage{hhline,colortbl}

\begin{document}
\arrayrulewidth=1.5pt
\begin{tabular}{l | c | c }
    \hhline{~|--}
  1 & 2 & 3     \\
    \hhline{-|--}
  4 & 5 & 6     \\ 
    \hhline{~|--}
\end{tabular}
\end{document}

在此处输入图片描述

答案2

下面的示例将为您指明正确的方向,因为它使用可全局应用的\arrayrulecolorand\arrayrulewidth命令将颜色与厚度结合在一起 - 示例中清楚地显示了排列顺序

在此处输入图片描述

\documentclass{article}

\usepackage{hhline,colortbl}

\begin{document}
\arrayrulecolor{green}
\arrayrulewidth=2mm
\begin{tabular}{
 !{\color{red}\vrule width 2pt}
 l
 |
 c
 !{\color{blue}\vrule width 2pt}
 c
 ||
}
 one & two & three\\
\hline
  1 & 2 & 3\\%
\noalign{
\color{yellow}
\hrule height 5pt
}%
4&5&6\\
\hline
\end{tabular}
\end{document}

你可能还想看看——https://tex.stackexchange.com/a/337790/197451

这符合你的要求吗?

如果您认为答案符合您的要求,请点击左侧的红色三角形和下方的勾号来为答案点赞

答案3

使用 6.11 (2022-07-16) 版本nicematrix,可以定义\cline具有 Tikz 线条特征的命令类似的命令(例如:使用 Tikz 键设置厚度line width)。

在下面的例子中,我还使用了 Tikz 键,shorten <以便与粗体垂直规则完美连接。

\documentclass[11pt]{article}
\usepackage{nicematrix,tikz}

\begin{document}    

\NiceMatrixOptions
  {
    custom-line = 
     {
       letter = I ,
       tikz = { line width = 1.5 pt } , 
       total-width = 1.5pt 
     } ,
    custom-line = 
     {
       command = boldline , 
       ccommand = cboldline ,
       tikz = { line width = 1.5pt , shorten < = -1.5pt } , 
       total-width = 1.5pt 
     }
  }

\begin{NiceTabular}{cIcIcIc}[cell-space-limits=5pt]
    \cboldline{2-3}
    A & B & C & D\\
    \cboldline{1-3}
    A & B & C & D\\
    \cboldline{2-3}
\end{NiceTabular}

\end{document}

您需要多次编译(因为使用了 PGF/Tikz 节点nicematrix)。

上述代码的输出

相关内容