nicematrix:如何避免第一行的自动编号?

nicematrix:如何避免第一行的自动编号?
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{>{\arabic{iRow}}cc>{\alph{iRow}}cc}[first-row]
    \multicolumn{1}{c}{}\Block{1-2}{Name} && \Block{1-2}{Country} & \\
    & George && France \\
    & John && Hellas \\
    & Paul && England \\
    & Nick && USA \\
\end{NiceTabular}
\end{document}

在此处输入图片描述

问题

  1. 我的代码可以吗?
  2. 有没有更好的代码?(带有 nicematrix 且不带有\multicolumn第一行)

答案1

第二个NiceTabular重现了第一个,但没有使用\multicolumnfirst-row

A

\NRow将输出从第二行开始减 1 的行号。\ARow对字母输出执行相同操作。

\documentclass{article}
\usepackage{nicematrix} 

\begin{document}
\begin{NiceTabular}{>{\arabic{iRow}}cc>{\alph{iRow}}cc}[first-row]
    \multicolumn{1}{c}{}\Block{1-2}{Name}   && \Block{1-2}{Country} & \\
                                & George    && France \\
                                & John      && Hellas \\
                                & Paul      && England \\
                                & Nick      && USA \\
\end{NiceTabular}

\bigskip

% *************************************************** added <<<<<
\newcounter{iRowtmp}
\newcommand{\NRow}{\ifnum\value{iRow} >1 \the\numexpr\value{iRow}-1\fi}     
\newcommand{\ARow}{\ifnum\value{iRow} >1 \setcounter{iRowtmp}{\the\numexpr\value{iRow}-1} \alph{iRowtmp}\fi}        


\begin{NiceTabular}{>{\NRow}cc>{\ARow}cc}
\Block{1-2}{Name}   &       & \Block{1-2}{Country}  & \\
                    & George&                       & France \\
                    & John  &                       & Hellas \\
                    & Paul  &                       & England \\
                    & Nick  &                       & USA \\
\end{NiceTabular}

\end{document}

有趣的一点(在@Alan Munn 评论之后):\ARow可以通过抑制行号检查来进一步简化命令,如下所示

\newcommand{\ARow}{\setcounter{iRowtmp}{\the\numexpr\value{iRow}-1}\space\alph{iRowtmp}}    

它仍将在第一行(其中\iRow-1=0})上起作用,因为\space\alph{<\iRow-1>}只会产生空白。

答案2

简化西蒙的回答,您只需向第一列行代码添加一个条件即可:

\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{>{\ifnum\value{iRow}=0\else\arabic{iRow}\fi}cc>{\alph{iRow}}cc}[first-row]
    & Name&& Country\\
    & George && France \\
    & John && Hellas \\
    & Paul && England \\
    & Nick && USA \\
\end{NiceTabular}
\end{document}

我实际上并不清楚为什么只需要在其中一个列规范中使用条件代码(无论是在第一列还是第二列规范中;无论哪种方式,它都会抑制该行中所有列的计数器)。

代码输出

相关内容