使用 @{} 交替为行添加阴影

使用 @{} 交替为行添加阴影

我想交替对表格中的行进行阴影处理。我知道如何交替为表格中的行添加阴影和类似的问题。但是,由于我的表格很长,需要非常整齐地对齐,以免完全混乱,因此我大量使用通过 自定义单元格分隔符@{}。当我尝试其他地方提出的解决方案时,格式完全被搞砸了。我想这@{}就是出错的原因\rowcolors。我怎样才能在不搞砸格式的情况下给行着色?

我的表格的一个最小示例是

\documentclass[a4paper]{scrartcl}

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

\begin{document}

\rowcolors{2}{white}{gray!15} % <--- this is the solution from the other questions

\begin{center}
\begin{tabular}    {cl@{}r@{\,}r@{\,}r@{\,}r@{\,}r@{}l@{\qquad}l@{}r@{\,}r@{\,}r@{\,}r@{}lc@{\qquad}l@{}r@{\,}r@{)(}r@{}llc}
\toprule
& \multicolumn{7}{c}{\(SO(10)\) }  & \multicolumn{7}{c}{\(SU(5)\)} & \multicolumn{6}{c}{\(\mathcal G_\mathrm{SM}\)} & \\
Level & \multicolumn{7}{c}{weight} & \multicolumn{6}{l}{weight} & \(\mathrm{IR}_x\) & \multicolumn{5}{c}{weight} & \(\mathrm{IR}_Y\) & SM state \\ \midrule
0 & (&0& 0& 0& 0& 1&) & (&0& 1& 0& 0&) & \(\mathbf{10}_1\) &        (&1&0&1&) & \(\mathbf{3} \times \mathbf{2}_\frac{1}{6}\)&\(u_l\)\\
1 & (&0& 0& 1& 0& -1&) & (&0& 0& 0& 1&) & \(\overline{\mathbf 5}_{-3}\) &   (&0&1&0&) & \(\overline{\mathbf{3}} \times \mathbf 1_\frac{1}{3}\) & \(d^c_r\)\\
2 & (&0& 1& -1& 1& 0&) & (&1& -1& 1& 0&) & \(\mathbf{10}_1\) &      (&0&1&0&) & \(\overline{\mathbf{3}} \times \mathbf 1_{-\frac{2}{3}}\)& \(u^c_r\)\\
3 & (&1& -1& 0& 1& 0&) & (&0& 0& 1& -1&) & \(\overline{\mathbf 5}_{-3}\) &  (&0&0&1&) & \(\mathbf{1} \times \mathbf 2_{-\frac{1}{2}}\) &\(\nu_l\)\\
3 & (&0& 1& 0& -1& 0&) & (&1& 0& -1& 1&) & \(\mathbf{10}_1\) &      (&1&0&-1&) & \(\mathbf{3} \times \mathbf{2}_{\frac{1}{6}}\) &\(d_l\)\\
4 & (&-1& 0& 0& 1& 0&) & (&-1& 0& 1&0&) & \(\mathbf{10}_1\) &       (&-1&1&1&) & \(\mathbf{3} \times \mathbf{2}_{\frac{1}{6}}\) &\(u_l\)\\
4 & (&1& -1& 1& -1& 0&) & (&0& 1& -1& 0&) & \(\overline{\mathbf 5}_{-3}\) &     (&1&-1&0&) & \(\overline{\mathbf{3}} \times \mathbf{1}_\frac{1}{3}\) &\(d^c_r\)\\
5 & (&-1& 0& 1& -1& 0&) & (&-1& 1& -1& 1&) & \(\mathbf{10}_1\) &        (&0&0&0&) & \(\mathbf{1} \times \mathbf{1}_1\) &\(e^c_r\)\\
5 & (&1& 0& -1& 0& 1&) & (&1& 0& 0& -1&) & \(\mathbf{10}_1\) &      (&1&-1&0&) & \(\overline{\mathbf{3}} \times \mathbf{1}_{-\frac{2}{3}}\)& \(u^c_r\)\\
6 & (&-1& 1& -1& 0& 1&) & (&0& 0& 0& 0&) & \(\mathbf 1_5\) &        (&0&0&0&) & \(\mathbf 1 \times \mathbf 1_0\) &\(\nu_r\)\\
6 & (&1& 0& 0& 0& -1&) & (&1& -1& 0& 0&) & \(\overline{\mathbf 5}_{-3}\) &  (&0&0&-1&) & \(\mathbf 1 \times \mathbf 2_{-\frac{1}{2}}\) &\(e_l\)\\
7 & (&0& -1& 0& 0& 1&) & (&-1& 1& 0& -1&) & \(\mathbf{10}_1\) &         (&0&-1&1&) & \(\mathbf 3 \times \mathbf 2_\frac{1}{6}\) & \(u_l\)\\
7 & (&-1& 1& 0& 0& -1&) & (&0& -1& 0& 1&) & \(\mathbf{10}_1\) &         (&-1&1&-1&) & \(\mathbf{3} \times \mathbf 2_\frac{1}{6}\) &\(d_l\)\\
8 & (&0& -1& 1& 0& -1&) & (&-1& 0& 0& 0&) & \(\overline{\mathbf 5}_{-3}\) &     (&-1&0&0&) & \(\overline{\mathbf{3}} \times \mathbf{1}_\frac{1}{3}\) &\(d^c_r\)\\
9 & (&0& 0& -1& 1& 0&) & (&0& -1& 1& -1&) & \(\mathbf{10}_1\) &         (&-1&0&0&) & \(\overline{\mathbf{3}}\times \mathbf{1}_{-\frac{2}{3}}\) &\(u^c_r\)\\
10 & (&0& 0& 0& -1& 0&) & (&0& 0& -1& 0&) & \(\mathbf{10}_1\) &         (&0&-1&-1&) & \(\mathbf{3} \times \mathbf 2_\frac{1}{6}\)& \(d_l\)\\
\bottomrule
\end{tabular}
\end{center}
\end{document}

