请考虑这个MWE:
\documentclass{beamer}
\makeatletter
\newcommand*{\overlaynumber}{\number\beamer@slideinframe}
\makeatother
\usetheme{Copenhagen}
\begin{document}
\begin{frame}
\begin{block}{}
Text
\begin{onlyenv}<1-2>
\begin{enumerate}
\setcounter{enumi}{1}
\item Text
\begin{columns}[T]
\begin{column}{.5\linewidth}
\begin{itemize}
\item $n=0$
\end{itemize}
\end{column}
\begin{column}{.5\linewidth}
\begin{itemize}
\item $n=1$
\end{itemize}
\end{column}
\end{columns}
\end{enumerate}
\end{onlyenv}
\begin{onlyenv}<3-4>
\begin{enumerate}
\setcounter{enumi}{2}
\item PROBLEM WITH THIS ENUMERATE LABEL
\begin{itemize}
\item Text here
\item More text here
\end{itemize}
\end{enumerate}
\end{onlyenv}
\end{block}
\end{frame}
\end{document}
如您所见,第三项放错了位置(itemize
环境也出现了同样的情况)。
我尝试了几种方法,但最后想到了一件事:如果我们删除会发生什么\usetheme{Copenhagen}
?该项目的位置很好。
但是我需要那个主题,并且enumerate
为了使用也必须分离环境onlyenv
。
也许\usepackage{enumitem}
将该项目添加并移动到右侧?我偶然发现了这个极好的答案:“请勿enumitem
与投影机一起使用。”
我们如何使用主题并保留覆盖来解决这个问题?
答案1
您可以通过将列放在环境之后itemize
而不是环境末尾来避免此问题:
\documentclass{beamer}
\makeatletter
\newcommand*{\overlaynumber}{\number\beamer@slideinframe}
\makeatother
\usetheme{Copenhagen}
\begin{document}
\begin{frame}
\begin{block}{}
Text
\begin{onlyenv}<1-2>
\begin{enumerate}
\setcounter{enumi}{1}
\item Text
\end{enumerate}
\begin{columns}[T,onlytextwidth]
\begin{column}{.5\linewidth}
\begin{itemize}
\item $n=0$
\end{itemize}
\end{column}
\begin{column}{.5\linewidth}
\begin{itemize}
\item $n=1$
\end{itemize}
\end{column}
\end{columns}
\end{onlyenv}
\begin{onlyenv}<3-4>
\begin{enumerate}
\setcounter{enumi}{2}
\item PROBLEM WITH THIS ENUMERATE LABEL
\begin{itemize}
\item Text here
\item More text here
\end{itemize}
\end{enumerate}
\end{onlyenv}
\end{block}
\end{frame}
\end{document}