Beamer 中节省空间的防护环境

Beamer 中节省空间的防护环境

我想自定义 Beamer,使每个定理陈述都从单词“定理”的右侧开始,而不是从其下方开始,同样,每个证明也从“证明”分界线的右侧开始,而不是从下一行开始。不知何故(不确定如何)我弄清楚了如何在定理类环境中做到这一点;我的解决方案使用以下代码:

\makeatletter
\setbeamertemplate{theorem begin}{\vspace{1ex}%
  {\usebeamercolor[fg]{block title}\usebeamerfont*{block title}
  \inserttheoremname\ %
  \ifx\inserttheoremaddition\@empty\else (\inserttheoremaddition)\fi%
  } \normalfont }
\setbeamertemplate{theorem end}{\vspace{0ex}} % Okay because we have \parskip
\makeatother

但是,我不知道该如何处理证明环境。事实上,标准证明环境对我来说变得更加不节省空间,我想是因为我正在重新定义 \parskip。如果有人能帮我解决这个问题,那就太好了。

答案1

这证明,如果没有最小工作示例 (MWE),就很难给出有意义的答案。继续你所做的,并将其放入最小文档中,结果如下:

\documentclass{beamer}
\makeatletter
\setbeamertemplate{theorem begin}{\vspace{1ex}%
  {\usebeamercolor[fg]{block title}\usebeamerfont*{block title}
  \inserttheoremname\ %
  \ifx\inserttheoremaddition\@empty\else (\inserttheoremaddition)\fi%
  } \normalfont }
\setbeamertemplate{theorem end}{\vspace{0ex}} % Okay because we have \parskip
\setbeamertemplate{proof begin}{\vspace{0.5ex}%
{\usebeamercolor[fg]{block title}\usebeamerfont*{block title}%
\insertproofname\ }%
}
\setbeamertemplate{proof end}{\par
}

\makeatother

\begin{document}
\begin{frame}[t]
\frametitle{A theorem}
\begin{theorem}
 Something.
\end{theorem}
\begin{proof}
 Obvious.
\end{proof}
Some more blabla.
\end{frame}

\begin{frame}[t]
\frametitle{Another theorem}
\begin{theorem}[Fermat's last theorem]
 There is no integer solution to
 \[x^n +y^n=z^n\] 
 for integers $n>2$.
\end{theorem}
\begin{proof}
 The proof is left as an exercise for the reader.
\end{proof}
Some more quack quack.
\end{frame}

\end{document}

在此处输入图片描述

我想说这非常节省空间,甚至可能太多了。

但是,您提到您遇到了问题:

...对我来说,空间利用率更低了,我想因为我正在重新定义\parskip

好的,很好,但是如果其他人不知道你具体做了什么,他们怎么能确保他们提出的解决方案真的对你有用呢?答案是肯定的。

相关内容