Beamer 在块中列出时未对齐

Beamer 在块中列出时未对齐

制作海报时,我有两列带有项目块的列。MWE:

\documentclass[final]{beamer}
\mode<presentation>{}

\usepackage{times}
\usepackage{amsmath,amssymb}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}

\begin{document}
\begin{frame}[t]{} 

%\leavevmode
\begin{columns}[t, onlytextwidth]
\begin{column}{.5\linewidth}
\begin{block}{Contributions}
\begin{itemize}
\item First Item
\item Second Item
\end{itemize}
\end{block}
\end{column}
\begin{column}{.5\linewidth}
\begin{block}{Approach}
\begin{itemize}
\item First Item
\item Second Item
\end{itemize}
\end{block}
\end{column}
\end{columns}

\end{frame}
\end{document}

我的本地安装和 ShareLaTeX 会使项目符号(我添加的基线)错位:错误插图

该问题似乎类似于:

但这次 itemize 在块内时会发生这种情况。如果移除块,它就可以正常工作。

是我遗漏了什么还是这看起来像是 Beamer 的一个错误?

谢谢!我是 LaTeX 新手,如果我错过了什么愚蠢的东西,请见谅。

答案1

在您的示例中,第一个标题的深度为空(没有字母 或gy。要解决 beamer 的此功能(或“错误”),您可以\vphantom{Ag}在块的每个标题中添加(\vphantom添加其内容的垂直幻影)。

\documentclass{beamer}
\usepackage{times}
\usepackage{amsmath,amssymb}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}

\begin{document}
\begin{frame}[t]{} 
  \begin{columns}[t, onlytextwidth]
    \begin{column}{.45\linewidth}
      \begin{block}{Contributions\vphantom{Ag}}
        \begin{itemize}
        \item First Item
        \item Second Item
        \end{itemize}
      \end{block}
    \end{column}
    \begin{column}{.45\linewidth}
      \begin{block}{Approach\vphantom{Ag}}
        \begin{itemize}
        \item First Item
        \item Second Item
        \end{itemize}
      \end{block}
    \end{column}
  \end{columns}
\end{frame}
\end{document}

注意:如果您使用onlytextwidth,则列宽总和应该小于\textwidth(以便在列之间留出空间)。

答案2

如果有人喜欢更紧密的垂直间距,以下答案将忽略字母的下降部分:

\documentclass{beamer}

\setbeamercolor{block title}{bg=red!30,fg=black}

\setbeamertemplate{block begin}
{
  \par\vskip\medskipamount%
  \begin{beamercolorbox}[colsep*=.75ex]{block title}
    \usebeamerfont*{block title}\strut\insertblocktitle\vskip-\dp\strutbox%
  \end{beamercolorbox}%
  {\parskip0pt\par}%
  \ifbeamercolorempty[bg]{block title}
  {}
  {\ifbeamercolorempty[bg]{block body}{}{\nointerlineskip\vskip-0.5pt}}%
  \usebeamerfont{block body}%
  \begin{beamercolorbox}[colsep*=.75ex,vmode]{block body}%
    \ifbeamercolorempty[bg]{block body}{\vskip-.25ex}{\vskip-.75ex}\vbox{}%
}

\begin{document}

\begin{frame}
\begin{block}{This title has a problem}
    some text
\end{block}
\begin{block}{This title is about fine}
    some text
\end{block}
\end{frame}

\end{document}

在此处输入图片描述

相关内容