垂直对齐小页面内容

垂直对齐小页面内容

使用 latex beamer 时,我想将 minipages 或类似环境中的内容顶部对齐到相同的高度,就像没有 minipage 一样。

最小示例:

\documentclass[t]{beamer}
\usepackage{tikz}

\begin{document}
\setlength\pdfpageheight{1.60cm}%
\setlength\pdfpagewidth{6cm}%

\begin{frame}{A\strut}
        \begin{itemize}
            \item X
        \end{itemize}
\end{frame}

\begin{frame}{B\strut}
    \begin{minipage}[t]{2cm}
        \vskip 0pt%
        \begin{itemize}
            \item X
        \end{itemize}
    \end{minipage}%
    \nolinebreak%
\begin{minipage}[t]{2cm}
        \vskip 0pt%
        \begin{tikzpicture}
            \node[fill=gray,minimum width=2cm,minimum height=1cm] {};
        \end{tikzpicture}
    \end{minipage}%
\end{frame}

\begin{frame}{C\strut}
        \begin{tikzpicture}
            \node[fill=gray,minimum width=4cm,minimum height=1cm] {};
        \end{tikzpicture}
\end{frame}

\end{document}

从中可以看出,\item X在框架 A 和 B 中的顶部对齐方式不同,在框架 B 和 C 中的顶部对齐方式也不同,最令人困惑的是,和tikzpicture之间的对齐差异也不同。\item Xtikzpicture

由于使用 minipage 而导致顶部对齐方式不同

  • 是什么原因造成这种不同的排列?
  • 如何才能将框架 B 中的对齐方式改为与框架 A 和 C 中的对齐方式相同?

答案1

顶部对齐,不对齐基线

\begin{minipage}[t]将小页面与第一个内容行的基线对齐。正如问题中已经使用的那样,以minipagea 开头\vskip 0pt%会使基线位于小页面的顶部,从而产生真正的顶部对齐。

把 设置minipage为水平模式

为了在小页面中获得与外部相同的行为,必须使用 将小页面置于水平模式\leavemode%,然后用\vskip -\baselineskip%来纠正垂直偏移。

综合起来

可以通过按如下方式启动每个小页面来创建所需的效果:

\begin{minipage}[t]{2cm}
    \leavevmode%
    \vskip 0pt%
    \vskip -\baselineskip%

完整最小示例:

\documentclass[t]{beamer}

\usepackage{tikz}

\begin{document}

\setlength\pdfpageheight{1.6cm}%
\setlength\pdfpagewidth{6cm}%

\begin{frame}{A\strut}
        \begin{itemize}
            \item X
        \end{itemize}
\end{frame}

\begin{frame}{B\strut}
    \begin{minipage}[t]{2cm}%
        \leavevmode%
        \vskip 0pt%
        \vskip -\baselineskip%
        \begin{itemize}
            \item X
        \end{itemize}
    \end{minipage}%
    \nolinebreak%
    \begin{minipage}[t]{2cm}%
        \leavevmode%
        \vskip 0pt%
        \vskip -\baselineskip%
        \begin{tikzpicture}
            \node[fill=gray,minimum width=2cm,minimum height=0.55cm] {};
        \end{tikzpicture}
    \end{minipage}%
\end{frame}

\begin{frame}{C\strut}
        \begin{tikzpicture}
            \node[fill=gray,minimum width=4cm,minimum height=0.55cm] {};
        \end{tikzpicture}
\end{frame}

-\end{document}

所有内容都正确顶部对齐

答案2

这就是你要找的东西吗

在此处输入图片描述

\documentclass[t]{beamer}
\usepackage{tikz}
\begin{document}

\begin{frame}
\begin{minipage}[t]{.1\textwidth}
A
\end{minipage}
\begin{minipage}[t]{.2\textwidth}
    \begin{itemize}
    \item X
    \item Y
    \item Z
    \end{itemize}
\end{minipage}
\begin{minipage}[t]{.3\textwidth}
    \begin{tikzpicture}
            \node[fill=gray,minimum width=2cm,minimum height=1cm] {tikz};
        \end{tikzpicture}
\end{minipage}

\end{frame}
\end{document}

另请参阅——https://tex.stackexchange.com/a/272260/197451对于问题\itemize

如果您认为答案符合您的要求,请点击左侧的红色三角形和下方的勾号来为答案点赞

相关内容