
Creé un polígono usando el paquete tikz. Necesito cambiar el color de fondo de mi texto para que coincida con el color de fondo de la diapositiva. Adjunto la foto.
\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}
Respuesta1
El color de fondo se puede utilizar bajo el nombre 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}
Respuesta2
Mejor que llenar estos nodos con un color sólido que coincida con el color de fondo, es no llenar los nodos. De esta forma, si el color de fondo cambia, el código sigue siendo correcto.
Para hacerlo sólo tienes que eliminar las opciones fill=white
y draw=white
para esos nodos. De esta manera no se produce ningún relleno ni dibujo.
Para tener pequeños puntos en los vértices del hexágono, puedes usarlo every node/.style
en una mira. Además, no lo utilices \draw
para el hexágono, sino \path
, ya que los bordes se dibujan más tarde.
Este es mi código sugerido:
\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}
Actualizar. No está relacionado con su pregunta, pero aprovechando la oportunidad, su código se puede refactorizar para usar un bucle y estilos personalizados, para hacerlo más corto y (en mi humilde opinión) más legible:
\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}