liste numerate nidificate

  • Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 18 anni, 5 mesi fa da cpl.
  • Creatore
    Topic
  • #23416
    cpl
      Up
      0
      Down
      ::


      Buogiorno a tutti.
      Ho il seguente codice:
      `
      \documentclass[a4paper,11pt,titlepage]{scrreprt}
      \usepackage[italian]{babel}
      \usepackage[ansinew]{inputenc}
      \usepackage{paralist}
      %\usepackage{enumerate}

      \renewcommand{\theenumi}{\arabic{enumi}}
      \renewcommand{\theenumii}{\alph{enumii}}
      \renewcommand{\theenumiii}{\arabic{enumiii}}

      \begin{document}

      \begin{enumerate}
      \item punto 1
      \item punto 2
      \begin{enumerate}
      \item dovrebbe essere 2.a
      \item dovrebbe essere 2.b
      \begin{enumerate}
      \item dovrebbe essere 2.b.1
      \item dovrebbe essere 2.b.2
      \end{enumerate}
      \end{enumerate}
      \item punto 3
      \end{enumerate}

      \end{document}
      `

      Vorrei ottenere una lista annidata dove il livello più interno venga numerato riportando i numeri (o le lettere) dei livelli più esterni (es: 1, 2, 2.a, 2.b, 2.b.1, 2.b.2, ecc.).
      Nel caso specifico desidero che il secondo livello venga identificato con una lettera miniscula.
      Purtroppo però non riesco, quello che ottengo è

      1. punto 1
      2. punto 2
      a) dovrebbe essere 2.a
      b) dovrebbe essere 2.b
      1. dovrebbe essere 2.b.1
      2. dovrebbe essere 2.b.2
      3. punto 3

      Dove sbaglio?

      ciao a tutti.

    Visualizzazione 1 filone di risposte
    • Autore
      Risposte
      • #23417
        Up
        0
        Down
        ::

        Buogiorno a tutti.
        Ho il seguente codice:
        `
        \documentclass[a4paper,11pt,titlepage]{scrreprt}
        \usepackage[italian]{babel}
        \usepackage[ansinew]{inputenc}
        \usepackage{paralist}
        %\usepackage{enumerate}

        \renewcommand{\theenumi}{\arabic{enumi}}
        \renewcommand{\theenumii}{\alph{enumii}}
        \renewcommand{\theenumiii}{\arabic{enumiii}}

        \begin{document}

        \begin{enumerate}
        \item punto 1
        \item punto 2
        \begin{enumerate}
        \item dovrebbe essere 2.a
        \item dovrebbe essere 2.b
        \begin{enumerate}
        \item dovrebbe essere 2.b.1
        \item dovrebbe essere 2.b.2
        \end{enumerate}
        \end{enumerate}
        \item punto 3
        \end{enumerate}

        \end{document}
        `

        Vorrei ottenere una lista annidata dove il livello più interno venga numerato riportando i numeri (o le lettere) dei livelli più esterni (es: 1, 2, 2.a, 2.b, 2.b.1, 2.b.2, ecc.).
        Nel caso specifico desidero che il secondo livello venga identificato con una lettera miniscula.
        Purtroppo però non riesco, quello che ottengo è

        1. punto 1
        2. punto 2
        a) dovrebbe essere 2.a
        b) dovrebbe essere 2.b
        1. dovrebbe essere 2.b.1
        2. dovrebbe essere 2.b.2
        3. punto 3

        Dove sbaglio?

        ciao a tutti.

        Eh, la questione non è semplice: occorre conoscere \labelenumi e compagnia:
        `\newenvironment{enumerate*}
        {% Cambiamo la rappresentazione dei contatori
        \renewcommand\labelenumi{\arabic{enumi}}%
        \renewcommand\labelenumii{\labelenumi.\alph{enumii}}%
        \renewcommand\labelenumiii{\labelenumii.\arabic{enumiii}}%
        \begin{enumerate}}
        {\end{enumerate}}

        \begin{enumerate*}
        \item punto 1
        \item punto 2
        \begin{enumerate*}
        \item dovrebbe essere 2.a
        \item dovrebbe essere 2.b
        \begin{enumerate*}
        \item dovrebbe essere 2.b.1
        \item dovrebbe essere 2.b.2
        \end{enumerate*}
        \end{enumerate*}
        \item punto 3
        \end{enumerate*}`
        Se vuoi però che funzioni anche con \label e \ref, occorre studiare \p@enumi e compagnia.

        Ciao
        Enrico

      • #23418
        cpl
          Up
          0
          Down
          ::


          Grazie. Il codice funziona.

          Ero convino bastasse settare qualche opzione del pacchetto paralist ma non è così. Mi sembrava in effetti un problema abbastanza comune da non richiedere la creazione di un ambiente apposito.

          ciao. Grazie.

      Visualizzazione 1 filone di risposte
      • Devi essere connesso per rispondere a questo topic.

      Go to top