> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/it/comandi/01-commands.md).

# Comandi

## Introduzione

Questo articolo offre una prima introduzione a *comandi*, che sono una componente fondamentale delle capacità di impaginazione di LaTeX. La maggior parte dei comandi LaTeX sono semplici parole precedute da un carattere speciale, di solito `\`, il carattere barra rovesciata. Diamo un'occhiata ad alcuni esempi:

```latex
\documentclass{article}
\begin{document}
In un documento ci sono diversi tipi di \textbf{comandi}
che definiscono il modo in cui gli elementi vengono visualizzati. Questo
i comandi possono inserire elementi speciali: $\alpha \beta \Gamma$
\end{document}
```

[Apri questo esempio in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+commands+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0AIn+a+document+there+are+different+types+of+%5Ctextbf%7Bcommands%7D+%0Athat+define+the+way+the+elements+are+displayed.+This+%0Acommands+may+insert+special+elements%3A+%24%5Calpha+%5Cbeta+%5CGamma%24%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Formattazione di base del testo con LaTeX](/files/b3a16add93fe17be146c3be95fd96eaddecec41f)

Nell'esempio precedente, ci sono diversi tipi di comandi; per esempio, `\textbf` renderà in grassetto il testo passato come parametro al comando. In modalità matematica, esistono comandi speciali, come `\alpha`, `\beta` e `\Gamma` per visualizzare i caratteri greci.

## Comandi

Ecco un esempio di codice LaTeX con comandi per creare un elenco puntato:

```latex
\documentclass{article}
\begin{document}
Un esempio di elenco:
\begin{itemize}
  \item[\S] Primo elemento
  \item Secondo elemento
