改变 beamer 中的警报环境样式

改变 beamer 中的警报环境样式

我想在警报环境中指定背景颜色。例如,我可以使用

\setbeamercolor{alerted text}{fg=blue} 

将修改后的文本颜色改为蓝色,但是这

\setbeamercolor{alerted text}{bg=blue} 

不起作用。有办法解决这个问题吗?

我发现警报环境中的字体颜色太微妙,除了更改 fg 颜色之外,我还想在文本周围添加彩色突出显示框。

答案1

由于 (La)TeX 没有文本的“背景颜色”,因此您必须将文本放在一个框内,然后为其着色。考虑以下使用 的示例\colorbox

\documentclass{beamer}

\setbeamercolor{alerted text}{fg=white,bg=red}
\newcommand{\boxalert}[1]{{%
  \usebeamercolor{alerted text}\colorbox{bg}{\alert{#1}}%
}}

\begin{document}
\begin{frame}
Hello \boxalert{World}!
\end{frame}
\end{document}

哪个渲染

你好世界

编辑:我不是 beamer 内部结构的专家,所以下面的内容只不过是小技巧而已。但是,如果你想\boxalert使用覆盖层,下面的内容“似乎”可以工作:

\newenvironment{boxalertenv}{\begin{altenv}%
      {\usebeamertemplate{alerted text begin}\usebeamercolor[fg]{alerted text}\usebeamerfont{alerted text}\colorbox{bg}}
      {\usebeamertemplate{alerted text end}}{\color{.}}{}}{\end{altenv}}

\newcommand<>{\boxalert}[1]{{%
  \begin{boxalertenv}#2{#1}\end{boxalertenv}%
}}

...

Hello \boxalert<2>{World}!

答案2

您还可以创建一个新的宏并使用 \alt 来实现重新定义警报并使用颜色框。我强烈推荐教程“Beamer 中的 Beamer 教程”。它包含许多有用的命令。

\documentclass{beamer}
\usepackage{color}
\def \boxalert#1#2{\alt<#1>{\colorbox{red}{#2}}{#2}} 

\begin{document}
     \begin{frame}
        \onslide<3->{\boxalert{3}{3 hello out of the itemize!}} 
        \begin{itemize}
          \item<1-> 1
          \item<2-> 2 
          \item<3->{\boxalert{3}{3 hello!}} 
          \item<4-> 4
          \item<5-> 5
       \end{itemize}
    \end{frame}

    \begin{frame}
       \begin{itemize}
         \item<1-> 1
         \item<2-> 2
         \item{\boxalert{3}{3 hello!}} 
         \item<4-> 4
         \item<5-> 5
       \end{itemize}
    \end{frame}
\end{document}

答案3

这里有一个建议,它重新定义了使用\alert以便使用\highLightlua-ul它只适用于 LuaLaTeX)。

蓝色背景不会改变文本的位置。

\documentclass{beamer}
\usepackage{xcolor}
\usepackage{luacolor,lua-ul}
 
\setbeamercolor{alerted text}{fg=yellow,bg=cyan}
 
\makeatletter
\renewenvironment<>{alertenv}
  {\only#1{\@highLight[alerted text.bg]\color{alerted text.fg}}}
\makeatother

\begin{document}
 
\begin{frame}
\alert{highlighted text}
 
\alert<2>{Some text} highlighted in the second overlay.
\end{frame}
 
\end{document}

上述代码的输出

相关内容