我正在写一篇 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}