我正在尝试自定义 Beamer 定理,将定理名称和定理主体放在同一个框中。但我的自定义导致定理下方出现额外的空间。
MWE 如下:
\documentclass{beamer}
\newtheorem{thm}{Theorem}
\begin{document}
\begin{frame}
\begin{thm}Text$$Math$$\end{thm}
\hrule Text
\setbeamertemplate{theorem begin}{\bfseries\inserttheoremname\quad\normalfont}
\setbeamertemplate{theorem end}{}
\begin{thm}Text$$Math$$\end{thm}
\hrule Text
\end{frame}
\end{document}
我怎样才能删除自定义定理下方的多余空间?
答案1
您可以在模板中结束该段落theorem end
:
\setbeamertemplate{theorem end}{\par}
并且,如果需要的话,添加一个负数\vskip
来进一步减少间距(虽然我认为现在这样就没问题了)。
我在我的答案中添加了一些其他元素(编号和添加带有环境可选参数的最终注释,但它们当然是可选的):
\documentclass{beamer}
\newtheorem{thm}{Theorem}
\begin{document}
\begin{frame}
\begin{thm}
Text
\[
a=b
\]
\end{thm}
\hrule Text
\setbeamertemplate{theorem begin}{%
{%
\inserttheoremheadfont
\inserttheoremname
\inserttheoremnumber
\ifx\inserttheoremaddition\empty\relax\else\(\inserttheoremaddition)\fi%
\inserttheorempunctuation}~%
}
\setbeamertemplate{theorem end}{\par}
\begin{thm}
Text
\[
a=b
\]
\end{thm}
\hrule Text
\end{frame}
\end{document}
附注:你不应该使用旧的 TeX 语法$$...$$
来显示数学运算;你应该使用\[...\]
;请参阅为什么 \[ ... \] 比 $$ ... $$ 更可取?。