是否可以使用“NiceTabular”中的计数器“iRow”和“jCol”突出显示每个单元格?

是否可以使用“NiceTabular”中的计数器“iRow”和“jCol”突出显示每个单元格?

对于我来说,以受控的方式将支架放置在矩阵环境中是很常见的,我发现这种NiceTabular环境适合此目的。

我遇到的一个困难是,当表格非常大时,很难确定表格中每个单元格的位置。是否可以使用计数器系统地突出显示单元格编号iRowjCol如下所示?

在此处输入图片描述

需满足以下要求

  1. 高亮颜色和透明度应可控
  2. 突出显示应该正好位于每个单元格的中间(即使\Block使用环境,单元格\Block仍然应该突出显示)
  3. 如果可能的话,应该使用在选项中添加的方便键来突出显示

我的MWE

\documentclass[11pt, a4paper]{article}

\usepackage{nicematrix}

\usepackage{calc}
\newlength{\widthCell}
\newcommand{\phantombox}[2]{%
    \setlength{\widthCell}{\widthof{{Cell \arabic{iRow},\arabic{jCol}}}}%
    {#2}\llap{\parbox{\widthCell}{\centering\color{gray!25}#1}}%
    }

\begin{document}

\begin{NiceTabular}[hvlines,rules/color=[gray]{0.89},rules/width=0.2pt]{*{3}c}
    
    \phantombox{\arabic{iRow},\arabic{jCol}}{Cell \arabic{iRow},\arabic{jCol}} & \phantombox{\arabic{iRow},\arabic{jCol}}{Cell \arabic{iRow},\arabic{jCol}} & \phantombox{\arabic{iRow},\arabic{jCol}}{Cell \arabic{iRow},\arabic{jCol}}
    \\
    
    \phantombox{\arabic{iRow},\arabic{jCol}}{Cell \arabic{iRow},\arabic{jCol}} & \phantombox{\arabic{iRow},\arabic{jCol}}{Cell \arabic{iRow},\arabic{jCol}} & \phantombox{\arabic{iRow},\arabic{jCol}}{Cell \arabic{iRow},\arabic{jCol}}
    \\
    
    \phantombox{\arabic{iRow},\arabic{jCol}}{Cell \arabic{iRow},\arabic{jCol}} & \phantombox{\arabic{iRow},\arabic{jCol}}{Cell \arabic{iRow},\arabic{jCol}} & \phantombox{\arabic{iRow},\arabic{jCol}}{Cell \arabic{iRow},\arabic{jCol}}
    \\
    
    \CodeAfter
    \SubMatrix{\{}{1-1}{3-1}{.}
    \SubMatrix{.}{1-2}{2-2}{\}}
    
    
\end{NiceTabular}

\end{document}

答案1

\documentclass{article}
\usepackage{nicematrix,tikz}

\ExplSyntaxOn
\NewDocumentCommand \HighLight { O { } }
  {
    \foreach \i in {1,...,\arabic{iRow}}
      \foreach \j in {1,...,\arabic{jCol}}
        { 
          \tikz [remember~picture, overlay] 
            \node [opacity=0.5] at (\i.5-|\j.5) { \Large \color{red} \i , \j } ;
        }
  }

\ExplSyntaxOff

\begin{document}

\begin{NiceTabular}{ccc}[hvlines,cell-space-limits=3pt]
\Block{2-2}{test} &           & test \\
                  &           & blabla \\
test              & some text & nothing 
\CodeAfter \HighLight
\end{NiceTabular}

\end{document}

与往常一样nicematrix,您需要进行多次编译。

上述代码的输出

答案2

使用最新版本(2022/05/25 版本 6.9),和中nicematrix有一个命令可用于解决您的问题。\ShowCellNames\CodeAfter\CodeBefore

\documentclass{article}
\usepackage{nicematrix,tikz}

\begin{document}

\begin{NiceTabular}{ccc}[hvlines,cell-space-limits=3pt]
\Block{2-2}{} &           & test \\
                  &           & blabla \\
              & some text & nothing 
\CodeAfter \ShowCellNames
\end{NiceTabular}

\end{document}

与往常一样nicematrix,您需要进行多次编译。

上述代码的输出

相关内容