Uso del pacchetto amsthm

Versione 2.07, 02/06/2000 American Mathematical Society

Traduzione di Onofrio de Bari (ondeb@linux.it)

1 Introduzione

Il pacchetto amsthm offre una versione migliorata del comando \newtheorem di L^{A}TEX per definire ambienti simili a teoremi. La versione del comando \newtheorem nel pacchetto amsthm riconosce una specifico stile \theoremstyle (come avviene nel pacchetto theorem di Mittelbach) ed è provvista di una forma * per definire ambienti non numerati. Il pacchetto amsthm definisce altresì un ambiente proof che aggiunge automaticamente un simbolo Q.E.D. in coda. Le classi di documento AMS comprendono il pacchetto amsthm, quindi ogni situazione qui descritta è ad esse applicabile; alcuni esempi sono forniti nel file thmtest.tex.

2 Il comando \newtheorem

In articoli e libri relativi a ricerche matematiche, teoremi e dimostrazioni sono tra gli elementi più comuni, ma gli autori ne usano anche molti altri che ricadono nella stessa generica classe: lemmi, proposizioni, assiomi, corollari, congetture, definizioni, note, casi, passi e così via. Poiché questi elementi formano una porzione del flusso di testo dai contorni ben delimitati, sono naturalmente trattati in L^{A}TEX come ambienti. Le classi di documento L^{A}TEX di norma non forniscono ambienti predefiniti per gli elementi di tipo teorema perché (a) ciò renderebbe difficile agli autori esercitare il necessario controllo sulla numerazione automatica e (b) la varietà di tali elementi è così ampia da rendere impossibile per una classe di documento fornire ogni elemento che sarebbe richiesto. Esiste invece un comando \newtheorem, simile nell’effetto a \newenvironment, che facilita gli autori nell’impostare gli elementi richiesti per un particolare documento.

Il comando \newtheorem ha due argomenti obbligatori; il primo è il nome dell’ambiente che l’autore desidera usare per questo elemento; il secondo è il testo che compare. Per esempio

\newtheorem{lem}{Lemma}

significa che le istanze nel documento consistenti in

\begin{lem} Testo testo ... \end{lem}

daranno luogo a

Lemma 1. Testo testo … in cui l’intestazione è costituita dal testo specificato “Lemma” e da punteggiatura e numerazione automaticamente generati.

Se si usa \newtheorem* al posto di \newtheorem nell’esempio sopra, non sarà generata la numerazione automatica per nessuno dei lemmi nel documento . Questa forma del comando può essere utile se si ha un solo lemma e non si vuole che sia numerato; più spesso, comunque, è usata per produrre una variante di uno dei comuni tipi di teoremi che sia dotata di un nome; se ad esempio si avesse un lemma il cui nome dovrebbe essere “Lemma di Klein” invece di “Lemma” + il numero, allora la dichiarazione

\newtheorem*{KL}{Lemma di Klein}

permetterebbe di scrivere

\begin{KL} Testo testo ... \end{KL}

e di ottenere l’output richiesto.

3 Modifiche alla numerazione

In aggiunta ai due argomenti obbligatori, \newtheorem ha due argomenti opzionali che si escludono vicendevolmente; questi riguardano la sequenza e la gerarchia della numerazione.

Come impostazione predefinita, ogni genere di ambiente di tipo teorema è numerato in maniera indipendente e pertanto, se si hanno tre lemmi e due teoremi frapposti, essi risulteranno numerati nel seguente modo: Lemma 1, Lemma 2, Teorema 1, Lemma 3, Teorema 2. Se si desidera che i lemmi e i teoremi condividano la stessa sequenza di numerazione—Lemma 1, Lemma 2, Teorema 3, Lemma 4, Teorema 5—si deve allora indicare la relazione desiderata nel modo seguente:

\newtheorem{thm}{Teorema}
\newtheorem{lem}[thm]{Lemma}

L’argomento opzionale [thm] nella seconda dichiarazione fa in modo che l’ambiente lem condivida la sequenza di numerazione di thm invece di essere dotato di una sua sequenza indipendente.

Al fine di avere un ambiente teorema numerato in maniera subordinata a un’unità di sezionamento—ad esempio per ottenere delle proposizioni numerate come Proposizione 2.1, Proposizione 2.2 e così via nel Paragrafo 2—si inserirà il nome dell’unità genitrice in parentesi quadre alla fine:

\newtheorem{prop}{Proposizione}[section]

Con l’argomento opzionale [section], il contatore prop sarà riportato a zero non appena verrà incrementato il contatore genitore section.

4 Cambiare gli stili in ambienti di tipo teorema

4.1 Il comando \theoremstyle

Nel pacchetto amsthm è disponibile il concetto di stile di teorema corrente, che determina cosa sarà restituito da un dato comando \newtheorem. I tre stili di teorema forniti—plain, definition e remark—subiscono un differente trattamento tipografico che ad essi fornisce un’enfasi visiva associato alla rispettiva importanza. I dettagli di tale trattamento tipografico possono variare in base alla classe di documento, ma in generale lo stile plain produce testo in corsivo, mentre gli altri due forniscono testo in tondo.

