tikz矩阵背景颜色适用于大小不均匀的单元格

tikz矩阵背景颜色适用于大小不均匀的单元格

我从论坛其他地方改编了下面的示例。我希望背景填充显示为一个矩形,覆盖所有单元格的内容。实现此目的的最简单方法是什么自动地在 tikz 中,即以这样一种方式,即无论单元格内容如何,​​代码都可以工作?(我知道如何使用 ,minimum width\vphantom类的东西手动捏造东西,但我在 tikz 中寻找一些自动化的东西。)

谢谢!

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{arrows,matrix,positioning}
\begin{document}
    \begin{tikzpicture}
        \matrix [matrix of math nodes,left delimiter=(,right delimiter=)] (m)
        {
            8 &8 & \dfrac{1}{5} &6 \\
            \text{three} &\dfrac{8}{3} &5 &7 \\
            4 &8 &9 &5 \\
        };  
        \draw[fill=pink,opacity=0.2] (m-1-1.north west) -- (m-1-3.north east) -- (m-2-3.south east) -- (m-2-1.south west) -- (m-1-1.north west);
     \end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

不要在节点周围画线,尝试使用适合此节点的矩形:

\documentclass{article}
    \usepackage{amsmath}
    \usepackage{tikz}
    \usetikzlibrary{backgrounds,fit,matrix,positioning}
%%%% se-prewiew-tikz
\usepackage[active,floats,tightpage]{preview}
\PreviewEnvironment{tikzpicture}% <---------------------------------
    \setlength\PreviewBorder{1em}

\begin{document}
    \begin{tikzpicture}
\matrix [matrix of math nodes,left delimiter=(,right delimiter=)] (m)
{
            8   &   8               &   \dfrac{1}{5}    &   6   \\
 \text{three}   &   \dfrac{8}{3}    &           5       &   7   \\
            4   &   8               &           9       &   5   \\
};
\scoped[on background layer]
    \node[fill=pink!50,inner xsep=0mm, yshift=-1mm,
          fit=(m-1-1) (m-1-3) (m-2-3) (m-2-1) (m-1-1)]   {};
     \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容