删除自动表头行命令中的额外列分隔符

删除自动表头行命令中的额外列分隔符

我在工作中创建了很多表格,我经常发现我的标题行代码很难读,特别是因为我喜欢\textbf{}并使用数学符号。

我已经走到这一步了,但是我无法删除最后一个&,这意味着我总是得到一个多余的行。有人能帮忙吗?

\documentclass{article}
\usepackage{xparse}
\usepackage{booktabs}
\ExplSyntaxOn
\NewDocumentCommand{\tabHeader}{m}
 {
  \clist_map_inline:nn { #1 }{\textbf{{##1}} & }
 }
\ExplSyntaxOff


\begin{document}

\begin{table}[]
\begin{tabular}{c|ccc|ccc}
\toprule
\tabHeader{A, B, C, D, E, F, G}\\
\midrule
1 & 2 & 3 & 4 & 5 & 6 & 7 \\
1 & 2 & 3 & 4 & 5 & 6 & 7 \\
1 & 2 & 3 & 4 & 5 & 6 & 7 \\
1 & 2 & 3 & 4 & 5 & 6 & 7 \\
1 & 2 & 3 & 4 & 5 & 6 & 7 \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

答案1

\documentclass{article}
\usepackage{xparse}
\usepackage{booktabs}

\ExplSyntaxOn
\NewDocumentCommand{\tabHeader}{m}
 {
  \seq_set_from_clist:Nn \l_tmpa_seq { #1 }
  \seq_set_map:NNn \l_tmpa_seq \l_tmpa_seq { \textbf{##1} }
  \seq_use:Nn \l_tmpa_seq { & }
 }
\ExplSyntaxOff


\begin{document}

\begin{table}[h]
\begin{tabular}{c|ccc|ccc}
\toprule
\tabHeader{A, B, C, D, E, F, G}\\
\midrule
1 & 2 & 3 & 4 & 5 & 6 & 7 \\
1 & 2 & 3 & 4 & 5 & 6 & 7 \\
1 & 2 & 3 & 4 & 5 & 6 & 7 \\
1 & 2 & 3 & 4 & 5 & 6 & 7 \\
1 & 2 & 3 & 4 & 5 & 6 & 7 \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

上述代码的输出

相关内容