如何将Beamer演示文稿中theorem环境的字体改为常规体?
如何将Beamer演示文稿中Theorem环境的字体从斜体改为常规体
你的问题核心是:Beamer中Definition环境文本为常规体,但Theorem环境默认是斜体,即便两者创建方式相近,需要将Theorem的字体改为常规体。
解决方案
在你已有的\AtBeginEnvironment{theorem}代码块中,添加\normalfont命令即可取消斜体格式。该命令会强制将文本切换回常规字体样式,覆盖Theorem环境默认的斜体设置。
修改后的完整代码
\documentclass[9pt,trans,xcolor={table},envcountsect]{beamer} % Plain \usefonttheme[onlymath]{serif} \usetheme[shownavsym,right]{Aalborg} \setbeamertemplate{blocks}[rounded][shadow=true] \definecolor{dgreen}{rgb}{0.,0.6,0.} \definecolor{aaublue}{RGB}{33,26,82}% dark blue \usepackage{etoolbox} % 用于兼容旧版本Beamer \AtBeginEnvironment{theorem}{% \normalfont % 关键:添加此行取消斜体 \setbeamertemplate{itemize items}[circle] % 项目符号形状 \setbeamercolor{block title}{bg=dgreen!100!white,fg=white}% \setbeamercolor{itemize item}{fg=dgreen!100!white}% \setbeamercolor{itemize subitem}{fg=dgreen!100!white}% \setbeamercolor{itemize subsubitem}{fg=dgreen!100!white}% \setbeamercolor{enumerate item}{fg=dgreen!100!black}% \setbeamercolor{enumerate subitem}{fg=dgreen!100!black}% \setbeamercolor{enumerate subsubitem}{fg=dgreen!100!black}% } \AtBeginEnvironment{definition}{% \setbeamertemplate{itemize items}[circle] % 项目符号形状 \setbeamercolor{block title}{bg=blue,fg=white}% \setbeamercolor{itemize item}{fg=blue}% \setbeamercolor{itemize subitem}{fg=blue}% \setbeamercolor{itemize subsubitem}{fg=blue}% \setbeamercolor{enumerate item}{fg=blue}% \setbeamercolor{enumerate subitem}{fg=blue}% \setbeamercolor{enumerate subsubitem}{fg=blue}% } \setbeamercolor*{block body}{bg=black!10!white,fg=black} \setbeamercolor*{block body alerted}{bg=normal text.bg!90!black,fg=black} \setbeamercolor*{block body example}{bg=normal text.bg!90!black,fg=black} \setbeamercolor*{block title}{parent=structure2,bg=normal text.bg!0!blue} \setbeamercolor*{block title alerted}{use={normal text,alerted text},fg=alerted text.fg!0!white,bg=normal text.bg!10!red} \setbeamercolor*{block title example}{use={normal text,example text},fg=white,bg=cyan} \setbeamercolor*{block title theorem}{use={normal text,example text},fg=example text.fg!100!normal text.fg,bg=normal text.bg!0!dgreen} \makeatletter \pgfdeclareverticalshading[lower.bg,upper.bg]{bmb@transition}{200cm}{color(0pt)=(lower.bg); color(4pt)=(lower.bg); color(4pt)=(upper.bg)} \makeatother \begin{document} \section{Section} \begin{frame}[<+->]{Normal font in Theorem-environment} \begin{theorem}[Wanted: Normal font in Theorem-environment] Wanted: Normal font in Theorem-environment \begin{itemize} \item Wanted: Normal font in Theorem-environment \end{itemize} \begin{enumerate} \item Wanted: Normal font in Theorem-environment \end{enumerate} \end{theorem} \end{frame} \end{document}
补充说明
\normalfont命令会将当前环境内的文本字体重置为文档默认的常规样式,同时不会影响数学公式的字体(因为你使用了\usefonttheme[onlymath]{serif},数学字体仍保持衬线体)。- 如果需要更精细的控制(比如仅取消文本斜体而保留其他格式),也可以使用
\upshape命令,效果与\normalfont在该场景下一致。
内容的提问来源于stack exchange,提问作者Peter Jensen
相关产品推荐
相关产品推荐

