프레젠테이션 슬라이드의 배경색과 tikz의 텍스트 배경색 일치

프레젠테이션 슬라이드의 배경색과 tikz의 텍스트 배경색 일치

tikz 패키지를 사용하여 다각형을 만들었습니다. 슬라이드의 배경색과 일치하도록 텍스트의 배경색을 변경해야 합니다. 사진을 첨부하겠습니다.여기에 이미지 설명을 입력하세요

\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}

답변1

배경색은 다음 이름으로 사용할 수 있습니다 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}

여기에 이미지 설명을 입력하세요

답변2

배경색과 일치하는 단색으로 이러한 노드를 채우는 것보다 노드를 채우지 않는 것이 좋습니다. 이렇게 하면 배경색이 변경되어도 코드는 여전히 정확합니다.

이렇게 하려면 해당 노드에 대한 fill=white및 옵션만 제거하면 됩니다. draw=white이렇게 하면 채우기나 그리기가 발생하지 않습니다.

육각형의 꼭지점에 작은 점을 가지려면 every node/.style스코프에 사용할 수 있습니다. 또한 \draw육각형의 경우에는 \path모서리가 나중에 그려지므로 를 사용하지 마십시오.

제가 제안한 코드는 다음과 같습니다.

\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}

결과

업데이트. 귀하의 질문과 관련이 없지만 기회를 활용하여 루프 및 사용자 정의 스타일을 사용하도록 코드를 리팩토링하여 더 짧고 (imho) 더 읽기 쉽게 만들 수 있습니다.

\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}

관련 정보