Größe für Zeichenfeld in Matrix anpassen

Größe für Zeichenfeld in Matrix anpassen
\documentclass{beamer}
\usetheme{Madrid}
\usepackage{amsmath,tikz}
\usetikzlibrary{matrix}

\begin{document}
\begin{frame}{Matrix}

This is an example of a matrix.

\begin{tikzpicture}
\matrix [matrix of math nodes,left delimiter=(,right delimiter=),ampersand replacement=\&] (m)
{
  8 \& 8 \& 1 \& 6 \\
  3 \& 8 \& 5 \& 7 \\
  4 \& 8 \& 9 \& 5 \\
};
\draw[color=red, thick] (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);
\draw[color=blue, thick] (m-2-1.north west) -- (m-2-3.north east) -- (m-3-3.south east) -- (m-3-1.south west) -- (m-2-1.north west);
\end{tikzpicture}
\end{frame}
\end{document}

Ich habe zwei Kästchen in eine Matrix (im Beamer) gezeichnet. Das funktioniert, nur dass sich die beiden Kästchen teilweise überlappen und so das blaue Kästchen teilweise über das rote Kästchen gelegt wird, was nicht sehr schön ist.

Gibt es eine Möglichkeit, die blauen Kästchen größer oder kleiner zu machen, sodass sie sich nicht überlappen? (Andere Möglichkeiten zur Vermeidung der Überlappung sind ebenfalls willkommen.)

Antwort1

Nehmen wir an, Sie erwarten etwa Folgendes:

Bildbeschreibung hier eingeben

\documentclass{beamer}
\usetheme{Madrid}
\usepackage{amsmath,tikz}
\usetikzlibrary{fit,matrix}
\tikzset{
mN/.style = {%myNode
    draw=#1, thick, inner sep=0pt}
             }

\begin{document}
\begin{frame}{Matrix}

This is an example of a matrix.

    \begin{tikzpicture}
\matrix [matrix of math nodes, column sep=1pt,
         left delimiter=(,right delimiter=),ampersand replacement=\&] (m)
{
  8 \& 8 \& 1 \& 6 \\
  3 \& 8 \& 5 \& 7 \\
  4 \& 8 \& 9 \& 5 \\
};
\node[mN=red, xshift= 2pt, fit=(m-1-1) (m-2-3)] {};
\node[mN=blue,xshift=-2pt, fit=(m-2-1) (m-3-3)] {};
\end{tikzpicture}
\end{frame}
    \end{document}

Bearbeiten:Ich habe den Code leicht optimiert.

verwandte Informationen