我有
\begin{frame}{Motivation}
\begin{minipage}{0.6\textwidth}
\centering
\begin{figure}
\includegraphics[width=1\textwidth]{Dosimetry.png}
\end{figure}
\end{minipage}\hfill
\begin{minipage}{0.4\textwidth}
\begin{itemize}
\item 1
\item 2
\item 3
\item 4
\item 5
\item 6
\end{itemize}
\end{minipage}
这样就可以按照我的要求将图像放置在中心左侧,但是它将第一个要点与图像的顶部对齐,而我希望它位于框架的顶部。
如果我将第二个开始小页面更改为\begin{minipage}[b]{0.4\textwidth}
项目符号,则要点会更接近正确对齐,但图像会向下移动远离中心。
如果我另外更改第一个小页面,使\begin{minipage}[t]{0.6\textwidth}
项目符号正确对齐,但现在图像的对齐程度进一步降低。
我怎样才能让图像处于原始代码显示的位置,项目符号也处于原始代码更改后的位置\begin{minipage}[t]{0.6\textwidth} and \begin{minipage}[b]{0.4\textwidth}
?我不明白为什么这会很难。
答案1
这只是一个黑客攻击,有关复杂的解决方案,请参阅 Skillmon 的回答
\documentclass[t]{beamer}
\begin{document}
\begin{frame}{Motivation}
\begin{columns}[T]
\begin{column}{0.57\textwidth}
\vskip1.4cm
\includegraphics[width=\textwidth]{example-image}
\end{column}
\begin{column}{0.37\textwidth}
\begin{itemize}
\item 1
\item 2
\item 3
\item 4
\item 5
\item 6
\end{itemize}
\end{column}
\end{columns}
\end{frame}
\end{document}
答案2
这是期望的输出吗:
\documentclass[]{beamer}
\begin{document}
\begin{frame}{Motivation}
\begin{minipage}{0.6\textwidth}
\vbox to \textheight{
\vfill
\centering
\includegraphics[width=1\textwidth]{example-image}
\vfill
}
\end{minipage}\hfill
\begin{minipage}{0.4\textwidth}
\vbox to \textheight{
\begin{itemize}
\item 1
\item 2
\item 3
\item 4
\item 5
\item 6
\end{itemize}
\vfill
}
\end{minipage}
\end{frame}
\end{document}
您可以使用以下可选参数实现或多或少相同的效果minipage
:
\documentclass[t]{beamer}
\begin{document}
\begin{frame}{Motivation}
\begin{minipage}[c][\textheight][c]{0.6\textwidth}
\centering
\includegraphics[width=1\textwidth]{example-image}
\end{minipage}\hfill
\begin{minipage}[c][\textheight][t]{0.4\textwidth}
\begin{itemize}
\item 1
\item 2
\item 3
\item 4
\item 5
\item 6
\end{itemize}
\end{minipage}
\end{frame}
\end{document}
为了获得更好的垂直放置效果,可以使用这个答案计算\contentheight
不包含标题和内容的框架高度。
通过这个我们可以进一步自动化这个过程(注意,这0.95\contentheight
可以使图像更好地垂直居中):
\documentclass[t]{beamer}
\newif\ifsidebartheme
\sidebarthemefalse
\newdimen\contentheight
\newdimen\contentwidth
\newdimen\contentleft
\newdimen\contentbottom
\makeatletter
\newcommand*{\calculatespace}{%
\contentheight=\paperheight%
\ifx\beamer@frametitle\@empty%
\setbox\@tempboxa=\box\voidb@x%
\else%
\setbox\@tempboxa=\vbox{%
\vbox{}%
{\parskip0pt\usebeamertemplate***{frametitle}}%
}%
\ifsidebartheme%
\advance\contentheight by-1em%
\fi%
\fi%
\advance\contentheight by-\ht\@tempboxa%
\advance\contentheight by-\dp\@tempboxa%
\advance\contentheight by-\beamer@frametopskip%
\ifbeamer@plainframe%
\contentbottom=0pt%
\else%
\advance\contentheight by-\headheight%
\advance\contentheight by\headdp%
\advance\contentheight by-\footheight%
\advance\contentheight by4pt%
\contentbottom=\footheight%
\advance\contentbottom by-4pt%
\fi%
\contentwidth=\paperwidth%
\ifbeamer@plainframe%
\contentleft=0pt%
\else%
\advance\contentwidth by-\beamer@rightsidebar%
\advance\contentwidth by-\beamer@leftsidebar\relax%
\contentleft=\beamer@leftsidebar%
\fi%
}
\makeatother
\begin{document}
\begin{frame}
\calculatespace%
\begin{minipage}[c][0.95\contentheight][c]{0.6\textwidth}%
\centering%
\includegraphics[width=1\textwidth]{example-image}%
\end{minipage}\hfill%
\begin{minipage}[c][0.95\contentheight][t]{0.4\textwidth}%
\begin{itemize}%
\item 1%
\item 2%
\item 3%
\item 4%
\item 5%
\item 6%
\end{itemize}%
\end{minipage}%
\end{frame}
\end{document}