在 beamer 的块环境中引入左边距

在 beamer 的块环境中引入左边距

我正在使用 制作海报beamerposter。块内的文本似乎总是没有左边距。有人能告诉我在块中引入左边距的方法吗?

以下是块的外观示例。请注意,文本开始时没有左边距。

在此处输入图片描述

如果您能告诉我如何在块内定义左、右、上和下边距就好了。请注意,我有嵌套块,尽管嵌套块具有不同的环境名称(我调用了 then insideBlocks)。因此,我不希望环境的边距block影响我的insideBlocks环境的边距。

希望我说清楚了。

答案1

我认为这可以通过多种方式实现。一种可能性是定义一个具有自定义边距的新块环境,如下所示:

 \documentclass{beamer}
 \usetheme{Frankfurt}

\newenvironment<>{myblock}[1]{%
 \begin{actionenv}#2%
 \def\insertblocktitle{\leftskip=10pt\rightskip=10pt\vspace{10pt} #1\vspace{10pt}}%
 \par%
 \usebeamertemplate{block begin}\leftskip=10pt\rightskip=10pt\vspace{10pt}}
 {\par\vspace{10pt}\usebeamertemplate{block end}
 \end{actionenv}}


\begin{document}
\begin{frame}

\begin{myblock}{example title to show 10pt up, down, left and right margins}
 example text to show 10pt up, down, left and right margins
\end{myblock}

\begin{block}{example title to show standard margins}
 example text to show standard margins
\end{block}

\end{frame}
\end{document}

在新环境中(我称之为myblock\leftskip\rightskip\vspace用于设置边距。例如,我将所有内容设置为 10pt。如果您不想要右边距,只需rightskip从代码中删除即可。我假设您还想自定义标题文本边距,如果您不想,只需leftskip从中删除等即可\def\insertblocktitle{}。结果是: 在此处输入图片描述

另一种可能性是使用tcolorbox包,它允许您像这样设置边距:

\documentclass{beamer} 
\usepackage{tcolorbox}                                 
\tcbuselibrary{skins}                                  


\tcbset{                                               % custom tcolorbox  
        skin=enhanced,                                 
        frame style={fill=blue},                       % sets the frame color
        bottom=10pt,                                    % distance between the body text and the bottom frame
        top=10pt,                                      % distance between the body text and the top frame
        left=10pt,
        right=10pt,
        boxrule=0pt,                                   % frame width
        bottomtitle=10pt,                               % distance between the title text and the bottom title frame               
        toptitle=10pt,                                  % distance between the title text and the top title frame
        lefttitle=10pt,                                  % title text left margin
        righttitle=10pt
}  
\begin{document}
\begin{frame}  
\begin{tcolorbox}[title=test]
 test
\end{tcolorbox}
\end{frame}
\end{document}

结果是: 在此处输入图片描述

编辑:我没有beamerposter在示例代码中添加该包,因为它可以在修改beamerbeamerposter不修改的情况下工作。

答案2

您可以使用即将推出的 tcolorbox 内部主题版本 v0.3(https://www.ctan.org/pkg/beamertheme-tcolorbox)。使用这个主题,嵌套的块将自动比周围的块小一点:

\documentclass{beamer}
\usetheme{Warsaw}
\usepackage[size=a4,orientation=portrait]{beamerposter}

\useinnertheme{tcolorbox}

\begin{document}

\begin{frame}
\begin{block}{title}
content...
\begin{block}{title}
content...
\end{block}
\end{block}
\end{frame}

\end{document}

在此处输入图片描述

相关内容