beamer: indentazione elenchi puntati e numerati

  • Questo topic ha 11 risposte, 5 partecipanti ed è stato aggiornato l'ultima volta 16 anni fa da OldClaudio.
  • Creatore
    Topic
  • #48812
    Up
    0
    Down
    ::


    Ciao a tutti, 😀
    ho un problema con l’indentazione degli elenchi puntati e numerati. Nel caso vi sia un elenco numerato annidato ad un altro e un item di questo elenco debba essere inserito in un altro frame (vedi esempio sotto), l’indentazione di questo item viene persa.
    `
    \documentclass{beamer}

    \begin{document}

    \begin{frame}
    \begin{enumerate}
    \item primo
    \begin{enumerate}[a)]
    \pause
    \item primo.a
    \pause
    \item primo.b
    \end{enumerate}
    \end{enumerate}
    \end{frame}

    \begin{frame}
    \begin{enumerate}[c)]
    \item primo.c
    \end{enumerate}
    \end{frame}

    \end{document}
    `
    Come posso mantenere l’indentazione uguale a quella dell’elenco annidato del frame precedente?

Visualizzazione 10 filoni di risposte
  • Autore
    Risposte
    • #48813
      Up
      0
      Down
      ::


      Nessuno ha qualche idea? 🙁

    • #48814
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        La mia idea è che anche se una elencazione può essere continuata in slide/frame successive, non è una buona idea, specialmente se si vuole continuare una elencazione di secondo livello..
        Ogni slide contiene poco testo, e deve essere così perché una presentazione NON è un libro, un rapporto, un articolo, ma l’oratore sta accompagnando con una proiezione quello che sta dicendo.
        Con questo ben chiaro in mente non ha senso prolungare una enumerazione qualsiasi, benché sia “beamer-ariamente” possibile, oltre un singolo frame, massimo due, sicuramente non elencazioni annidate. L’ascoltatore non riuscirebbe a tenere a mente a che livello di annidamento ci si trova e non capirebbe completamente il messaggio.

        Quindi, secondo me, è meglio ripensare al piano della presentazione in modo da non prolungare le elencazioni oltre un solo frame. Se gli \item dell’elencazione sono brevi ce ne possono stare anche 4 o cinque in un frame; se li si espone incrementalmente con l’argomento fra parentesi acute del comando \item (vedi documentazione di beamer) quattro o cinque voci dell’elenco possono starci in un frame ma possono anche essere troppe per l’ascoltatore.

        Quindi il io consiglio è quello di non arrampicarsi su per i vetri a crcare di prolungare le elencazioni annidate su più frame, ma di usare solo elencazioni non annidate, di non superare un solo frame, di esporre le voci in modo incrementale, se i concetti da esporre lo richiedono, ma sempre avendo l’ascoltare in mente.

      • #48815
        Up
        0
        Down
        ::


        Si hai perfettamente ragione.
        Però io ho la necessità di creare due versioni della mia presentazione. Una adatta proprio ad essere presentata e una invece più corposa su cui è possibile studarci sopra (purtroppo queste sono le direttive del mio professore per cui non posso farci molto). Ed è proprio nella versione più corposa che ho di questi problemi.
        Nella versione più compatta dovrò rivedere il piano e scrivere solo i concetti chiave della versione estesa.
        Quindi per me il problema rimane. Non c’è alcun modo per aumentare l’indentazione?

      • #48816
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Visto che il codice di beamer è stato rifatto per le liste, può darsi che non funzioni: prova a incrementare di una unità il contatore \@enumdepth prima di entrare nella enumerazione del secondo frame. Devi usare comandi primitivi perché il contatore è definto con la sintassi di TeX, non con quella di LaTeX:
          `
          \makeatletter
          \advance\@enumdepth \@ne
          \makeatother
          \begin{enumerate}[…]
          `

          Da ex UNIprof. dico che esistono troppi colleghi che non capiscono niente di tipografia con beamer e nemmeno con powerpoint; certo esistono anche per LaTeX degli altri pacchetti per le slide che non troncano la diapositiva in modo automatico, quindi il testo può proseguire tranquillamente “fuori schermo”. Nessuno è perfetto, naturalmente, ma imporre richieste impossibili agli allievi è una cosa che personalmente non sopporto.

        • #48817
          Up
          0
          Down
          ::

          `
          \makeatletter
          \advance\@enumdepth \@ne
          \makeatother
          \begin{enumerate}[…]
          `

          Purtroppo non funziona, tra l’altro non capisco molto l’errore:

          `
          ! You can't use `\spacefactor' after \advance.
          \@ ->\spacefactor
          \@m
          l.61 \end{frame}
          `

          Cos’è \spacefactor?

        • #48818
          Up
          0
          Down
          ::

          Si hai perfettamente ragione.
          Però io ho la necessità di creare due versioni della mia presentazione. Una adatta proprio ad essere presentata e una invece più corposa su cui è possibile studarci sopra (purtroppo queste sono le direttive del mio professore per cui non posso farci molto). Ed è proprio nella versione più corposa che ho di questi problemi.
          Nella versione più compatta dovrò rivedere il piano e scrivere solo i concetti chiave della versione estesa.
          Quindi per me il problema rimane. Non c’è alcun modo per aumentare l’indentazione?

          Ti suggerisco un approccio diverso. Beamer ti permette di creare una versione article della tua presentazione. Inoltre ha parecchie funzioni per inserire annotazioni e materiale secondario. Dai un’occhiata alla documentazione di beamer, sezioni 19, 21, 22.1, 22.2.
          Ho usato queste funzionalità per due corsi e mi sono trovato molto bene. L’unico suggerimento è di usare uno degli stili di beamer, senza apportare modifiche eccessive. Questo in particolare se userai la “modalità articolo”.

          Ciao
          Ivan

        • #48819
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Hai messo \makeatletter e \makeatother?

            L\errore te lo dà quando @ non ha il codice di lettera, ma ha il codice di altro segno.

            se quelle tre righe non vanno bene prima di \begin{enumerate} mettile prima del \begin[frame} che ti interessa. oppure segui il suggerimento di Ivan.

          • #48820
            franen
            Partecipante
              Up
              0
              Down
              ::


              Approfitto della discussione per fare una domanda: che comando si può usare per regolare il rientro degli elenchi?

              Francesco

            • #48821
              Up
              0
              Down
              ::

              Hai messo \makeatletter e \makeatother?

              L\errore te lo dà quando @ non ha il codice di lettera, ma ha il codice di altro segno.

              se quelle tre righe non vanno bene prima di \begin{enumerate} mettile prima del \begin[frame} che ti interessa. oppure segui il suggerimento di Ivan.

              Allora l’ho messo prima del \begin[frame}. Ora compila ma non cambia nulla: non vi è indentazione. Comunque ho capito il significato dei tag \makeatletter e \makeatletter ma non quello di:

              `\advance\@enumdepth \@ne`

              Che significa? Che dovrebbe fare esattamente?

            • #48822
              GKT
              Partecipante
                Up
                0
                Down
                ::

                Approfitto della discussione per fare una domanda: che comando si può usare per regolare il rientro degli elenchi?

                Francesco

                `\setlength{\leftmargini}{2em}
                \begin{enumerate}
                \item primo;
                \item secondo.
                \end{enumerate}`

              • #48823
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  \@enumdpth è il contatore TeX che tiene conto del livello di annidamento; \@ne serve per indicare il numero “uno”, ma in una maniera che non possa essere poi combinata con altri token successivi; senza questo trucco dovresti scrivere
                  `
                  \advance\@enumdepth 1\relax
                  `
                  per stare dalla parte della ragione… 🙂

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

              Go to top