\end{itemize}
\end{document}
```

[Apri questo esempio in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+itemized+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0AA+list+example%3A%0A%5Cbegin%7Bitemize%7D%0A++%5Citem%5B%5CS%5D+First+item%0A++%5Citem+Second+item%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Un elenco di base impaginato in LaTeX](/files/245e461f8f1364c6460f1735d8343c6409e00e58)

Il comando `\begin{itemize}` avvia un `itemize` *richiede*—vedi l' [articolo sugli ambienti](/latex/it/comandi/02-environments.md) per maggiori dettagli. Sotto la dichiarazione dell'ambiente c'è il comando `\item` che dice a LaTeX di iniziare una nuova voce dell'elenco: per formattarla, aggiungi un segno speciale (un piccolo punto nero chiamato bullet) e rientra la voce.

Alcuni comandi richiedono uno o più *parametri*; per esempio, la `\textbf` comando (usato sopra), che prende un singolo parametro—il testo da mostrare in grassetto, scritto tra parentesi graffe in questo modo: `\textbf{rendi questo in grassetto}`.

Esistono anche *argomento opzionale* parametri che possono essere passati a un comando per modificarne il comportamento; tali parametri opzionali devono essere inseriti tra parentesi quadre: `[...]`. Nell'esempio sopra, il comando `\item[\S]` fa la stessa cosa di `\item`, tranne che tra le parentesi quadre c'è `\S`, che sostituisce un altro carattere al posto del punto nero prima del testo della voce.

## Definire un nuovo comando

Sebbene LaTeX venga fornito con un enorme numero di comandi, spesso diventa necessario definire i propri comandi speciali per semplificare il lavoro, ridurre le attività ripetitive o eseguire una formattazione complessa.

### Comandi semplici

I nuovi comandi si definiscono con `\newcommand`; vediamo quindi un semplice esempio:

```latex
\documentclass{article}
\usepackage{amssymb}
\begin{document}
\newcommand{\R}{\mathbb{R}}
L'insieme dei numeri reali è di solito rappresentato
da una R maiuscola in stile blackboard bold: \( \R \).
\end{document}
```

[Apri questo esempio in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Creating+a+simple+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewcommand%7B%5CR%7D%7B%5Cmathbb%7BR%7D%7D%0AThe+set+of+real+numbers+are+usually+represented+%0Aby+a+blackboard+bold+capital+R%3A+%5C%28+%5CR+%5C%29.%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Output di un nuovo comando](/files/d5f88e5fe3ca7239a6a623ba5f903080562664f0)

L'istruzione `\newcommand{\R}{\mathbb{R}}` ha due parametri che definiscono un nuovo comando, dove:

* `\R`: è il nome del nuovo comando.
* `\mathbb{R}`: è ciò che fa il nuovo comando. In questo caso, la lettera R sarà scritta in stile blackboard bold. L'uso del `\mathbb` comando richiede il `amssymb` pacchetto, che è stato aggiunto all'esempio sopra (nel preambolo).

Dopo che il comando è stato definito, possiamo usarlo nel testo, come mostrato sopra. In questo esempio, il nuovo comando è definito immediatamente prima del paragrafo in cui viene usato; tuttavia, distribuire tali definizioni in tutto il documento non è considerato una buona pratica. In generale, le definizioni dei nuovi comandi vengono raccolte insieme nel preambolo del documento oppure, per raccolte più ampie, inserite in un file separato che può essere [importato nel documento principale](/latex/it/struttura-del-documento/07-management-in-a-large-project.md#inputting-and-including-files).

### Comandi con parametri

È anche possibile creare nuovi comandi che accettano alcuni parametri; per esempio:

```latex
\documentclass{article}
\usepackage{amssymb}
\begin{document}
\newcommand{\bb}[1]{\mathbb{#1}}
Altri sistemi numerici hanno notazioni simili.
I numeri complessi \( \bb{C} \), i razionali
numeri \( \bb{Q} \) e i numeri interi \( \bb{Z} \).
\end{document}
```

[Apri questo esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+command+with+1+parameter\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewcommand%7B%5Cbb%7D%5B1%5D%7B%5Cmathbb%7B%231%7D%7D%0AOther+numerical+systems+have+similar+notations.+%0AThe+complex+numbers+%5C%28+%5Cbb%7BC%7D+%5C%29%2C+the+rational+%0Anumbers+%5C%28+%5Cbb%7BQ%7D+%5C%29+and+the+integer+numbers+%5C%28+%5Cbb%7BZ%7D+%5C%29.%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Output di un comando LaTeX con un parametro](/files/446f33bf3ed7016ef7cb61abc6d5b08ecde517e1)

La riga `\newcommand{\bb}[1]{\mathbb{#1}}` definisce un nuovo comando che prende un parametro, dove:

* `\bb` è il nome del nuovo comando.
* `[1]` è il numero di parametri che il nuovo comando prenderà.
* `\mathbb{#1}` è ciò che il comando fa realmente—la sua definizione.

In questo caso, il parametro, indicato come `#1`, sarà scritto usando caratteri blackboard bold. Se un comando necessita di più di un parametro, puoi fare riferimento a ciascun parametro usando `#1`, `#2` e così via. Sono supportati fino a 9 parametri.

### Comandi con parametri opzionali

I comandi definiti dall'utente possono essere resi ancora più flessibili degli esempi mostrati finora: puoi definire comandi che accettano *argomento opzionale* parametri:

```latex
\documentclass{article}
\begin{document}

Quando si scrivono molte espressioni con esponenti possiamo semplificare il compito, e risparmiare tempo, definendo un comando adatto:

\newcommand{\plusbinomial}[3][2]{(#2 + #3)^#1}

Possiamo usarlo così: \[ \plusbinomial{x}{y} \]

E si può persino cambiare l'esponente:

\[ \plusbinomial[4]{a}{b} \]
\end{document}
```

[Apri questo esempio in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+command+with+optional+parameters\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%0AWhen+writing+many+expressions+with+exponents+we+can+simplify+our+task%2C+and+save+time%2C+by+defining+a+suitable+command%3A%0A%0A%5Cnewcommand%7B%5Cplusbinomial%7D%5B3%5D%5B2%5D%7B%28%232+%2B+%233%29%5E%231%7D%0A%0AWe+can+use+it+like+this%3A+%5C%5B+%5Cplusbinomial%7Bx%7D%7By%7D+%5C%5D%0A%0AAnd+even+the+exponent+can+be+changed%3A%0A%0A%5C%5B+%5Cplusbinomial%5B4%5D%7Ba%7D%7Bb%7D+%5C%5D%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Output di un comando con parametri opzionali](/files/82f155a6f81417e7248feaffaa664a74e4bc297d)

Analizziamo la sintassi della riga `\newcommand{\plusbinomial}[3][2]{(#2 + #3)^#1}`:

* `\plusbinomial` è il nome del nuovo comando.
* `[3]` è il numero di parametri che il comando prenderà, in questo caso 3.
* `[2]` è il valore predefinito per il primo parametro. Questo è ciò che rende il primo parametro opzionale; se non viene passato, userà questo valore predefinito.
* `(#2 + #3)^#1` è ciò che fa il comando. In questo caso metterà il secondo e il terzo parametro in un "formato binomiale" elevato alla potenza rappresentata dal primo parametro.

## Sovrascrivere comandi esistenti

Se provi a definire un nuovo comando che ha lo stesso nome di un *già esistente* comando LaTeX, allora la compilazione fallirà con un messaggio di errore. Questo è dimostrato nel seguente esempio che prova a definire il (già esistente) `\textbf` di TeX:

```latex
\documentclass{article}
\newcommand{\textbf}[1]{#1}% Questo non funzionerà
\begin{document}

\section{Questo fallirà}
\end{document}
```

[Apri questo (**che genera l'errore**) esempio in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Duplicate+command+name\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cnewcommand%7B%5Ctextbf%7D%5B1%5D%7B%231%7D%25+This+will+not+work%0A%5Cbegin%7Bdocument%7D%0A%0A%5Csection%7BThis+will+fail%7D%0A%5Cend%7Bdocument%7D)

La compilazione di questo esempio produce il seguente output:

![Errore generato dalla definizione duplicata di un comando LaTeX](/files/72f1c7dd8e3c5056af3659d4b954ce5da773e17b)

Come mostrato nell'immagine dello schermo, il nostro tentativo di definire `\textbf` è fallito: LaTeX ha generato il messaggio di errore **Errore LaTeX: il comando \textbf è già definito**.

Se vuoi davvero sovrascrivere un comando esistente, puoi farlo tramite `\renewcommand`, che usa la stessa sintassi di `\newcommand`:

```latex
\documentclass{article}
\usepackage{amssymb}
\begin{document}

\renewcommand{\S}{\mathbb{S}}

La sfera di Riemann (i numeri complessi più $\infty$) è
talvolta rappresentata da \( \S \).
\end{document}
```

[Apri questo esempio in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Redefine+existing+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Crenewcommand%7B%5CS%7D%7B%5Cmathbb%7BS%7D%7D%0A%0AThe+Riemann+sphere+%28the+complex+numbers+plus+%24%5Cinfty%24%29+is+%0Asometimes+represented+by+%5C%28+%5CS+%5C%29.%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Output di un comando LaTeX ridefinito](/files/c4af4a73649f868e5af65a13f3303d35eb896128)

In questo esempio il comando `\S` (vedi l'esempio nella [comandi](#commands) sezione) viene sovrascritto per stampare una S in stile blackboard bold.

## Approfondimenti

Per ulteriori informazioni vedi:

* [Ambienti](/latex/it/comandi/02-environments.md)
* [Comprendere i pacchetti e i file di classe](/latex/it/file-di-classe/01-understanding-packages-and-class-files.md)
* [Scrivere il proprio pacchetto](/latex/it/file-di-classe/03-writing-your-own-package.md)
* [Scrivere la propria classe](/latex/it/file-di-classe/04-writing-your-own-class.md)
* [Lunghezze in LaTeX](/latex/it/formattazione/01-lengths-in-latex.md)
* [Uso dei colori in LaTeX](/latex/it/formattazione/13-using-colors-in-latex.md)
* [Dimensione della pagina e margini](/latex/it/formattazione/07-page-size-and-margins.md)
* [Elenco di pacchetti e file di classe](/latex/it/file-di-classe/02-overleaf-and-tex-live.md)
* [L'introduzione non proprio breve a LaTeX2ε](http://www.ctan.org/tex-archive/info/lshort/)
* [LaTeX/Creating\_Packages su WikiBooks](http://en.wikibooks.org/wiki/LaTeX/Creating_Packages)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/it/comandi/01-commands.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
