将块与边距对齐

将块与边距对齐

我正在使用带有内部主题的 beamer rectangles。然后,块内的文本与块外的文本对齐,并且块的边缘突出到边距中。我希望块边缘跟随边距。我寻找解决方案,我发现最好的方法是将块环境放置在minipage所需宽度的 内,并将其放置在 内center

我试过了,它大致在左侧对齐。但是,现在块右侧的空白比左侧多。

\documentclass{beamer}

\usepackage{etoolbox}

\useinnertheme{rectangles}

\setbeamersize{text margin left  = 1em, 
               text margin right = 1em}

\setbeamertemplate{frametitle}
{
    \vspace{9.5mm}
    \vbox
    {
        \bfseries\LARGE\strut\structure{\insertframetitle}\strut
    }
    \vspace{-0.8em}
}

\BeforeBeginEnvironment{block}
{
    \begin{center}
        \begin{minipage}{0.9485\textwidth}
}

\AfterEndEnvironment{block}
{
         \end{minipage}
    \end{center}
}

\setbeamercolor{block title}{fg = white, bg = structure}

\begin{document}

    \begin{frame}
        \frametitle{I}

        \begin{block}{I}

        \end{block}

    \end{frame}

\end{document}

答案1

我希望我理解得没错。下面是我们在主题,据我所知这正是您想要的。

\documentclass{beamer}
\setbeamersize{text margin left  = 1em, 
               text margin right = 1em}

\setbeamertemplate{frametitle}{%
  \vspace{9.5mm}
  \vbox{%
    \bfseries\LARGE\strut\structure{\insertframetitle}\strut
  }
  \vspace{-0.8em}
}

\setbeamercolor{block title}{fg = white, bg = structure}

\setbeamertemplate{block begin}{%
  \vspace*{1ex}
  \begin{beamercolorbox}[%
    ht=2.4ex,
    dp=1ex,
    leftskip=0.5em,
    rightskip=0.5em]{block title}
      \usebeamerfont*{block title}\insertblocktitle%
  \end{beamercolorbox}%
  \vspace*{0.5em}
  \usebeamerfont{block body}%
  \begin{beamercolorbox}[%
    dp=1ex,
    leftskip=0.5em,
    rightskip=0.5em,
    vmode]{block body}%
}
\setbeamertemplate{block end}{%
  \end{beamercolorbox}
  \vspace*{0.2ex}
}

\begin{document}
  \begin{frame}{Frametitle}
    \begin{block}{Blocktitle}
    Content of the block.
    \end{block}
  \end{frame}
\end{document}

顺便说一下,矩形内部主题不会对块定义进行任何更改。所以我将其从您的 MWE 中删除。

截屏

相关内容