![使用 @{} 交替为行添加阴影](https://linux22.com/image/273064/%E4%BD%BF%E7%94%A8%20%40%7B%7D%20%E4%BA%A4%E6%9B%BF%E4%B8%BA%E8%A1%8C%E6%B7%BB%E5%8A%A0%E9%98%B4%E5%BD%B1.png)
我想交替对表格中的行进行阴影处理。我知道如何交替为表格中的行添加阴影和类似的问题。但是,由于我的表格很长,需要非常整齐地对齐,以免完全混乱,因此我大量使用通过 自定义单元格分隔符@{}
。当我尝试其他地方提出的解决方案时,格式完全被搞砸了。我想这@{}
就是出错的原因\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
,并添加了一些\cmidrule
s。我可能会建议将 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\cmidrule
误xcolor
以为表格中添加了额外的行。
完成此操作后,结果将是