我有一些没有标题的块,我在格式化它们时遇到了一些困难。如果我使用带有空标题的普通块,则标题仍然可见。如果我使用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
下面我提出两个选择:
更多的是黑客攻击,而不是真正的解决方案,但对于一次性情况很有用:在标题中使用负空间,如下所示
\begin{block}{\vspace{-1.5ex}} body without title \end{block}
您可以定义一个块来适当处理没有标题的情况。下面我通过定义一个类似
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}