在 Beamer 中更改幻灯片颜色时保留 tikz 中的颜色

在 Beamer 中更改幻灯片颜色时保留 tikz 中的颜色

我独立绘制和编译 tikz 图片:

\documentclass[tikz]{standalone}
\begin{tikzpicture}
 \draw [<->,thick] 
        (0,5) node (yaxis) [left] {$Y$}
        |- 
        (5,0) node (xaxis) [below] {$X$};
\draw[blue,thick] (0,0) -- (4,4);
\end{tikzpicture}
\end{document}

然后将 pdf 包含在具有通常的白色背景的 beamer 演示文稿中:

\documentclass{beamer}
\begin{document}
\begin{frame}
\includegraphics{tikz_pic.pdf}
\end{frame}
\end{document}

并且工作正常:

在此处输入图片描述

但是如果我将幻灯片背景更改为黑色(通过\setbeamercolor{normal text}{fg=white, bg=black}),它也会反转 tikz 图片:

在此处输入图片描述

如何在更改幻灯片颜色时保留 tikz 图片中的颜色?

请注意如果你将 tikz 代码输入到 beamer 中,也会发生同样的事情:

\documentclass{beamer}
\begin{document}
\begin{frame}
    \begin{tikzpicture}
     \draw [<->,thick] 
            (0,5) node (yaxis) [left] {$Y$}
            |- 
            (5,0) node (xaxis) [below] {$X$};
    \draw[blue,thick] (0,0) -- (4,4);
    \end{tikzpicture}
\end{frame}
\end{document}

编辑

我知道你可以添加[background rectangle/.style={fill=white}, show background rectangle]到 tikz 图片调用中并明确将线条颜色设为黑色:

\begin{tikzpicture}[background rectangle/.style={fill=white}, show background rectangle]
 \draw [<->,thick,black] 
      (0,5) node (yaxis) [left] {$Y$}
        |- 
        (5,0) node (xaxis) [below] {$X$};
\draw[blue,thick] (0,0) -- (4,4);
\end{tikzpicture}

但这也不起作用:

在此处输入图片描述

请注意,如果您直接将 tikz 代码输入框架中,这将起作用,但当您有许多图片时,这会非常麻烦,因为它需要完全重写幻灯片。

奇怪的是,即使轴明确地画成黑色,它们也会继承投影仪文本的颜色(白色)。但是,如果你用任何其他颜色(例如灰色)绘制轴,它们不会继承幻灯片文本的颜色。

答案1

我将我的评论转化为答案。

您的图像是透明的。您可以在背景中填充一个矩形,例如通过使用backgrounds库并添加样式[background rectangle/.style= {fill=white},show background rectangle]

并且您的第一个绘图命令使用默认颜色(通常为黑色),您可以输入\draw [black,<->,thick] ...

图片 (tikz_pic.tex):

\documentclass[tikz]{standalone}
\usetikzlibrary{backgrounds}
\begin{document}
\begin{tikzpicture}[background rectangle/.style={fill=white}, show background rectangle]
  \draw [<->,thick,black]
      (0,5) node (yaxis) [left] {$Y$} |- (5,0) node (xaxis) [below] {$X$};
  \draw[blue,thick] (0,0) -- (4,4);
\end{tikzpicture}
\end{document}

Beamer 文件保持不变:

\documentclass{beamer}
\setbeamercolor{normal text}{fg=white, bg=black}
\begin{document}
  \begin{frame}
    \includegraphics{tikz_pic.pdf}
  \end{frame}
\end{document}

在此处输入图片描述

答案2

您可以明确使用黑色作为颜色:

\documentclass{beamer}
\usepackage{tikz}
\setbeamercolor{normal text}{fg=white, bg=black}
\begin{document}
\begin{frame}
\textcolor{black}{
    \begin{tikzpicture}
     \draw [<->,thick] 
            (0,5) node (yaxis) [left] {$Y$}
            |- 
            (5,0) node (xaxis) [below] {$X$};
    \draw[blue,thick] (0,0) -- (4,4);
    \end{tikzpicture}
    }
\end{frame}
\end{document}

当然,您不会在黑色背景上看到黑轴,但您希望它们是黑色的......

在此处输入图片描述

相关内容