我该如何修复第三行?单词被剪掉了一半。
\begin{center}
\centering
\rowcolors{2}{gray!25}{white}
\captionof{table}{aa} \label{tab:t1}
\vspace{0.3cm}
\renewcommand\arraystretch{1.3}
\begin{tabular}{c c c c c}
\rowcolor{gray!50}
External Stimulus & Dimension & Material & Fabrication Technique & Ref.\\
\hline
Temperature & Some values & Some values & qq & 1\\ \hline
\multirow{2}*{Light} & Some values & Some values & rr &2\\\cline{2-5}
& Some values & Some values & zz &3\\\hline
Magnetic field & Some values & Some values & d & 4\\\hline
pH & 3D & e & mm & 5\\
\end{tabular}
\end{center}
答案1
将“Light”放在多行的最后一行,然后使用\multirow{-2}*{Light}
。
换句话说,改为
\begin{tabular}{c c c c c}
\rowcolor{gray!50}
External Stimulus & Dimension & Material & Fabrication Technique & Ref.\\
\hline
Temperature & Some values & Some values & qq & 1\\ \hline
& Some values & Some values & rr &2\\\cline{2-5}
\multirow{-2}*{Light} & Some values & Some values & zz &3\\\hline
Magnetic field & Some values & Some values & d & 4\\\hline
pH & 3D & e & mm & 5\\
\end{tabular}
原因是当前代码绘制了Light
行的第一行,其中绘制的文本偏移量较低,并且然后它会绘制第二行。但是当你用背景色绘制第二行时,它会覆盖第一行下方的文本。因此,要解决这个问题,请先绘制所有背景,然后然后放上文字。multirow
包装手册第 8-9 页有更详细的解释。
我不确定这是否符合\rowcolors
规范。您可能需要单独为每行着色。
答案2
您可以使用该表格在所有 PDF 查看器中{NiceTabular}
获得nicematrix
完美的效果(没有细白线)。
\documentclass{article}
\usepackage{nicematrix}
\usepackage{caption}
\begin{document}
\begin{center}
\centering
\captionof{table}{aa} \label{tab:t1}
\vspace{0.3cm}
\renewcommand\arraystretch{1.3}
\begin{NiceTabular}{c c c c c}
\CodeBefore
\rowcolors{2}{gray!25}{}[respect-blocks]
\rowcolor{gray!50}{1}
\Body
External Stimulus & Dimension & Material & Fabrication Technique & Ref.\\
\hline
Temperature & Some values & Some values & qq & 1\\ \hline
\Block{2-1}{Light} & Some values & Some values & rr &2\\\cline{2-5}
& Some values & Some values & zz &3\\\hline
Magnetic field & Some values & Some values & d & 4\\\hline
pH & 3D & e & mm & 5\\
\end{NiceTabular}
\end{center}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。