如何为 beamer 创建自定义字体样式?如何全局更改此样式的颜色和正常字体颜色?
我想写例如:
\begin{frame}
\HighlightedText{I am special}\\
Here is a normal paragraph.
\end{frame}
我认为必须进行调整setbeamercolor
但我不知道如何进行。
答案1
关于普通文本字体,您可以通过安装normal text
颜色来更改它,例如
\setbeamercolor{normal text}{fg=blue}
参见下面的示例代码。
关于突出显示的文本,首先回想一下,beamer
已经提供了提供\alert
您似乎正在寻找的功能的命令。无论如何,如果您想提供自己的设置,下面我展示了两个选项。您可以做一些基本的事情,例如定义颜色和字体:
% color for the new highlighted text
\setbeamercolor{hltext}{fg=olive}
% font for the new highlighted text
\setbeamerfont{Hl text}{size=\huge}
然后定义一个应用该颜色和字体规范的命令:
\newcommand<>\HighlightedText[1]{\only#2{{\usebeamercolor[fg]{hltext}\usebeamerfont{Hl text}#1}}}
另一个选择是定义一些更复杂的\alert
命令。同样,第一步是像以前一样设置颜色和字体,然后
% An improved version
\defbeamertemplate*{Hl text begin}{default}{\setbeamercolor{local structure}{parent=alerted text}}
\newenvironment{hlenv}
{%
\begin{altenv}%
{\usebeamertemplate{Hl text begin}\usebeamercolor[fg]{hltext}%
\usebeamerfont{Hl text}%
}{\usebeamertemplate{Hl text end}}{\color{.}}{}%
}
{\end{altenv}}
\newcommand<>{\Hltext}[1]{\begin{hlenv}#2\relax#1\end{hlenv}}
这是一个完整的例子:
\documentclass{beamer}
% color for the normal text
\setbeamercolor{normal text}{fg=blue}
% color for the alerted text
\setbeamercolor{alerted text}{fg=magenta}
% color for the new highlighted text
\setbeamercolor{hltext}{fg=olive}
% font for the new highlighted text
\setbeamerfont{Hl text}{size=\huge}
% A rudimentary version
\newcommand<>\HighlightedText[1]{\only#2{{\usebeamercolor[fg]{hltext}\usebeamerfont{Hl text}#1}}}
% An improved version
\defbeamertemplate*{Hl text begin}{default}{\setbeamercolor{local structure}{parent=alerted text}}
\newenvironment{hlenv}
{%
\begin{altenv}%
{\usebeamertemplate{Hl text begin}\usebeamercolor[fg]{hltext}%
\usebeamerfont{Hl text}%
}{\usebeamertemplate{Hl text end}}{\color{.}}{}%
}
{\end{altenv}}
\newcommand<>{\Hltext}[1]{\begin{hlenv}#2\relax#1\end{hlenv}}
\begin{document}
\begin{frame}
\HighlightedText<1->{I am special.}\par
Here is a normal paragraph.\par
\Hltext<2->{I am special.}\par
\alert<3->{I am special.}\par
\begin{hlenv}<4>
I am special.
\end{hlenv}
\end{frame}
\end{document}
结果动画如下: