使用叠加层和“哥本哈根”主题时物品放错了位置

使用叠加层和“哥本哈根”主题时物品放错了位置

请考虑这个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}

MWE 输出

如您所见,第三项放错了位置(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}

相关内容