具有对齐数字的自动编号表环境

具有对齐数字的自动编号表环境

我正在尝试创建一个表格环境:
一个跨越任意数量列的标题行,
对齐的、自动编号的单元格,单元格中的数字对齐,
所有数字和内容单元格之间的间距均匀,
并且只需要传递列数和标题文本作为参数。

我几乎已经拥有它了:

\documentclass[a4paper]{book}
\usepackage{environ}
\usepackage{tabu}
\usepackage{array}

\newcounter{mycounter}
\newcommand{\mycount}{\stepcounter{mycounter}\arabic{mycounter})}

\makeatletter
\edef\numcols{\tabu@nbcols} % allows for arbitrary column span
\makeatother

\newcolumntype{C}{>{\mycount\makebox[1em]}l}
\NewEnviron{mytable}[2]{ % table format, header text
  \begin{tabu}{#1}
    \multicolumn{\numcols}{c}{#2} \\
    \BODY
  \end{tabu}
}



\begin{document}

\begin{mytable}{CCCC}{I span all columns.} % cell content chosen at random
  83   & some text   & $23+7$ & 9999 \\
  5000 & more text   & $23+7$ & 9999 \\
  5000 & 83          & $23+7$ & 9999 \\
\end{mytable}

\end{document}

编译:

错位

这几乎解决了问题,问题是单元格编号不对齐(我希望括号对齐),并且数字较多的单元格编号会将其他内容移到侧面,如显示在底行中。解决这个问题的最佳方法是什么?

答案1

使用

\newcolumntype{C}{>{\makebox[1em][r]{\mycount}\hspace{0.5em}}l}

在此处输入图片描述

相关内容