Per creare nuovi ambienti di tipo teorema in differenti stili, si dividano i comandi \newtheorem in gruppi e si premetta ad ogni gruppo l’appropriato \theoremstyle; se non si dà alcun comando \theoremstyle , lo stile usato sarà plain. Alcuni esempi:

\theoremstyle{plain}% default
\newtheorem{thm}{Teorema}[section]
\newtheorem{lem}[thm]{Lemma}
\newtheorem{prop}[thm]{Proposizione}
\newtheorem*{cor}{Corollario}
\newtheorem*{KL}{Lemma di Klein}
\theoremstyle{definition}
\newtheorem{defn}{Definizione}[section]
\newtheorem{conj}{Congettura}[section]
\newtheorem{exmp}{Esempio}[section]
\theoremstyle{remark}
\newtheorem*{comm}{Commento}
\newtheorem*{note}{Nota}
\newtheorem{caso}{Caso}

4.2 Spostamento dei numeri

Una frequente variazione di stile per i titoli di teoremi consiste nell’avere il numero del teorema sulla sinistra, all’inizio del titolo, invece che sulla destra. Poiché tale variazione è di solito eseguita in maniera generalizzata non badando ai singoli cambi con \theoremstyle, lo spostamento dei numeri è effettuato posizionando un comando\swapnumbers all’inizio della lista delle dichiarazioni \newtheorem che devono essere modificate. Esempio:

\swapnumbers
\theoremstyle{plain}
\newtheorem{thm}{Teorema}
\theoremstyle{remark}
\newtheorem{rem}{Nota}

Quando il pacchetto amsthm è usato con una delle generiche classi di documento L^{A}TEX come article o book, l’effetto delle dichiarazioni sopra riportate consisterà nell’avere i titoli dei teoremi e delle note stampati nella forma 1.4 Teorema, 9.1 Nota; con altre classi di documento il risultato potrebbe essere diverso.

4.3 Ulteriori possibilità di personalizzazione

Altre possibilità di personalizzazione sono fornite dal pacchetto amsthm nella forma del comando \newtheoremstyle e un metodo per usare le opzioni del pacchetto per caricare definizioni personalizzate dello stile dei teoremi; poiché queste caratteristiche sono in certo qual modo oltre i bisogni dell’utente medio, la discussione dei dettagli è rimandata al file di esempio thmtest.tex e al commento in amsclass.dtx.

5 Dimostrazioni

Un ambiente proof predefinito che è fornito dal pacchetto amsthm produce l’intestazione “Proof” con interpunzione e spaziatura appropriate. L’ambiente proof è principalmente inteso per dimostrazioni brevi, che non occupino più di una pagina o due; dimostrazioni più consistenti sono in generale meglio realizzate separatamente come

\section o \subsection nel documento.

Un argomento opzionale dell’ambiente proof permette di utilizzare un nome differente al posto di “Proof”; se, ad esempio, si vuole che l’intestazione della dimostrazione sia “Dimostrazione del teorema principale”, si scriverà

\begin{proof}[Dimostrazione del teorema principale]

Un simbolo “QED”, , viene automaticamente aggiunto alla fine dell’ambiente proof; per sostiturlo con un diverso simbolo di fine dimostrazione, utilizzare \renewcommand per ridefinire il comando \qedsymbol. Per una lunga dimostrazione realizzata come sottoparagrafo o paragrafo invece che con l’ambiente proof, si può ottenere il simbolo e l’usuale spaziatura che lo precede servendosi di \qed.

Il posizionamento del simbolo QED può essere problematico se l’ultima parte di un ambiente proof è un’equazione in modalità display o un ambiente lista o qualcosa di questo genere; in questo caso basta posizionare un comando \qedhere nel punto in cui dovrà comparire il simbolo QED.

\begin{proof}
...
\begin{equation}
G(t)=L\gamma!\,t^{-\gamma}+t^{-\delta}\eta(t) \qedhere
\end{equation}
\end{proof}

Se il pacchetto amsthm viene utilizzato con una classe di documento non AMS e con il pacchetto amsmath, il pacchetto amsthm deve essere caricato dopo amsmath e non prima.^{1} Se \qedhere provoca un messaggio d’errore in un’equazione, si provi a usare

al suo posto \mbox{\qedhere}.

Nota alla traduzione italiana

Una copia di questo documento e altre traduzioni in italiano di manuali su L^{A}TEX sono reperibili presso

   • http://guild.prato.linux.it
   • ftp://lorien.prato.linux.it/pub/guild
   • ftp://ftp.unina.it/pub/TeX/info/italian

e su ogni sito CTAN — per esempio ftp://ftp.tex.ac.uk/tex-archive — nella

directory /info/italian.

1Il posizionamento sul margine destro eseguito da \qedhere nelle equazioni in modalità display funziona solo con la versione 2 del pacchetto amsmath e non con le precedenti.