Liste numerate

  • Creatore
    Topic
  • #26951
    Up
    0
    Down
    ::


    Ho bisogno di numerare esercizi e sto usando le liste di enumerate. Tali liste però a volte vanno interrotte da testo per poi riprendere la numerazione, Ecco quello che ho fatto: Caso1 (senza un mio contatore)

    `
    \documentclass[10pt,a4paper]{book}
    \usepackage[latin1]{inputenc}
    \usepackage{amsmath}
    \usepackage{amsfonts}
    \usepackage{amssymb}
    \usepackage{enumerate}

    \begin{document}
    \begin{enumerate}{\usecounter{mioContatore}}
    \item { mario}
    \item {andrea}
    \end{enumerate}
    Testo in mezzo
    \begin{enumerate}
    \item {flavio}
    \item {silvio}
    \end{enumerate}
    \end{document}
    `

    Caso 2 (con un mio contatore)
    `
    \documentclass[10pt,a4paper]{book}
    \usepackage[latin1]{inputenc}
    \usepackage{amsmath}
    \usepackage{amsfonts}
    \usepackage{amssymb}
    \usepackage{enumerate}

    \newcounter{mioContatore}

    \begin{document}
    \begin{enumerate}{\usecounter{mioContatore}}
    \item { mario}
    \item {andrea}
    \end{enumerate}
    Testo in mezzo
    \begin{enumerate}
    \item {flavio}
    \item {silvio}
    \end{enumerate}
    \end{document}
    `

    Il non plus ultra sarebbe poi utilizzare il contatore che riporti anche il numero di capitolo:
    Capitolo 1
    Esercizio 1.1
    Esercizio 1.2
    Esercizio 1.3

    testo in mezzo
    Esercizio 1.4
    Esercizio 1.5

    Capitolo 2
    Esercizio 2.1
    Esercizio 2.2
    Esercizio 2.3

    testo in mezzo
    Esercizio 2.4
    Esercizio 2.5

    Mi sa che ho esagerato con le domande… Comunque grazie per l’attenzione.ì che dedicate a noi che fino a pochi mesi fa pensavamo che il latex fosse solo un tessuto in plastica 😉

