自动并排叠加

自动并排叠加

我想要两个并排出现的项目,它们彼此相邻并且也具有相同的警报。

因此,第一张幻灯片只是框架标题,第二张幻灯片item1来自两个带有警报颜色的列表,第三张幻灯片item1来自item2两个带有-s 的列表,item2带有警报颜色等。

目前图片是最后一面,不幸的是,整个右侧列表与item3左侧列表一起出现。我可以手动叠加,但这可以自动完成吗?

\documentclass{beamer}
\begin{document}
\frame{
    \frametitle{title}
    \begin{columns}

    \begin{column}{0.45\paperwidth}  %%<--- here
      \begin{itemize}[<+(1)-| alert@+(1)>]
        \item item1
        \item item2
        \item item3
      \end{itemize}
    \end{column}

    \begin{column}{0.45\paperwidth}  %%<--- here
      \begin{itemize}[<.(1)-| alert@.(1)>]
        \item item1
        \item item2
        \item item3
      \end{itemize}
    \end{column}

  \end{columns}
}
\end{document}

在此处输入图片描述

答案1

这可能不是最简单的方法(也可能不是最好的方法):

(将计数器插入itemize取自这里

\documentclass{beamer}

\usepackage{xpatch}
\newcounter{itemcntr}
\AtBeginEnvironment{itemize}{%
 \setcounter{itemcntr}{0}%
 \xapptocmd{\item}{\stepcounter{itemcntr}}{}{}%
}
\newcounter{itemscount}
\newcommand{\setitemscount}{%
 \setcounter{itemscount}{\arabic{itemcntr}}%
 \addtocounter{itemscount}{-1}%
}

\begin{document}
\frame{
    \frametitle{title}
    \begin{columns}

    \begin{column}{0.45\paperwidth}  %%<--- here
      \begin{itemize}[<+(1)-| alert@+(1)>]
        \item item1
        \item item2
        \item item3
        \item item4 
      \end{itemize}
    \end{column}
    
    \setitemscount

    \begin{column}{0.45\paperwidth}  %%<--- here
      \begin{itemize}[<+(-\theitemscount)-| alert@+(-\theitemscount)>]
        \item item1
        \item item2
        \item item3
        \item item4
      \end{itemize}
    \end{column}

  \end{columns}
}
\end{document}

这段代码起什么作用?

首先,我加载xpatch包,因为我想为每个itemize环境添加一个计数器,默认情况下,该包不附带这样的计数器。使用\AtBeginEnvironment,我将先前定义的计数器设置itemcntr为 0,然后在环境\item中的每个宏中附加itemize一个\stepcounter宏以将此计数器增加 1。这意味着计数器itemcntr包含最后一个环境的项目数itemize

然后,我定义另一个计数器itemscount和一个新的宏\setitemscount,它本质上只将新计数器设置为计数器的值itemcntr

现在,当您调用 时\setitemscount,计数器itemscount将设置为上一个环境的项目数。然后,您可以在下一个环境的参数中itemize使用此计数器的值(可通过 访问)来将更改与 同步。这意味着此环境中的项目比当前步骤早 x 次被选择,其中 x 是前一个环境的项目数。这样,​​两个列表都是同步的。\theitemscountitemize[<+(-\theitemscount)-| alert@+(-\theitemscount)>]

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

相关内容