Nicematrix 是一个功能强大的软件包,我要向 F.Pantigny 表示衷心的感谢。我刚刚开始使用它,我对这个软件包提供的各种可能性感到非常满意。但是我在将它与\Block
s 一起使用时遇到了问题。
请您不要介意 和 ,\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
,甚至更好的是,有没有办法绕过这种明显的不兼容性,让我在同一个文档中同时使用老式表格和 NiceTabular 表格?
提前致谢。
答案1
该nicematrix
包提供了一种内置方法来增加行高,使用cell-space-top-limit
和cell-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}