在 Beamer 中重复编号项目

在 Beamer 中重复编号项目

我希望能够重复上一张幻灯片中同一编号下的编号项目。我知道如果我想重复的项目来自紧接在前面的幻灯片,我可以执行以下操作:

\documentclass[pdf]{beamer}
   \usepackage[utf8]{inputenc}
   \usepackage{tipa}
   \usecolortheme{beaver}
   \setbeamercovered{highly dynamic}
   \mode<presentation>{}
       \newcounter{saveenumi}
       \newcommand{\seti}{\setcounter{saveenumi}{\value{enumi}}}
       \newcommand{\conti}{\setcounter{enumi}{\value{saveenumi}}}

       \resetcounteronoverlays{saveenumi}
       \AtBeginSection[]
      {
       \begin{frame}<beamer>
       \frametitle{}
       \tableofcontents[currentsection]
       \end{frame}
      }
 \begin{document}
 \begin{frame}
     \begin{enumerate}
     \item First.
     \seti
     \end{enumerate}   
\end{frame}
\begin{frame}
    \begin{enumerate}
    \conti
    \item Second.
    \end{enumerate}    
\end{frame}
\begin{frame}
    \begin{enumerate}
    \conti
    \item Second again.
    \seti
    \end{enumerate} 
\end{frame} \end{document}

但我希望能够重复任意幻灯片中的任意项目。我也知道我可以这样做:

 \documentclass[pdf]{beamer}
   \usepackage[utf8]{inputenc}
   \usepackage{tipa}
   \usecolortheme{beaver}
   \setbeamercovered{highly dynamic}
   \mode<presentation>{}

      \begin{document}
         \begin{frame}
            \begin{enumerate}
            \item First.\label{1}
            \end{enumerate}
         \end{frame}
        \begin{frame}
            \begin{itemize}
            \item[\ref{1}] First again.
            \end{itemize}
        \end{frame}
      \end{document}

但这很笨重并且通常很丑陋,因为\item[\ref{1}]它不会自动保留前一张幻灯片的编号标签的样式和对齐方式。

答案1

你可以使用该refcount包获得一个可扩展的参考编号,以供使用。这样你就可以在最后一个代码中使用第一个代码的技巧。

\documentclass[pdf]{beamer}
\usepackage[utf8]{inputenc}
\usepackage{tipa}
\usepackage{refcount}
\usecolortheme{beaver}
\setbeamercovered{highly dynamic}
\mode<presentation>{}

\begin{document}
   \begin{frame}
      \begin{enumerate}
      \item First.\label{1}
      \item Second.\label{2}
      \item Third.\label{3}
      \end{enumerate}
   \end{frame}
  \begin{frame}
      \begin{enumerate}\setcounter{enumi}{\the\numexpr\getrefnumber{1}-1}
      \item First again.\setcounter{enumi}{\the\numexpr\getrefnumber{3}-1}
      \item Third again.
      \end{enumerate}
  \end{frame}
\end{document}

在此处输入图片描述

显然,您可以将其转换为宏。

\documentclass[pdf]{beamer}
\usepackage[utf8]{inputenc}
\usepackage{tipa}
\usepackage{refcount}
\usecolortheme{beaver}
\setbeamercovered{highly dynamic}
\mode<presentation>{}
\newcommand{\repeateditem}[1]{%
\setcounter{enumi}{\the\numexpr\getrefnumber{#1}-1}%
\item}
\begin{document}
   \begin{frame}
      \begin{enumerate}
      \item First.\label{1}
      \item Second.\label{2}
      \item Third.\label{3}
      \end{enumerate}
   \end{frame}
  \begin{frame}
      \begin{enumerate}
      \repeateditem{1} First again.
      \repeateditem{3} Third again.
      \end{enumerate}
  \end{frame}
\end{document}

答案2

也许我理解错了,但是为什么另一个框架中还有另一个列表?

姆韦

\documentclass{beamer}
\geometry{paperheight=1.5in,paperwidth=2in}
\begin{document}
   \begin{frame}
      \begin{enumerate}
      \item \only<1>{First}\only<2>{First again}\label{1}
      \item<1> Second\label{2}
      \item \only<1>{Third}\only<2>{Third again}\label{3}
      \end{enumerate}
   \end{frame}
\end{document}

对于不连续的幻灯片并且没有丢失物品的空间:

\documentclass{beamer}
\geometry{paperheight=1.5in,paperwidth=2in}
\begin{document}
   \begin{frame}<1>[label=xxx]
      \begin{enumerate}
      \item \only<1>{First}\only<2>{First again}\label{1}
      \only<1>{\item Second\label{2}}\only<2>{\stepcounter{enumi}}
      \item \only<1>{Third}\only<2>{Third again}\label{3}
      \end{enumerate}
   \end{frame}

\begin{frame}
    Another frame
\end{frame}

\againframe<2>{xxx} 

\end{document}

相关内容