ignorenonframetext 选项会破坏框架背景颜色选项吗?

ignorenonframetext 选项会破坏框架背景颜色选项吗?

我正在尝试更改 Beamer 中框架的背景颜色,并一直遵循这个问题示例版本运行良好,但如果将ignorenonframetext参数引入\documentclass声明,则所有框架都会获得白色背景。

这会改变背景颜色,但会产生一个带有非框架文本的框架。

\documentclass{beamer}

\begin{document}

Some non-frame text.

\begin{frame}{Test}
white
\end{frame}

\setbeamercolor{background canvas}{bg=black}
\begin{frame}{Test}
\textcolor{white}{black}
\end{frame}

\end{document}

这会隐藏非框架文本,但不改变背景颜色。唯一的区别是第一行。

\documentclass[ignorenonframetext]{beamer}

\begin{document}

Some non-frame text.

\begin{frame}{Test}
white
\end{frame}

\setbeamercolor{background canvas}{bg=black}
\begin{frame}{Test}
\textcolor{white}{black}
\end{frame}

\end{document}

这是一个错误吗?发生了什么事?

编辑

我突然想到这不是一个错误:当然,它忽略了背景颜色命令,它是非框架文本。在这种情况下,问题是如何在选项ignorenonframetext到位的情况下设置背景颜色?

答案1

搞定了。可能有更优雅的方法来做到这一点,但下面的方法有效。

诀窍是ignorenonframetext在有问题的帧之后暂时禁用它,然后重新启用它\mode*

\documentclass[ignorenonframetext]{beamer}

\begin{document}

Some non-frame text.

\begin{frame}{Test}
white
\end{frame}

% Turn off ignorenonframetext and change the color
\mode<all>
{\setbeamercolor{background canvas}{bg=black}
\begin{frame}{Test}
\textcolor{white}{black}
\end{frame}
}
\mode*
% Return to ignorenonframetext

% Revert the background color to the default for the next frame
\mode<all>
{\setbeamercolor{background canvas}{bg=}
\begin{frame}{Test\setbeamercolor{background canvas}{bg=red}}
white again
\end{frame}
}
\mode*

\end{document}

相关内容