Anpassen der Texthintergrundfarbe in Tikz an die Hintergrundfarbe einer Präsentationsfolie

Anpassen der Texthintergrundfarbe in Tikz an die Hintergrundfarbe einer Präsentationsfolie

Ich habe mit dem Tikz-Paket ein Polygon erstellt. Ich muss die Hintergrundfarbe meines Textes ändern, damit sie mit der Hintergrundfarbe der Folie übereinstimmt. Ich füge das Foto bei.Bildbeschreibung hier eingeben

\begin{figure} [H]
\begin{center}
\begin{tikzpicture} [scale=0.4]
\tikzstyle{every node}=[draw,circle,fill=white,minimum size=1pt,
                    inner sep=0pt]
\draw  node (1) [label=$v_{1,1}$] {}
-- ++(330:2.0cm) node [](2) [] {}
-- ++(270:2.0cm) node (3)
[] {}-- ++(210:2.0cm) node (4)
[] {}-- ++(150:2.0cm) node (5)
[] {}-- ++(90:2.0cm) node (6)
[] {}-- ++(30:2.0cm) node (1)
{};
\path [](1) edge (2);
\path [](2) edge (3);
\path [dashed](3) edge (4);
\path (4) edge (5);
\path (5) edge (6);
\path [](6) edge (1);

\draw (4) node[below,xshift=0mm,draw=white]{Layer 1};
\draw (1) node[below,yshift=-5mm,draw=white]{$K_n$};

\end{tikzpicture}
\end{center}
\caption{$K_n \square P_3$} 
\label{3}
\end{figure}

Antwort1

Die Hintergrundfarbe kann unter dem Namen verwendet werden bg:

\documentclass{beamer}
\usepackage{tikz}

\setbeamercolor{background canvas}{bg=orange!50!white}

\begin{document}

\begin{frame}
\begin{tikzpicture} [scale=0.4]
\usebeamercolor{background canvas}
\tikzset{every node/.style={draw,minimum size=1pt,
                    inner sep=0pt}}
\draw  node (1) [label=$v_{1,1}$] {}
-- ++(330:2.0cm) node [](2) [] {}
-- ++(270:2.0cm) node (3)
[] {}-- ++(210:2.0cm) node (4)
[] {}-- ++(150:2.0cm) node (5)
[] {}-- ++(90:2.0cm) node (6)
[] {}-- ++(30:2.0cm) node (1)
{};
\path [](1) edge (2);
\path [](2) edge (3);
\path [dashed](3) edge (4);
\path (4) edge (5);
\path (5) edge (6);
\path [](6) edge (1);

\draw (4) node[below,xshift=0mm,draw=bg]{Layer 1};
\draw (1) node[below,yshift=-5mm,draw=bg]{$K_n$};

\end{tikzpicture}
\end{frame} 

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Besser als diese Knoten mit einer Volltonfarbe zu füllen, die der Hintergrundfarbe entspricht, ist es, die Knoten nicht zu füllen. Auf diese Weise ist der Code immer noch korrekt, wenn sich die Hintergrundfarbe ändert.

Dazu müssen Sie lediglich die Optionen fill=whiteund draw=whitefür diese Knoten entfernen. Auf diese Weise erfolgt weder Füllen noch Zeichnen.

Um kleine Punkte an den Eckpunkten des Sechsecks zu haben, können Sie every node/.stylein einem Bereich verwenden. Verwenden Sie außerdem nicht \drawfür das Sechseck, sondern \path, da die Kanten später gezeichnet werden.

Dies ist mein vorgeschlagener Code:

\documentclass{beamer}
\usepackage{tikz}
\setbeamercolor{background canvas}{bg=orange!50!white}

\begin{document}
\begin{frame}
\begin{center}
\begin{tikzpicture}[scale=0.4]
\begin{scope}[every node/.style={circle,minimum size=2pt,
             inner sep=0pt, fill}]
  \path  node (1) [label=$v_{1,1}$] {}
  -- ++(330:2.0cm) node [](2) [] {}
  -- ++(270:2.0cm) node (3)
  [] {}-- ++(210:2.0cm) node (4)
  [] {}-- ++(150:2.0cm) node (5)
  [] {}-- ++(90:2.0cm) node (6)
  [] {}-- ++(30:2.0cm) node (1)
  {};
\end{scope}

\path [](1) edge (2);
\path [](2) edge (3);
\path [dashed] (3) edge (4);
\path (4) edge (5);
\path (5) edge (6);
\path [](6) edge (1);
\draw (4) node[below,xshift=0mm,]{Layer 1};
\draw (1) node[below,yshift=-5mm]{$K_n$};
\end{tikzpicture}
\end{center}
\end{frame}
\end{document}

Ergebnis

Aktualisieren. Hat nichts mit Ihrer Frage zu tun, aber wenn Sie die Gelegenheit nutzen, können Sie Ihren Code umgestalten, um eine Schleife und benutzerdefinierte Stile zu verwenden und ihn so kürzer und (meiner Meinung nach) lesbarer zu machen:

\documentclass{beamer}
\usepackage{tikz}
\setbeamercolor{background canvas}{bg=orange!50!white}

\begin{document}
\begin{frame}
\begin{center}
\tikzset{
  smalldot/.style={circle,minimum size=2pt, inner sep=0pt, fill}
  }
\begin{tikzpicture}[scale=0.4]
  \foreach \angle [count=\n from 1] in {30, 90, ..., 330}
      \node[smalldot] (\n) at (\angle:2cm) {};
  \draw (6) -- (1) -- (2) -- (3) -- (4) -- (5);
  \draw [dashed] (5) -- (6);
  \node[above] at (2) {$v_{1,1}$};
  \node[below] at (5) {Layer 1};
  \node at (0,0) {$K_n$};
\end{tikzpicture}
\end{center}
\end{frame}
\end{document}

verwandte Informationen