在调整大小的表格中创建阴影单元格

在调整大小的表格中创建阴影单元格

我正在写一篇 elsevierels-cas文章,并尝试为 table\tabular 设置填充一些表格单元格。它似乎工作正常,直到我使用\resizebox并将表格大小设置为\textwidth之前,它似乎工作正常。Tikz 填充的单元格似乎无法正确缩放。我查看了以前的解决方案,例如使用定位时填充表格单元格失败正确缩放 tikzpicture但这些解决方案似乎不适合我所工作的桌面环境。

对于 MWE,我无法在一个单元中正确安装任何舱口,更不用说两个了。我正在寻找这样的东西(见附图)。

MWE

\documentclass[a4paper]{cas-dc}

\usepackage{makecell}
\usepackage{tikz}
\usepackage{multirow}

\begin{document}   

\begin{table}[]
\resizebox{\textwidth}{!}{%




\begin{tabular}{c|ll|llc|cccc|}
\multicolumn{1}{l|}{\multirow{2}{*}{}}                                  & \multicolumn{2}{c|}{\multirow{2}{*}{Unit}} & \multicolumn{3}{c|}{Time}                           & \multicolumn{4}{c|}{Non-uniformity}                                                              \\ \cline{4-10} 
\multicolumn{1}{l|}{}                                                   & \multicolumn{2}{c|}{}                      & \multicolumn{1}{c|}{1} & \multicolumn{1}{l|}{2} & 3 & \multicolumn{1}{c|}{1} & \multicolumn{1}{c|}{2} & \multicolumn{1}{c|}{3} & 4                     \\ \hline
\multirow{3}{*}{\begin{tabular}[c]{@{}c@{}}Single-\\ part\end{tabular}} & \multicolumn{2}{l|}{x}                     & \multicolumn{3}{l|}{}                               & \multicolumn{3}{c|}{}                                                    &                       \\ \cline{2-10} 
                                                                        & \multicolumn{2}{l|}{y}                     & \multicolumn{3}{l|}{}                               & \multicolumn{3}{c|}{}                                                    &                       \\ \cline{2-10} 
                                                                        & \multicolumn{2}{l|}{z}                     & \multicolumn{3}{l|}{}                               & \multicolumn{3}{c|}{}                                                    & \multicolumn{1}{l|}{} \\ \hline
\end{tabular}}
\end{table}

\end{document}

看起来像这样: 平均能量损失 但我希望创造这个: 目标

答案1

如果您确实想要调整带有\resizebox阴影单元格的表格的大小,您可以{NiceTabular}尝试nicematrix

\documentclass{article}
\usepackage{nicematrix,tikz}
\usetikzlibrary{patterns}
\usepackage{lipsum} % for dummy text

\begin{document}

\sffamily

\lipsum[1]

\tikzset{mypattern/.style = {pattern=grid,pattern color=lightgray}}

\noindent
\resizebox{\textwidth}{!}{\begin{NiceTabular}{ccccccccc|}[hvlines-except-borders]
\Block{2-1}{} & \Block{2-1}{Unit} & \Block{1-3}{Time} & & & \Block{1-4}{Non-uniformity} &&&\\
& & 1 & 2 & 3 & 1 & 2 & 3 & 4 \\
\Block{3-1}{Single-\\part} & x & \Block{1-3}{} & & & \Block{1-3}{} \\
                           & y & \Block{1-3}{} & & & \Block{1-3}{} & & & \Block[tikz=mypattern]{}{} \\
                           & z & \Block[tikz=mypattern]{1-3}{} 
                                               & & & \Block[tikz=mypattern]{1-3}{} \\
\Hline
\end{NiceTabular}}

nicematrix因为使用 PGF/Tikz 节点,所以您需要多次编译。

第一个代码的输出

但可能最好使用列(采用的列X样式)。X{tabularx}

\documentclass{article}
\usepackage{nicematrix,tikz}
\usetikzlibrary{patterns}
\usepackage{lipsum} % for dummy text

\begin{document}

\sffamily

\lipsum[1]

\tikzset{mypattern/.style = {pattern=grid,pattern color=lightgray}}

\noindent
\begin{NiceTabular}{cc*{7}{X[c]}|}[hvlines-except-borders]
\Block{2-1}{} & \Block{2-1}{Unit} & \Block{1-3}{Time} & & & \Block{1-4}{Non-uniformity} &&&\\
& & 1 & 2 & 3 & 1 & 2 & 3 & 4 \\
\Block{3-1}{Single-\\part} & x & \Block{1-3}{} & & & \Block{1-3}{} \\
                           & y & \Block{1-3}{} & & & \Block{1-3}{} & & & \Block[tikz=mypattern]{}{} \\
                           & z & \Block[tikz=mypattern]{1-3}{} 
                                               & & & \Block[tikz=mypattern]{1-3}{} \\
\Hline
\end{NiceTabular}


\end{document}

第二段代码的输出

相关内容