You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 18:34:54