使用 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 X
tikzpicture
- 是什么原因造成这种不同的排列?
- 如何才能将框架 B 中的对齐方式改为与框架 A 和 C 中的对齐方式相同?
答案1
顶部对齐,不对齐基线
\begin{minipage}[t]
将小页面与第一个内容行的基线对齐。正如问题中已经使用的那样,以minipage
a 开头\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
如果您认为答案符合您的要求,请点击左侧的红色三角形和下方的勾号来为答案点赞