以下“简单”的解决方案会引发错误:
ERROR: Misplaced \omit. --- TeX said --- \multispan ->\omit \@multispan l.13 } \\ --- HELP --- From the .log file... I expect to see \omit only after tab marks or the \cr of an alignment. Proceed, and I'll ignore this case.
\documentclass{article}
\usepackage{expl3}
\ExplSyntaxOn
\begin{document}
\seq_set_split:Nnn \l_tmpa_seq { , } { 1 , 2 , 3 }
\begin{tabular}{*{\seq_count:N \l_tmpa_seq}{c}}
hellow & world \\
\seq_map_inline:Nn \l_tmpa_seq {
\multicolumn{1}{|c|}{#1} &
} \\
goodbye & world
\end{tabular}
\end{document}
我想制作一张如下的表格:
hello world
| 1 | 2 | 3 |
goodbye world
解决这个问题最有效/最清晰的方法是什么?
答案1
您必须使用可扩展函数,因为任何不可扩展的标记\multicolumn
在其后都会变得非法。
\documentclass{article}
\usepackage{expl3}
\ExplSyntaxOn
\begin{document}
\seq_set_split:Nnn \l_tmpa_seq { , } { 1 , 2 , 3 }
\seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl
\cs_new:Npn \sean_add_mc:n #1
{
& \multicolumn{1}{c|}{#1}
}
\begin{tabular}{*{\int_eval:n { \seq_count:N \l_tmpa_seq + 1 }}{c}}
hellow & world & some \\
\multicolumn{1}{|c|}{\l_tmpa_tl}
\seq_map_function:NN \l_tmpa_seq \sean_add_mc:n \\
goodbye & world & again
\end{tabular}
\end{document}
请注意,第一个项目应该被分离,因为它需要不同的处理。