答案1

这里有些东西可能对你有用。它使用包pgffor。我只部分实现了它:你的代码中有很多需要重写的地方。但我认为它达到了你想要的效果。

\documentclass[a4paper]{scrartcl}

\usepackage{booktabs}
\usepackage[table]{xcolor}
\usepackage{pgffor}

\newcommand{\nnkweights}[1]{(\foreach \x in {#1} {\makebox[1.15em][r]{\x}})}
\begin{document}

\rowcolors{2}{white}{gray!15} % <--- this is the solution from the other questions

\begin{center}
\begin{tabular}    {c c  c  l c  c  c} \toprule
      & {\(SO(10)\) }  & \multicolumn{2}{c}{\(SU(5)\)}    & \multicolumn{2}{c}{\(\mathcal G_\mathrm{SM}\)} &          \\\cmidrule(rl){3-4}\cmidrule(rl){5-6}
Level & {weight}       & {weight}    & \(\mathrm{IR}_x\)  & {weight} & \(\mathrm{IR}_Y\)                   & SM state \\ \midrule
0 & \nnkweights{  0, 0, 0, 0, 1}  & \nnkweights{ 0, 1, 0, 0}  & \(\mathbf{10}_1\)             & \nnkweights{ 1, 0}\nnkweights{  1} & \(\mathbf{3} \times \mathbf{2}_\frac{1}{6}\)              & \(u_l\)  \\
1 & \nnkweights{  0, 0, 1, 0,-1}  & \nnkweights{ 0, 0, 0, 1}  & \(\overline{\mathbf 5}_{-3}\) & \nnkweights{ 0, 1}\nnkweights{  0} & \(\overline{\mathbf{3}} \times \mathbf 1_\frac{1}{3}\)    & \(d^c_r\)\\
2 & \nnkweights{  0, 1, -1, 1, 0} & \nnkweights{ 1, -1, 1, 0} & \(\mathbf{10}_1\)             & \nnkweights{ 0, 1}\nnkweights{  0} & \(\overline{\mathbf{3}} \times \mathbf 1_{-\frac{2}{3}}\) & \(u^c_r\)\\
3 & \nnkweights{  1, -1, 0, 1, 0} & \nnkweights{ 0, 0, 1,-1}  & \(\overline{\mathbf 5}_{-3}\) & \nnkweights{ 0, 0}\nnkweights{  1} & \(\mathbf{1} \times \mathbf 2_{-\frac{1}{2}}\)            & \(\nu_l\)\\
3 & \nnkweights{  0, 1, 0, -1, 0} & \nnkweights{ 1, 0, -1, 1} & \(\mathbf{10}_1\)             & \nnkweights{ 1, 0}\nnkweights{ -1} & \(\mathbf{3} \times \mathbf{2}_{\frac{1}{6}}\)            & \(d_l\)  \\
\bottomrule
\end{tabular}
\end{center}

\end{document}

我做了一些额外的更改:我删除了 s \qquad,并添加了一些\cmidrules。我可能会建议将 es 的内容\makebox置于数学模式中,以便正确输入负号,但我尚未实施该更改。

关于\qquad,如果您确实想要文档中的额外空间,我建议添加一个虚拟列,并\rule{<dim>}{0pt}在其第一次出现时通过 添加适当的空白。如果您对空间特别挑剔,那么您可以执行类似 的操作\rule{\dimexpr<desired-dimension>-2\tabcolsep\relax}{0pt}。否则,交替行阴影显然不喜欢处理@{<detail>}

最后我建议改变

\rowcolors{2}{white}{gray!15}

\rowcolors{5}{white}{gray!15}

使标题变色。行规范似乎有点不对,但那是因为 s\cmidrulexcolor以为表格中添加了额外的行。

完成此操作后,结果将是

在此处输入图片描述

相关内容