强调矩阵行或列的文本

强调矩阵行或列的文本

matrix这是 3x2 单元格的mwe tikz。我想“圈出”一行的文本,即圆圈或矩形必须以文本为中心,而不是单元格。我尝试使用行节点,它相对于行居中。我用一张图片展示它,并添加了一张我用 lowriter 手工完成的插图。

\documentclass[a4paper]{article}

\usepackage[verbose,vmargin=30mm,hmargin=20mm]{geometry}

\usepackage{tikz}
\usetikzlibrary{positioning, matrix,backgrounds}

\tikzset{
  allmatrix/.style = {matrix of nodes, nodes in empty cells,
                    row sep=-\pgflinewidth, column sep=-\pgflinewidth,},
}
\begin{document}
\begin{tikzpicture}
\matrix at (0,0) (si) [allmatrix,matrix anchor=north west,inner sep=0pt,nodes={
anchor=center,inner sep=3pt,outer sep=0pt,draw,
text height=4mm,text width=4mm,text depth=1mm}]{%
a & b & c \\
d & e & f \\
};
\begin{scope}[on background layer]
\draw [color=white,fill=green!30,rounded corners=1mm]
([yshift=-4pt]si-2-1.north west) rectangle ([yshift=4pt]si-2-3.south east);
\end{scope}
\end{tikzpicture}
\end{document}

代码结果: 在此处输入图片描述

使用 lowirer 制作的以文本为中心的矩形:

在此处输入图片描述

编辑:这是 lowriter 的另一张照片。我还想在矩阵单元格中圈出部分文本。我知道可以使用 circlesteps 完成此类操作,但仅使用 tikz 可以做到吗?

在此处输入图片描述

答案1

我建议{NiceTAbular}使用nicematrix

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

\begin{document}

\renewcommand{\arraystretch}{1.5}

\begin{NiceTabular}[hvlines]{ccc}
\CodeBefore [create-cell-nodes]
  \tikz \node [draw,fill=blue!15,rounded corners,fit = (2-1) (2-3)] {} ; 
\Body
  a & b & c \\
  d & e & f 
\end{NiceTabular}

\end{document}

您需要多次编译(因为 PGF/Tikz 节点)。

上述代码的输出

相关内容