beamer: continua numerazione su diversi frame

  • Questo topic ha 8 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 16 anni fa da springbok.
  • Creatore
    Topic
  • #48740
    Up
    0
    Down
    ::


    Ciao a tutti,
    volevo sapere come posso riuscire a far continuare la numerazione di elenchi puntati e numerati su diversi frame usando il pacchetto `\enumitem`
    In particolare vorrei riuscire a riprendere la numerazione quando cambio frame.

    Grazie

Visualizzazione 7 filoni di risposte
  • Autore
    Risposte
    • #48741
      GKT
      Partecipante
        Up
        0
        Down
        ::

        Ciao a tutti,
        volevo sapere come posso riuscire a far continuare la numerazione di elenchi puntati e numerati su diversi frame usando il pacchetto `\enumitem`
        In particolare vorrei riuscire a riprendere la numerazione quando cambio frame.

        Grazie

        `\documentclass{beamer}

        \usepackage{enumitem}
        \setenumerate[1]{label=\arabic*.}
        \newcounter{ResumeEnumerate}

        \begin{document}

        \begin{frame}
        \begin{enumerate}
        \item primo;
        \item secondo;
        \end{enumerate}
        \setcounter{ResumeEnumerate}{\value{enumi}}
        \end{frame}

        \begin{frame}
        \begin{enumerate}[start=\numexpr\value{ResumeEnumerate}+1]
        \item terzo;
        \item quarto.
        \end{enumerate}
        \end{frame}

        \end{document}`
        Ciao,
        Lorenzo

      • #48742
        Up
        0
        Down
        ::


        Sembra che abbia un problema col package enumitem: quando lo inserisco (comando \usepackage) alla prima riga dove uso il tag “\begin{enumerate}” mi da quest’errore:

        `
        ! TeX capacity exceeded, sorry [grouping levels=255].
        \labelenumii ->{
        \labelenumii }
        l.28 \end{frame}

        ! ==> Fatal error occurred, no output PDF file produced!
        `

        Qualche idea?

      • #48743
        GKT
        Partecipante
          Up
          0
          Down
          ::

          Sembra che abbia un problema col package enumitem: quando lo inserisco (comando \usepackage) alla prima riga dove uso il tag “\begin{enumerate}” mi da quest’errore:

          `
          ! TeX capacity exceeded, sorry [grouping levels=255].
          \labelenumii ->{
          \labelenumii }
          l.28 \end{frame}

          ! ==> Fatal error occurred, no output PDF file produced!
          `

          Qualche idea?

          Per rispondere anche a questo tuo messaggio, nell’esempio che ti ho riportato ho risolto il problema definendo il formato dell’elenco nel preambolo
          `\setenumerate[1]{label=\arabic*.}`
          L’esempio minimo che ho scritto per te non funziona?

        • #48744
          Up
          0
          Down
          ::


          Si funziona perfettamente. Però con questa modifica:

          `
          \documentclass{beamer}

          \usepackage{enumitem}
          \setenumerate[1]{label=\arabic*.}
          \newcounter{ResumeEnumerate}

          \begin{document}

          \begin{frame}
          \begin{enumerate}
          \item primo;
          \item secondo;
          \end{enumerate}
          \setcounter{ResumeEnumerate}{\value{enumi}}
          \end{frame}

          \begin{frame}
          \begin{enumerate}[start=\numexpr\value{ResumeEnumerate}+1]
          \item terzo;
          \begin{enumerate}
          \item terzo.a
          \item terzo.b
          \end{enumerate}
          \item quarto.
          \end{enumerate}
          \end{frame}

          \end{document}

          `

          L’errore è il solito:

          `
          LaTeX Font Warning: Font shape `OT1/cmss/m/n' in size <4> not available
          (Font) size <5> substituted on input line 15.

          [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
          ! TeX capacity exceeded, sorry [grouping levels=255].
          \labelenumii ->{
          \labelenumii }
          l.26 \end{frame}

          ! ==> Fatal error occurred, no output PDF file produced!
          Transcript written on prova1.log.
          `

          Sembra che non vi sia abbastanza memoria per gestire gli elenchi puntati e numerati annidati, il che è assurdo.
          Anche a voi da lo stesso problema? Come si potrebbe risolvere?

        • #48745
          GKT
          Partecipante
            Up
            0
            Down
            ::

            Si funziona perfettamente. A questo punto il problema è del mio file! Questo è il preambolo:

            `
            \documentclass{beamer}

            \usepackage{enumitem}
            \setenumerate[1]{label=\arabic*.}
            \newcounter{ResumeEnumerate}

            \usepackage[italian]{babel}
            \usepackage[utf8]{inputenc}
            \usepackage[T1]{fontenc}
            \usepackage{amsmath, amssymb, booktabs, graphicx}

            \newenvironment{bulletLetters}{\begin{enumerate}[a)]}{\end{enumerate}}

            \usetheme{JuanLesPins}
            \usecolortheme[rgb={0,.603921569,.388235294}]{structure}
            \useoutertheme

            {sidebar}
            \setbeamercovered{dynamic}

            \theoremstyle{definition}
            \newtheorem{definizione}{Definizione}
            `

            C’è qualcosa che non va o con cui va in conflitto?

            [modifica]
            Penso che il problema però non riguardi il preambolo ma piuttosto che dopo quando uso elenchi puntati annidati vi sia un problema di memoria durante la compilazione che genera quest’errore. Infatti il problema è “Tex Capacity Exceeded”
            Non c’è modo di aumentarla?

            Usando il pacchetto enumitem si deve definire il formato degli elenchi con un comando come
            `\begin{enumerate}[label=\alph*)]`
            invece di definire un nuovo ambiente con
            `\newenvironment{bulletLetters}{\begin{enumerate}[a)]}{\end{enumerate}} `
            Se hai l’esigenza di usare diversi formati di elenchi potresti fare così
            `\documentclass{beamer}

            \usepackage{enumitem}
            \setenumerate[1]{label=\arabic*.}
            \newcounter{ResumeEnumerate}

            \begin{document}

            \begin{frame}
            \begin{enumerate}
            \item primo;
            \item secondo;
            \end{enumerate}
            \setcounter{ResumeEnumerate}{\value{enumi}}
            \end{frame}

            \begin{frame}
            \begin{enumerate}[start=\numexpr\value{ResumeEnumerate}+1]
            \item terzo;
            \item quarto.
            \end{enumerate}
            \end{frame}

            \begin{frame}
            \begin{enumerate}[label=\alph*)]
            \item uno;
            \item due.
            \end{enumerate}
            \end{frame}

            \end{document}`
            P.S. La classe beamer carica già il pacchetto graphicx, non caricarlo due volte. 😉

          • #48746
            Up
            0
            Down
            ::


            Ok ora compila.
            Però i numeri e le lettere non sono più tipici del tema (JuanLesPins nel mio caso) quindi per esempio sono senza il cerchio colorato (nel caso dei numeri) oppure senza il colore (nel caso delle lettere).
            Inoltre gli elenchi puntati sembrano essere scomparsi 😥
            Come posso ovviare a questi problemi? Non posso ricominciare la numerazione senza usare il package “enumitem” che mi sta creando così tanti problemi?

          • #48747
            Antonio Ledda
            Partecipante
              Up
              0
              Down
              ::

              […] Non posso ricominciare la numerazione senza usare il package “enumitem” che mi sta creando così tanti problemi?

              Si può: http://www.guit.sssup.it/phpbb/viewtopic.php?t=4117&highlight=beamer+elenco.

              Ciao
              Antonio

            • #48748
              Up
              0
              Down
              ::


              Posto la soluzione definitiva al problema che ho adottato:

              `
              \documentclass{beamer}

              \newcounter{ResumeEnumerate0}
              \newcounter{ResumeEnumerate1}

              \begin{document}

              \begin{frame}
              \begin{enumerate}
              \item primo;
              \pause
              \item secondo;
              \end{enumerate}
              \setcounter{ResumeEnumerate0}{\numexpr\value{enumi}}
              \end{frame}

              \begin{frame}
              \begin{enumerate}\setcounter{enumi}{\value{ResumeEnumerate0}}
              \item terzo;
              \begin{enumerate}[a)]
              \pause
              \item terzo.a
              \pause
              \item terzo.b
              \end{enumerate}
              \pause
              \item quarto;
              \end{enumerate}
              \setcounter{ResumeEnumerate1}{\value{enumi}}
              \end{frame}

              \begin{frame}
              \begin{enumerate}\setcounter{enumi}{\value{ResumeEnumerate1}}
              \item quinto;
              \pause
              \item sesto.
              \end{enumerate}
              \end{frame}

              \end{document}

              `

              Come vedete ho dovuto utilizzare due contatori, ResumeEnumerate0 e ResumeEnumerate1. Questo perchè, usando lo stesso contatore, se nel secondo frame vengono inseriti comandi \pause i numeri degli elenchi numerati partono dal valore di enumi alla fine del frame in quanto il contatore ResumeEnumerate ha già assunto quel valore. Per evitare ciò è necessario usare due (e non più di due anche in caso di N frame) contatori.
              Ovviamente se avete una soluzione ancora più elegante fatemela sapere… 😀

          Visualizzazione 7 filoni di risposte
          • Devi essere connesso per rispondere a questo topic.

          Go to top