
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.
\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}
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=white
und draw=white
fü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/.style
in einem Bereich verwenden. Verwenden Sie außerdem nicht \draw
fü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}
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}