amsthm定理环境(定理,例子,证明,解决方案......)在beamer幻灯片上制作块。默认情况下,示例环境使用与定理或解决方案或证明(块)不同的模板(块示例)。
如何使解决方案使用不同的模板,例如我可以定义的“块解决方案”?
编辑:感谢那些回答的人。我还没有实现一种解决方法,但似乎有两个想法:
为名为\th@foo
的类似定理的环境重新定义foo
命令。新命令应将\inserttheoremblockenv
重新定义为所需的块环境。请参阅beamerbasetheorems.sty
(第63行),了解example
的具体操作方法。
重新定义theorem begin
和theorem end
模板,根据全局变量\inserttheoremname
查找正确的定理块环境(请参阅beamerinnerthemedefault.sty
)。查找表可以保存在pgfkeys
注册表中。这种方法会更高一些,并且不会涉及任何带有@
的命令;但是,YAGNI浮现在脑海中。
答案 0 :(得分:2)
如beamerbasetheorems.sty
中所示:
\documentclass[notheorems]{beamer}
\theoremstyle{plain}
\newtheorem{theorem}{\translate{Theorem}}
\newtheorem{example}[theorem]{\translate{Example}}
% or
\theoremstyle{definition}
\newtheorem{theorem}{\translate{Theorem}}
\newtheorem{example}[theorem]{\translate{Example}}
% or
\theoremstyle{example}
\newtheorem{theorem}{\translate{Theorem}}
\newtheorem{example}[theorem]{\translate{Example}}
你喜欢什么样的风格。您还可以更改[alert | example]块的外观:
\setbeamercolor{block body}{fg=blue,bg=white}
\setbeamercolor{block body alerted}{fg=blue,bg=white}
\setbeamercolor{block body example}{fg=blue,bg=white}
(没试过,只是看看投影仪的来源)
编辑:仍然不确定是否想要这样做,但您可以定义自己的定理样式:
\makeatletter
\def\th@something{%
\normalfont % body font
\def\inserttheoremblockenv{alertblock}
}
\theoremstyle{something}
\newtheorem{warn}[theorem]{WARNING}
\makeatother
\begin{warn}[Attention please]
This is dangerous
\end{warn}
(这是有效的,我测试了它)
您有3个预定义的块,您可以使用\ defbeamertemplate自定义。查看有关如何执行此操作的来源和文档。如果您需要更多阻止环境,请参阅basebeamerlocalstructure.sty
:
\newenvironment<>{alertblock}[1]{%
\begin{actionenv}#2%
\def\insertblocktitle{#1}%
\par%
\mode<presentation>{%\usebeamerfont{block}%
\setbeamercolor{local structure}{parent=alerted text}}%
\usebeamertemplate{block alerted begin}}
{\par%
\usebeamertemplate{block alerted end}%
\end{actionenv}}
希望有所帮助