我正在尝试对 Beamer 中的默认设置进行以下更改:
- 我不想使用通常的块编号 (1, 2, 3),而是想添加一个前缀:(A.1, A.2, A.3)。
- 我还想将该
\begin{example}
块中的“示例”一词改为“练习”。
我该如何进行这些调整?对于第二个,我打算创建一个\begin{exercise}
命令,但我不知道如何创建一个。
\documentclass{beamer}
\usetheme{Boadilla}
\usecolortheme{whale}
\setbeamertemplate{theorems}[numbered]
\begin{document}
\begin{frame}{Title}
\begin{theorem}
Theorem A.1, not Theorem 1.
\end{theorem}
\begin{example}
Change `Example 2' to `Exercise A.2'.
\end{example}
\begin{definition}
Definition A.3
\end{definition}
\end{frame}
\end{document}
答案1
当使用定理环境时,覆盖规范在调用时必须遵循“块开始模板”。所以我们必须使用它来添加可选参数,\inserttheoremaddition
这可能让我们更改块标题。
将此代码放在序言中以添加A。在数字之前。
% ------------- Adding letter A before numbers ----------
\setbeamertemplate{theorem begin}
{%
\begin{\inserttheoremblockenv}
{\inserttheoremname~A\inserttheorempunctuation\ignorespaces\inserttheoremnumber}%
}\setbeamertemplate{theorem end}
{ \end{\inserttheoremblockenv}}
另一方面,创造一个新的块环境称为练习,我们有 use\def\th@newblock
命令。现在,您可以通过 在文档部分中创建一个练习块\begin{exercise}
。请注意,示例环境\begin{example}
仍然可用(如上图所示)。我修改了发布的答案这里。因此,您还应该在序言部分添加下一个代码。
% ------------- Creating a new block template ----------
\makeatletter
\def\th@newblock{%
\normalfont
\def\inserttheoremblockenv{exampleblock}}
\theoremstyle{newblock}
\newtheorem{exercise}[theorem]{Exercise}
\makeatother
此外,您可以更改此块的“颜色”或样式,更改exampleblock
为alertblock
或任何其他选项。
最后,这是你的新代码:
\documentclass{beamer}
\usetheme{Boadilla}
\usecolortheme{whale}
\setbeamertemplate{theorems}[numbered]
% ------------- Adding letter A before numbers ----------
\setbeamertemplate{theorem begin}
{%
\begin{\inserttheoremblockenv}
{\inserttheoremname~A\inserttheorempunctuation\ignorespaces\inserttheoremnumber}%
}
\setbeamertemplate{theorem end}
{ \end{\inserttheoremblockenv}}
% ------------- Creating a new block template ----------
\makeatletter
\def\th@newblock{%
\normalfont
\def\inserttheoremblockenv{exampleblock}}
\theoremstyle{newblock}
\newtheorem{exercise}[theorem]{Exercise}
\makeatother
% ------------- Document ----------
\begin{document}
\begin{frame}{Title}
\begin{theorem}
Theorem A.1, not Theorem 1.
\end{theorem}
\begin{exercise} % using the new exercise command !
Change `Example 2' to `Exercise A.2'.
\end{exercise}
\begin{definition}
Definition A.3
\end{definition}
\begin{example}
Example block is still working
\end{example}
\end{frame}
\end{document}
这是我发布的第一个答案,如果我说得不够清楚,请告诉我。问候。