我有一张表(此处仅作为示例),其中的行需要按字母顺序编号,即使用 a)、b)、c) 等,而不是使用阿拉伯数字。我尝试了各种方法添加\alph
到代码中,但都不起作用。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{array}
\title{Example}
\newcounter{rowcount}
\setcounter{rowcount}{0}
\begin{document}
\maketitle
\begin{table}[h!]
\begin{tabular}{@{\stepcounter{rowcount}\therowcount.)\hspace*{\tabcolsep}}c|c|c|c}
First Name & Last Name & Education & Occupation \\
April & Kelly & Bachelor & Mathematician \\
Miller & Martin & Upper secondary & Meteorologist \\
Jenna & Hawkins & Upper secondary & Programmer \\
Brad & Wells & Doctoral & Lawyer \\
Julian & Fowler & Master & Programmer
\end{tabular}
\end{table}
\end{document}
答案1
如果您想rowcount
用字母表示计数器,请重新定义\therowcounter
。
我建议采用一种略有不同的方法,这种方法需要&
每行都添加行距,虽然不方便,但如果某行没有编号,也可以轻松保持列的对齐。我选择\*
表示“此行无编号”,因为您不太可能需要它在表格主体中的标准含义。
请注意,除了在不应编号的行中添加前导&
和之外,一切都是自动的,包括重置计数器。\*
使用虚拟列还有一个好处,就是您可以\label
在其中添加一个来引用该字母,请参见下面的示例。(感谢阿泽蒂纳提出改进建议。
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\newcounter{rowcount}
\renewcommand{\therowcount}{\alph{rowcount}}
\newcolumntype{\ROWCOUNT}{>{\refstepcounter{rowcount}\therowcount.)}r}
\newenvironment{counttabular}[2][c]{%
\setcounter{rowcount}{0}% reset the counter
\def\*{\multicolumn{1}{c}{}}% for a nonnumbered row
\begin{tabular}[#1]{@{}\ROWCOUNT #2@{}}
}{\end{tabular}}
\begin{document}
\begin{counttabular}{c|c|c|c}
\* & First Name & Last Name & Education & Occupation \\
\hline
\label{AK}
& April & Kelly & Bachelor & Mathematician \\
& Miller & Martin & Upper secondary & Meteorologist \\
& Jenna & Hawkins & Upper secondary & Programmer \\
& Brad & Wells & Doctoral & Lawyer \\
& Julian & Fowler & Master & Programmer
\end{counttabular}
\bigskip
April Kelly is on line \ref{AK}
\bigskip
\begin{counttabular}{cccc}
\toprule
\* & First Name & Last Name & Education & Occupation \\
\midrule
& April & Kelly & Bachelor & Mathematician \\
& Miller & Martin & Upper secondary & Meteorologist \\
& Jenna & Hawkins & Upper secondary & Programmer \\
\label{BW}
& Brad & Wells & Doctoral & Lawyer \\
& Julian & Fowler & Master & Programmer \\
\bottomrule
\end{counttabular}
\bigskip
The lawyer is on line \ref{BW}
\end{document}
毋庸置疑,我更喜欢后一种认识,而不是前一种认识。
答案2
\alph
如果你使用,则有效\alph{rowcount}
。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{array}
\title{Example}
\newcounter{rowcount}
\setcounter{rowcount}{0}
\begin{document}
\maketitle
\begin{table}[h!]
\begin{tabular}{@{\stepcounter{rowcount}\alph{rowcount})\hspace*{\tabcolsep}}c|c|c|c}
First Name & Last Name & Education & Occupation \\
April & Kelly & Bachelor & Mathematician \\
Miller & Martin & Upper secondary & Meteorologist \\
Jenna & Hawkins & Upper secondary & Programmer \\
Brad & Wells & Doctoral & Lawyer \\
Julian & Fowler & Master & Programmer
\end{tabular}
\end{table}
\end{document}
顺便说一句,有人可能会说使用\therowcount
实际上并不一定尽可能“干净”,它只是恰好产生一个阿拉伯数字,但您实际上应该将其视为“计数器”而不是计数器的表示。因此,获取阿拉伯数字的可以说更干净的方法是使用\arabic{rowcount}
。在这些约定中,更容易看出可以使用\alph{rowcount}
等来拨打计数器的不同表示。