我想在警报环境中指定背景颜色。例如,我可以使用
\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
以便使用\highLight
(lua-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}