对于我来说,以受控的方式将支架放置在矩阵环境中是很常见的,我发现这种NiceTabular
环境适合此目的。
我遇到的一个困难是,当表格非常大时,很难确定表格中每个单元格的位置。是否可以使用计数器系统地突出显示单元格编号iRow
,jCol
如下所示?
需满足以下要求
- 高亮颜色和透明度应可控
- 突出显示应该正好位于每个单元格的中间(即使
\Block
使用环境,单元格\Block
仍然应该突出显示) - 如果可能的话,应该使用在选项中添加的方便键来突出显示
我的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
,您需要进行多次编译。