\documentclass{article}
\usepackage{booktabs}
\begin{tabular{@{}ll|r|r|r|r|r|r|r|r|r|r|r|r|r|r|r|@{}}
A & B &&&&&&&&&&&&&&&\\%15 blank &
\end{tabular}
我想像上面那样做,其中只有前两列有值,其他列为空白。
对于每一行,&
可以放入很多行来创建表。
答案1
您可以复制&
使用详细信息重复命令 n 次?:
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\cs_new_eq:NN \Repeat \prg_replicate:nn
\ExplSyntaxOff
\begin{document}
\begin{tabular}{ @{} l l *{15}{|r} | @{} }
A & B \Repeat{15}{& c} \\
\Repeat{13}{&} & 1 & 2 & 3
\end{tabular}
\end{document}
\Repeat
可以使用类似的宏multido
:
\usepackage{multido}
\makeatletter
\renewcommand{\Repeat}[2]{%
\def\@@x{}% Make sure \@@x is defined
\multido{\i=1+1}{#1}{\protected@xdef\@@x{\@@x #2}}% Create global repetition
\@@x% Execute repetition
}
\makeatother
这里使用\newcommand{\Repeat}[2]{\multido{\i=1+1}{#1}{#2}}
不起作用,因为 中的每个单元格都会tabular
创建一个组,并且 的默认定义\multido
不会对步进宏 ( \i
) 进行全局赋值。相反,必须在执行之前将重复组装成一个宏。
还要注意可以指定列规范的简洁方式:*{<num>}{<col spec>}
重复<col spec>
总共<num>
次数。