相当于 beamerboxesrounded 的矩形内部主题

相当于 beamerboxesrounded 的矩形内部主题

我有一些没有标题的块,我在格式化它们时遇到了一些困难。如果我使用带有空标题的普通块,则标题仍然可见。如果我使用beamercolorbox,则块的格式与普通块不同。似乎beamerboxesrounded可以正常工作,只是我使用的是rectangles内部主题,所以我希望这个主题有等效的东西。

下面是一个说明该问题的小例子。

\documentclass{beamer}

\mode<presentation>

\useinnertheme{rectangles}
\useoutertheme{split}
\usecolortheme{orchid}

\begin{document}

\begin{frame}
\begin{block}{title}
body
\end{block}

\begin{block}{}
body without title
\end{block}

\begin{beamercolorbox}[wd=\textwidth,sep=1em]{block body}
body without title (notice different size)
\end{beamercolorbox}

\begin{beamerboxesrounded}{}
body without title (this size looks OK)
\end{beamerboxesrounded}
\end{frame}

\end{document}

盒子问题

答案1

在此处输入图片描述

下面我提出两个选择:

  1. 更多的是黑客攻击,而不是真正的解决方案,但对于一次性情况很有用:在标题中使用负空间,如下所示

    \begin{block}{\vspace{-1.5ex}}
    body without title
    \end{block}
    
  2. 您可以定义一个块来适当处理没有标题的情况。下面我通过定义一个类似block begin但没有标题的模板来实现这一点,然后使用此模板定义一个ntblock

代码:

\documentclass{beamer}

\mode<presentation>

\useinnertheme{rectangles}
\useoutertheme{split}
\usecolortheme{orchid}

%template for block without title
\defbeamertemplate{block begin}{notitle}
{
  \usebeamerfont{block body}%
  \begin{beamercolorbox}[colsep*=.75ex,vmode]{block body}%
    \ifbeamercolorempty[bg]{block body}{\vskip-.25ex}{\vskip-.75ex}\vbox{}%
}

\newenvironment<>{ntblock}
  {\setbeamertemplate{block begin}[notitle]
  \begin{block}#1{}}
  {\end{block}}

\begin{document}

\begin{frame}
\begin{block}{title}
body
\end{block}

\begin{block}{\vspace{-1.5ex}}
body without title
\end{block}

\begin{block}{title}
body
\end{block}

\begin{ntblock}
body without title
\end{ntblock}

\begin{block}{title}
body
\end{block}
\end{frame}

\end{document}

相关内容