![Beamer:如何制作类似定理的块(带免费标题)](https://linux22.com/image/269561/Beamer%EF%BC%9A%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E7%B1%BB%E4%BC%BC%E5%AE%9A%E7%90%86%E7%9A%84%E5%9D%97%EF%BC%88%E5%B8%A6%E5%85%8D%E8%B4%B9%E6%A0%87%E9%A2%98%EF%BC%89.png)
我经常使用 CambridgeUS,唯一的缺点是当我将定理分成几部分时,看不清定理的结尾。所以我希望定理的主体用斜体表示。但是,我也希望能够选择标题,因此我希望使用“定理 (Erdos, 1960)”而不是“定理”。
做这个的最好方式是什么?
我应该创建一种新型的块环境,还是更改定理环境?
我当然可以使用普通块并始终手动将其设为斜体,但这看起来是一个糟糕的解决方案。
答案1
您可以尝试以下代码来定义您的自定义块:
\newenvironment<>{proposition}[1][\undefined]{%
\begin{actionenv}#2%
\ifx#1\undefined%
\def\insertblocktitle{Proposition}%
\else%
\def\insertblocktitle{Proposition ({\em#1})}%
\fi%
\par%
\mode<presentation>{%
\setbeamercolor{block title}{fg=white,bg=yellow!50!black}
\setbeamercolor{block body}{fg=black,bg=yellow!20}
}%
\usebeamertemplate{block begin}\em}
{\par\usebeamertemplate{block end}\end{actionenv}}
改编自此处: 定制投影机块有哪些优点和缺点?。请注意,已插入 \if 以排版标题中的命题(当未给出可选标题时),或命题(提案名称) 如果提供了这样的可选名称。
通过在 \usebeamertemplate{block begin} 后插入 \em 命令,正文已调整为斜体。
此外,颜色也已经定义(这是我在 beamer 中实现自定义定义的最初动机,因为当指定背景颜色时,在 beamer 中使用 thmtools 包会出现问题)。
通过这种方式,您可以定义定义、假设、命题、引理、定理、推论、注释块,每个块可能具有不同的颜色。使用它们作为:
\begin{proposition}
Main text, no custom name in the title.
\end{proposition}
当您只想要正文时,或者您还想在括号内以斜体指定名称时,请使用:
\begin{proposition}[optional name, will become italic]
Main text
\end{proposition}
如果有人希望正文保持正常(而不是斜体),那么从 \usebeamertemplate{block begin} 之后删除 \em 命令就足够了。