Visualizzazione 6 filoni di risposte
  • Autore
    Risposte
    • #26952
      Up
      0
      Down
      ::


      Io consiglierei l’uso dell’ambiente \newtheorem per questo genere di cose, l’ambiente enumerate non mi sembra adatto. Prova a guardare qui per maggiori informazioni:

      http://www.guit.sssup.it/phpbb/viewtopic.php?t=3039&highlight=newtheorem

      http://www.guit.sssup.it/phpbb/viewtopic.php?t=2215&highlight=newtheorem

      e ovviamente la sua documentazione:

      http://tug.ctan.org/tex-archive/macros/latex/contrib/ntheorem/ntheorem.pdf

      Ciao Alberto

    • #26953
      Up
      0
      Down
      ::

      Ho bisogno di numerare esercizi e sto usando le liste di enumerate. Tali liste però a volte vanno interrotte da testo per poi riprendere la numerazione, Ecco quello che ho fatto: Caso1 (senza un mio contatore)

      `
      \documentclass[10pt,a4paper]{book}
      \usepackage[latin1]{inputenc}
      \usepackage{amsmath}
      \usepackage{amsfonts}
      \usepackage{amssymb}
      \usepackage{enumerate}

      \begin{document}
      \begin{enumerate}{\usecounter{mioContatore}}
      \item { mario}
      \item {andrea}
      \end{enumerate}
      Testo in mezzo
      \begin{enumerate}
      \item {flavio}
      \item {silvio}
      \end{enumerate}
      \end{document}
      `

      Caso 2 (con un mio contatore)
      `
      \documentclass[10pt,a4paper]{book}
      \usepackage[latin1]{inputenc}
      \usepackage{amsmath}
      \usepackage{amsfonts}
      \usepackage{amssymb}
      \usepackage{enumerate}

      \newcounter{mioContatore}

      \begin{document}
      \begin{enumerate}{\usecounter{mioContatore}}
      \item { mario}
      \item {andrea}
      \end{enumerate}
      Testo in mezzo
      \begin{enumerate}
      \item {flavio}
      \item {silvio}
      \end{enumerate}
      \end{document}
      `

      Il non plus ultra sarebbe poi utilizzare il contatore che riporti anche il numero di capitolo:
      Capitolo 1
      Esercizio 1.1
      Esercizio 1.2
      Esercizio 1.3

      testo in mezzo
      Esercizio 1.4
      Esercizio 1.5

      Capitolo 2
      Esercizio 2.1
      Esercizio 2.2
      Esercizio 2.3

      testo in mezzo
      Esercizio 2.4
      Esercizio 2.5

      Mi sa che ho esagerato con le domande… Comunque grazie per l’attenzione.ì che dedicate a noi che fino a pochi mesi fa pensavamo che il latex fosse solo un tessuto in plastica 😉

      Puoi usare il pacchetto enumitem se non hai altri ambienti enumerate in mezzo a quelli che ti interessano:
      `\begin{enumerate}[leftmargin=*,label=Esercizio \thechapter.\arabic*]
      \item
      \end{enumerate}

      \begin{enumerate}[leftmargin=*,label=Esercizio \thechapter.\arabic*,resume]
      \item

      \end{enumerate}`
      Naturalmente sarà meglio definirsi un nuovo ambiente:
      `\newlist{esercizi}{enumerate}{1}
      \setlist[esercizi]{leftmargin=*,label=Esercizio \thesection.\arabic*}`
      e l’input di prima diventerebbe
      `\begin{esercizi}
      \item

      \end{esercizi}

      \begin{esercizi}[resume]
      \item

      \end{esercizi}`
      Tuttavia il modo che ritengo migliore è di definire un ambiente di tipo “teorema” per questo scopo: se gli esercizi non sono brevi, una riga al massimo, una lista numerata non è adatta. Carica il pacchetto amsthm e usa
      `\theoremstyle{definition}
      \newtheorem{esercizio}{Esercizio}[chapter]`
      Dopo questo, ogni esercizio dovrà essere contenuto in un ambiente “esercizio”.

      Ciao
      Enrico

    • #26954
      Up
      0
      Down
      ::


      ci ho già provato e con buoni risultati ma questo articolo mi aveva intrigato parecchio
      http://www.nntp.it/comp-software-tex/262331-come-evitare-che-latex-vada-capo-automatico.html

    • #26955
      Up
      0
      Down
      ::

      ci ho già provato e con buoni risultati ma questo articolo mi aveva intrigato parecchio
      http://www.nntp.it/comp-software-tex/262331-come-evitare-che-latex-vada-capo-automatico.html

      Essendo l’autore dell’affascinante messaggio :wink:, posso dirti che ovviamente la faccenda dipende da che tipo di esercizi devi scrivere, come ho osservato nel messaggio precedente. Cerca di essere più preciso e vediamo che si può fare.

      “Intrigare” in quel senso è bruttino, sai? 🙂

      Ciao
      Enrico

    • #26956
      Up
      0
      Down
      ::


      Grazie innanzi tutto delle risposte. Faccio delle prove con quello che hai scritto. Il problema in realtà è semplice dato che la soluzione da te proposta in quell’articolo è già ottima: ho solo bisogno che la numerazione degli esercizi sia continua e non risenta delle interruzioni del testo. In pratica
      `
      \begin{esercizi}
      … lista numerata degli esercizi con le soluzioni
      \end{esercizi}

      altro testo
      \begin{esercizi}
      … lista numerata degli esercizi con le soluzioni dove però la numerazione prosegue dalla precedente
      \end{esercizi}
      `

    • #26957
      Up
      0
      Down
      ::

      Grazie innanzi tutto delle risposte. Faccio delle prove con quello che hai scritto. Il problema in realtà è semplice dato che la soluzione da te proposta in quell’articolo è già ottima: ho solo bisogno che la numerazione degli esercizi sia continua e non risenta delle interruzioni del testo. In pratica
      `
      \begin{esercizi}
      … lista numerata degli esercizi con le soluzioni
      \end{esercizi}

      altro testo
      \begin{esercizi}
      … lista numerata degli esercizi con le soluzioni dove però la numerazione prosegue dalla precedente
      \end{esercizi}
      `

      C’è bisogno di qualcosa in più, rispetto alla soluzione indicata.
      `\newcommand{\esercizio}[2]{\item $#1$\hfill\soluzionees{#2}}

      \newcommand{\soluzionees}[1]{%
      \def\guardasoluzione{#1}%
      \ifx\guardasoluzione\empty\else
      $\left[\,\displaystyle#1\,\right]$\fi}

      \newcommand{\soluzionepb}[1]{%
      \expandafter\def\expandafter\guardasoluzione\expandafter{#1}%
      \ifx\guardasoluzione\empty\else
      [\thinspace#1\thinspace]\fi}

      \newcounter{esercizi}[section]
      \newenvironment{esercizi}
      {\subsection*{Esercizi}
      \list{(\thechapter.\arabic{esercizi})}{\usecounter{esercizi}%
      \leftmargin 0pt \settowidth{\labelwidth}{1.5em}%
      \labelsep 0pt \itemindent\labelwidth
      \renewcommand{\makelabel}[1]{##1\hfil}}%
      \setcounter{esercizi}{\keepesercizi}}
      {\xdef\keepesercizi{\theesercizi}\endlist}

      \newenvironment{problema}[1]
      {\def\lasoluzione{#1}\item}
      {\hspace*{1em}\hfill\soluzionepb{\lasoluzione}}

      \def\keepesercizi{0}
      \let\savedchapter\chapter
      \def\chapter{\gdef\keepesercizi{0}\savedchapter}`
      Ho aggiunto il codice per mantenere la numerazione, il contatore in questo modo viene impostato ogni volta al valore mantenuto in precedenza nella macro \keepesercizi. Tuttavia questo non funzionerebbe a un cambio di capitolo, perciò aggiungo al codice di \chapter l’impostazione a 0 dell’espansione di \keepesercizi.

      Come detto nel NG, si può fare di meglio, avendone il tempo e la voglia.

      Ciao
      Enrico

    • #26958
      Up
      0
      Down
      ::


      al cambio di capitolo la numerazione riparte quindi il problema dovrebbe essere risolto.
      Grazie infinite

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

Go to top