如何获取表格行子编号?

如何获取表格行子编号?

我正在尝试获取表中的序列号,但某些行需要子编号,如下所示:

S. No. X    Y   Z
1   1   12  1
2   4   34  3
3   5   54  2
4.a 6   34  5
4.b 8   32  7
5   1   44  7
6   4   11  4
7   6   45  2
8.a 3   23  5
8.b 4   43  4
8.c 3   54  2
8.d 1   65  1
9   1   76  3
10  5   87  4

如何在 LaTeX 中获得这样的行子编号?

平均能量损失

\documentclass{article}
\begin{document}
\begin{table}[]
\centering
\caption{Row sub numbering}
\label{my-label}
\begin{tabular}{llll}
S. No. & X & Y  & Z \\
1      & 1 & 12 & 1 \\
2      & 4 & 34 & 3 \\
3      & 5 & 54 & 2 \\
4.a   & 6 & 34 & 5 \\
4.b   & 8 & 32 & 7 \\
5      & 1 & 44 & 7 \\
6      & 4 & 11 & 4 \\
7      & 6 & 45 & 2 \\
8.a   & 3 & 23 & 5 \\
8.b   & 4 & 43 & 4 \\
8.c   & 3 & 54 & 2 \\
8.d   & 1 & 65 & 1 \\
9      & 1 & 76 & 3 \\
10     & 5 & 87 & 4 \\
\end{tabular}
\end{table}
\end{document}

答案1

使用suspensionresume功能xassoccnt可以设置一个N列类型,该列类型既可以作为常规的计数行,也可以输入子行功能。

\enablesubrow在请求的子行之前和\disablesubrow切换回旧编号样式之前使用。

由于表格单元格是(La)TeX组,因此必须全局设置条件,以使设置从一个组保留到下一个组,即使用\global\subrowtrue\global\subrowfalse

\documentclass{article}
\usepackage{array}

\usepackage{xassoccnt}
\newcounter{rowcntr}[table]
\newcounter{realrowcntr}[table]
\newcounter{subrowcntr}
\newif\ifsubrow

\newcommand{\enablesubrow}{%
  \global\subrowtrue% 
}

\newcommand{\disablesubrow}{%
  \global\subrowfalse%
  \ResumeSuspendedCounters{rowcntr}%
  \setcounter{subrowcntr}{0}% Reset subrows
}

\renewcommand{\thesubrowcntr}{%
  \ifsubrow
  \stepcounter{subrowcntr}%
  \therowcntr.\alph{subrowcntr}%
  \else
  \therowcntr%
  \fi
}

\newcommand{\checksubrowstuff}{%
  \stepcounter{realrowcntr}%
  \ifnum\value{realrowcntr}>1
  \stepcounter{rowcntr}%
  \ifsubrow
  \SuspendCounters{rowcntr}% Do not increase any longer
  \fi
  \thesubrowcntr%
  \fi
}

\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}%
\newcolumntype{N}[1]{>{\checksubrowstuff\arraybackslash}R{#1}}
\begin{document}
\begin{table}
\centering
\caption{Row sub numbering}
\label{my-label}
\begin{tabular}{N{1.5cm}lll}
S. No. & X & Y  & Z \\
      & 1 & 12 & 1 \\
      & 4 & 34 & 3 \\
      & 5 & 54 & 2 \enablesubrow \\
      & 6 & 34 & 5 \\
      & 8 & 32 & 7 \disablesubrow \\
      & 1 & 44 & 7 \\
      & 4 & 11 & 4 \\
      & 6 & 45 & 2 \enablesubrow\\
      & 3 & 23 & 5 \\
      & 4 & 43 & 4 \\
      & 3 & 54 & 2 \\
      & 1 & 65 & 1 \disablesubrow\\
      & 1 & 76 & 3 \\
      & 5 & 87 & 4 \\
\end{tabular}
\end{table}
\end{document}

在此处输入图片描述

相关内容