Riferimenti dinamici a numeri dei teoremi

  • Creatore
    Topic
  • #106909
    Up
    0
    Down
    ::


    Ho usato il comando `\newtheorem{thm}{Teorema}` per definire thm, dopodichè ho scritto un po di teoremi racchiudendoli tra i comandi `\begin{thm}` e `\end{thm}`.
    Vorrei sapere se esiste un modo per mettere un “riferimento dinamico” a questi teoremi, ovvero scrivere ad esempio in una qualunque parte del documento “si veda il teorema 5.2”, facendo però in modo che se il teorema 5.2 viene spostato e di conseguenza cambia il suo numero identificativo venga aggiornata automaticamente anche la citazione.

Visualizzazione 11 filoni di risposte
  • Autore
    Risposte
    • #106910
      Up
      0
      Down
      ::


      Niente di speciale: si usano [tt]\label[/tt] e [tt]\ref[/tt] come per tutto il resto. Ecco un esempio “minimalista”:
      `
      \documentclass[a4paper]{amsart}
      \usepackage[T1]{fontenc} % non strettamente necessario, ma raccomandato
      \usepackage[italian]{babel}

      \newtheorem{thm}{Teorema}[section] % teoremi numerati per sezioni

      \begin{document}

      \section{Matematica molto elementare}
      \label{S:MoltoElementare}

      Ecco un risultato che \`{e} carino dimostrare a partire dagli assiomi di Peano:

      \begin{thm}\label{thm:1+1=2}
      \[1+1=2\mbox{.}\]
      \end{thm}
      \begin{proof}
      Esercizio.
      \end{proof}

      \section{Matematica ancora abbastanza elementare}
      \label{S:AncoraElementare}

      Costruiamo ulteriori risultati a partire da quelli del
      paragrafo~\ref{S:MoltoElementare}.

      \begin{thm}\label{thm:2+2=4}
      \[2+2=4\mbox{.}\]
      \end{thm}
      \begin{proof}
      Esercizio (sfruttare il teorema~\ref{thm:1+1=2}).
      \end{proof}

      E cos\`{\i} via\ldots

      \end{document}
      `

      Ciao.


      Gustavo

    • #106911
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Il “giochetto” che ti ha esemplificato Gustavo è descritto in qualsiasi guida: ti suggerisco di scaricarti la guida per neofiti L’Arte di scrivere con LaTeX dalla sezione Documentazione di questo forum.

      • #106912
        Up
        0
        Down
        ::


        Grazie mille! Si tratta esattamente di quello che cercavo. 🙂

        Ho consultato anche la guida, da lì ho colto il suggerimento di etichettare gli oggetti usando la convenzione tipooggetto:etichettaoggetto, ad esempio thm:teoremapitagora.

        Se invece oltre ai teoremi volessi usare un’ambiente per le definizioni c’è qualcosa di analogo?

      • #106913
        Up
        0
        Down
        ::

        alessandropagin” post=107035(…) Se invece oltre ai teoremi volessi usare un’ambiente per le definizioni c’è qualcosa di analogo?

        Prova a leggere la documentazione dei pacchetti amsthm, o theorem, o ntheorem (quello dei tre che usi)… 🙂

        Ciao.


        Gustavo

      • #106914
        Up
        0
        Down
        ::


        Ho definito `\newtheorem{definition}{Definizione}[section]` e `\newtheorem{thm}{Teorema}[section]`.
        Vorrei però che definizioni e teoremi venissero numerati omogeneamente, invece attualmente esistono ad esempio sia la definizione 1.1 che il teorema 1.1.
        C’è un modo per far si che il primo dei due venga numerato con 1.1 e il secondo con 1.2?

      • #106915
        lorenzo.pantieri
        Partecipante
          Up
          0
          Down
          ::

          alessandropagin” post=107037Ho definito `\newtheorem{definition}{Definizione}[section]` e `\newtheorem{thm}{Teorema}[section]`.
          Vorrei però che definizioni e teoremi venissero numerati omogeneamente, invece attualmente esistono ad esempio sia la definizione 1.1 che il teorema 1.1.
          C’è un modo per far si che il primo dei due venga numerato con 1.1 e il secondo con 1.2?

          Cerca “Il capo ha ragione” nell’Arte.

        • #106916
          Up
          0
          Down
          ::


          Ho letto la parte de “Il capo ha sempre ragione” ed ho modificato la definizione di thm in questo modo:`\newtheorem{definition}{Definizione}[section]
          \newtheorem{thm}[definition]{Teorema}[section]`.
          Tuttavia adesso ottengo l’errore `Missing \begin{document}`.
          Dove sto sbagliando?

        • #106917
          Up
          0
          Down
          ::


          Non

          alessandropagin” post=107048(…)`\newtheorem{definition}{Definizione}[section]
          \newtheorem{thm}[definition]{Teorema}[section]`(…)

          bensì

          `
          \newtheorem{definition}{Definizione}[section]
          \newtheorem{thm}[definition]{Teorema}
          `

          Inoltre, io cambierei anche lo stile:

          `
          \theoremstyle{definition}
          \newtheorem{definition}{Definizione}[section]

          \thoeremstyle{plain}
          \newtheorem{thm}[definition]{Teorema}
          `

          Assumo ormai che tu stia usando il pacchetto amsthm.

          Ciao.


          Gustavo

        • #106918
          Up
          0
          Down
          ::


          Ora funziona tutto, grazie mille a entrambi! 😉

        • #106919
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Si, ora funziona tutto, ma tu hai dimostrato di non avere letto l’Arte, che dici di avere scaricato. Il paragrafo 5.10 nella pagina 86 contiene tutte le risposte alle tue domande. Evidentemente non sei arrivato a leggere fino a pagina 86.
            Non hai nemmeno scoperto che esistono sia l’indice generale, sia l’indice analitico. Nelle pagine VI e VII, dove si sviluppa l’indice generale molto dettagliato relativo al capitolo sulla matematica, viene usata la parola “Enunciati” che in matematica raccogli ogni affermazione, dai teoremi, ai lemmi, ai postulati, ai corollari, alle definizioni, eccetera.
            Scusa se te lo dico, ma devi davvero leggere attentamente la guida, non ti basta averla scaricata; devi leggerla con attenzione perché lì c’è quasi tutto, comprese queste cose di base.
            Ripeto, non te la prendere se ti faccio questo appunto; ci siamo passati tutti attraverso le prime difficoltà quindi sappiamo bene com’è la questione. Ma ora finalmente da diversi anni ci sono le guide in italiano e sono fatte molto bene; la guida che ti ho suggerito è la migliore che io abbia mai visto per i neofiti; ce ne sarebbe un’altra; ma nella prefazione si dice chiaramante che prima di usarla bisogna aver studiato e imparato bene quello che c’è scritto nell’Arte.

          • #106920
            Up
            0
            Down
            ::


            Il paragrafo 5.10 l’ho letto, altrimenti non avrei creato “definition”.
            Avevo semplicemente scritto di numerare thm per sezioni, nonostante avessi già scritto di numerare thm come definition (che è numerato per sezioni).

            Certo non ho letto tutta l’Arte, per ora l’ho utilizzata “per consultazione” diciamo.

          • #106921
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              E allora se hai letto quella sezione, come hai fatto a scrivere questo tuo codice?`\newtheorem{definition}{Definizione}[section]
              \newtheorem{thm}[definition]{Teorema}[section]
              `
              in quella sezione c’è scritto che le due sintassi possibili sono:`
              \newtheorem{⟨nome dell’enunciato⟩}{⟨titolo⟩}[⟨sezione⟩]
              \newtheorem{⟨nome dell’enunciato⟩}[⟨numerato come⟩]{⟨titolo⟩}`
              dove gli argomenti racchiusi fra graffe o fra quadre sono indicati con nomi espliciti; nessuna delle due possibili sintassi prevede fue argomenti racchiusi fra quadre.
              Quando ti raccomando di leggere con attenzione capendo quel che leggi, intendo raccomandarti, appunto, di non fare questi errori di distrazione grave.
              Ogni linguaggio di programmazione, e LaTeX è un linguaggio di programmazione, ha i suoi limiti, nel senso che non auto corregge gli errori di chi scrive il programma ed esegue esattamente quello che il programmatore gli dice di fare; e se questo “ordine di fare” è sbagliato, il programma sbaglia.

              Scrivendo testo normale si capisce lo stesso se si scrive “squola” invece di “scuola”, o “Km” al posto di “km” (in entrambi i casi il primo esempio è ovviamante errato, anche se “squola” è rarissimo, mentre “Km” è frequentissimo); ma il linguaggio di programmazione vuole solo le sue parole ortograficamente corrette e usate con la sintassi specifica di quel linguaggio.
              Ecco perché ci vuole maggiore attenzione.

              .

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

          Go to top