如何更改计数器显示,使其显示字母字符而不是阿拉伯数字?

如何更改计数器显示,使其显示字母字符而不是阿拉伯数字?

我有一张表(此处仅作为示例),其中的行需要按字母顺序编号,即使用 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}等来拨打计数器的不同表示。

相关内容