NiceTabular Blocks 与 Setcellgapes 不兼容

NiceTabular Blocks 与 Setcellgapes 不兼容

Nicematrix 是一个功能强大的软件包,我要向 F.Pantigny 表示衷心的感谢。我刚刚开始使用它,我对这个软件包提供的各种可能性感到非常满意。但是我在将它与\Blocks 一起使用时遇到了问题。
请您不要介意 和 ,\sf它们\small是错误的行为,但与我提出的问题无关。

我想在一个非常简单的表格中将三行放入一个单元格中。但我还想使用\makegapedcells放大行。

无 Makegapedcells

我尝试了两个想法:

  • 用一个单元格制作一个块(我认为这是作弊)\Block{1-1}
  • 用 逐列制作三个单元格的块\Block{3-1}

两者都运行良好。

\documentclass[a4paper,11pt]{article}
\usepackage[a4paper]{geometry}
\geometry{top=0.8cm, bottom=2cm, left=1.3cm, right=1.3cm}

\usepackage[table]{xcolor}
\usepackage{nicematrix}

\begin{document}
    \sf  
    
    %--------------------- Biscuits 
    \small
    
    \begin{NiceTabular}{|W{c}{3mm}|W{c}{15mm}|*{8}{W{c}{13mm}|}}[code-before =\rowcolor{gray!20}{1},code-before =\columncolor{gray!20}{1}]
        \hline  
        & A & B & C & D & E & F & G & H & I\\
        \hline
        1 & & Lundi & Mardi & Mercredi & Jeudi & Vendredi & Samedi & Dimanche & Total \\
        \hline
        2 & \Block{1-1}{Nombre de\\biscuits\\vendus} & 324 & 240 & 310 & 204 & 318 & 386 & 468 & \\
        \hline
    \end{NiceTabular}
    
    \vspace*{1cm}
    
        %--------------------- Biscuits  2
    
    \begin{NiceTabular}{|W{c}{3mm}|W{c}{15mm}|*{8}{W{c}{13mm}|}}[code-before =\rowcolor{gray!20}{1},code-before =\columncolor{gray!20}{1}]
        \hline  
        & A & B & C & D & E & F & G & H & I\\
        \hline
        1 & & Lundi & Mardi & Mercredi & Jeudi & Vendredi & Samedi & Dimanche & Total \\
        \hline
        \Block{3-1}{2} & \Block{3-1}{Nombre de\\biscuits\\vendus} & \Block{3-1}{324} & \Block{3-1}{240} & \Block{3-1}{310} & \Block{3-1}{204} & \Block{3-1}{318} & \Block{3-1}{386} & \Block{3-1}{468} & \Block{3-1}{}\\
        & & & & & & & & & \\
        & & & & & & & & & \\
        \hline
    \end{NiceTabular}

\end{document}

无间隙细胞

使用 Makegapedcells

现在我想使用\setcellgapes{5pt}扩大行距,因为我发现它们太细了。我尝试了完全相同的两个选项。

\documentclass[a4paper,11pt]{article}
\usepackage[a4paper]{geometry}
\geometry{top=0.8cm, bottom=2cm, left=1.3cm, right=1.3cm}

\usepackage[table]{xcolor}
\usepackage{nicematrix}

\usepackage{array,multirow,makecell}
\makegapedcells
\setcellgapes{5pt}

\begin{document}
    \sf  
    
    %--------------------- Biscuits 
    \small
    
    \begin{NiceTabular}{|W{c}{3mm}|W{c}{15mm}|*{8}{W{c}{13mm}|}}[code-before =\rowcolor{gray!20}{1},code-before =\columncolor{gray!20}{1}]
        \hline  
        & A & B & C & D & E & F & G & H & I\\
        \hline
        1 & & Lundi & Mardi & Mercredi & Jeudi & Vendredi & Samedi & Dimanche & Total \\
        \hline
        2& \Block{1-1}{Nombre de\\biscuits\\vendus} & 324 & 240 & 310 & 204 & 318 & 386 & 468 & \\
        \hline
    \end{NiceTabular}
    
    \vspace*{1cm}
    
        %--------------------- Biscuits  2
    
    \begin{NiceTabular}{|W{c}{3mm}|W{c}{15mm}|*{8}{W{c}{13mm}|}}[code-before =\rowcolor{gray!20}{1},code-before =\columncolor{gray!20}{1}]
        \hline  
        & A & B & C & D & E & F & G & H & I\\
        \hline
        1 & & Lundi & Mardi & Mercredi & Jeudi & Vendredi & Samedi & Dimanche & Total \\
        \hline
        \Block{3-1}{2} & \Block{3-1}{Nombre de\\biscuits\\vendus} & \Block{3-1}{324} & \Block{3-1}{240} & \Block{3-1}{310} & \Block{3-1}{204} & \Block{3-1}{318} & \Block{3-1}{386} & \Block{3-1}{468} & \Block{3-1}{}\\
         & & & & & & & & & \\
         & & & & & & & & & \\
        \hline
    \end{NiceTabular}
        
\end{document}

发生了以下情况(请注意,在第二个表中,每次我编译代码时,数字都会改变其位置,但永远不会到达它们预期的位置)。

使用 Makegapedcells

问题

我做错了什么?有没有办法在不使用的情况下管理行高\makegapedcells,甚至更好的是,有没有办法绕过这种明显的不兼容性,让我在同一个文档中同时使用老式表格和 NiceTabular 表格?
提前致谢。

答案1

nicematrix包提供了一种内置方法来增加行高,使用cell-space-top-limitcell-space-bottom-limit类似于包提供的命令cellspace。也可以使用 键设置这两个参数cell-space-limits

\Block我建议使用水平居中的类型列作为第二列,而不是使用多个命令和手动换行符m。由于文本对于 15 毫米宽的列来说太宽,我稍微将列宽增加到 17 毫米。我还用 替换\sf\sffamily

在此处输入图片描述

\documentclass[a4paper,11pt]{article}
\usepackage[a4paper]{geometry}
\geometry{top=0.8cm, bottom=2cm, left=1.3cm, right=1.3cm}

\usepackage{nicematrix}

\begin{document}
    \sffamily 
    \small
    
    \begin{NiceTabular}{W{c}{3mm}m[c]{17mm}*{8}{W{c}{13mm}}}[cell-space-limits=5pt, hvlines]
     \CodeBefore
        \rowcolor{gray!20}{1}
        \columncolor{gray!20}{1}
     \Body
        & A & B & C & D & E & F & G & H & I\\
        1 & & Lundi & Mardi & Mercredi & Jeudi & Vendredi & Samedi & Dimanche & Total \\
        2 & Nombre de biscuits vendus & 324 & 240 & 310 & 204 & 318 & 386 & 468 & \\
    \end{NiceTabular}

\end{document}

相关内容