> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-pro.ayaka.space/latex/it/specifico-per-argomento/03-feynman-diagrams.md).

# Diagrammi di Feynman

## Introduzione

Questo articolo di assistenza esplora i pacchetti LaTeX per disegnare diagrammi di Feynman, un modo molto compatto e intuitivo di rappresentare le interazioni tra particelle. Esploreremo il [`tikz-feynman` che fornisce i comandi e le funzionalità necessarie per includere file grafici esterni. L'esempio sopra carica il](https://ctan.org/pkg/tikz-feynman?lang=en), che usa TikZ per disegnare diagrammi, e [`feynmp-auto`](#other-packages-for-drawing-feynman-diagrams) che ("dietro le quinte") usa MetaPost.

## Il pacchetto TikZ-Feynman

Il [`tikz-feynman` che fornisce i comandi e le funzionalità necessarie per includere file grafici esterni. L'esempio sopra carica il](https://ctan.org/pkg/tikz-feynman?lang=en) è stato pubblicato nel 2016 e usa Ti*re*Z per generare diagrammi di Feynman. Ti*re*Z-Feynman si basa sul pacchetto Ti*re*Z e sui suoi algoritmi di disegno dei grafi per automatizzare il posizionamento di molti vertici. Ti*re*Z-Feynman consente ancora un posizionamento finemente regolato dei vertici, così anche diagrammi complessi possono essere generati con facilità. Le informazioni più aggiornate per Ti*re*Z-Feynman saranno sempre sulla [pagina del progetto](http://www.jpellis.me/projects/tikz-feynman/) e nella [documentazione del pacchetto](http://mirrors.ctan.org/graphics/pgf/contrib/tikz-feynman/tikz-feynman.pdf) su CTAN.

### Aggiornamento (9 novembre 2022)

**IMPORTANTE aggiornamento post-pubblicazione** (9 novembre 2022): Al momento dell'aggiornamento di questa pagina, il **Il pacchetto TikZ-Feynman rimane incompatibile con le versioni di TeX Live successive a TeX Live 2018**—che è la versione di TeX Live usata nel progetto Overleaf [che accompagna questo articolo di assistenza.](https://www.overleaf.com/project/new/template/26607?id=114366276\&templateName=Examples+using+the+TikZ-Feynman+package\&latexEngine=lualatex\&texImage=texlive-full%3A2018.1\&mainFile=) Tutti gli esempi di TikZ-Feynman elencati di seguito dovranno essere compilati in un progetto Overleaf con la **versione di TeX Live** impostata su `2018 (legacy)`. Per ulteriori informazioni vedi [questo problema segnalato su GitHub](https://github.com/JP-Ellis/tikz-feynman/issues/73#issue-942615833).

### Caricamento del pacchetto

Dopo aver installato il pacchetto, il pacchetto Ti*re*Z-Feynman può essere caricato con `\usepackage{tikz-feynman}` nel preambolo. Si raccomanda inoltre di specificare anche la versione di Ti*re*Z-Feynman da usare con il `compat` opzione del pacchetto: `\usepackage[compat=1.0.0]{tikz-feynman}`. Questo garantisce che eventuali nuove versioni di Ti*re*Z-Feynman non producano modifiche indesiderate senza avviso.

### Un primo diagramma

I diagrammi di Feynman possono essere dichiarati con il `\feynmandiagram` comando. È analogo al `\tikz` comando di Ti*re*Z e richiede un punto e virgola finale (`;`) per terminare l'ambiente. Per esempio, un semplice diagramma a *s*-canale è:

```
\feynmandiagram [horizontal=a to b] {
  i1 -- [fermion] a -- [fermion] i2,
  a -- [photon] b,
  f1 -- [fermion] b -- [fermion] f2,
};
```

![S-channel.png](/files/cc628614bb474d0c0faec485ebbb8a03a916b8ae)

Analizziamo questo esempio riga per riga:

**Riga 1**

\feynmandiagram introduce il diagramma di Feynman e consente di fornire argomenti opzionali tra parentesi quadre \[]. In questo caso, horizontal=a to b orienta l'output dell'algoritmo in modo che la linea attraverso i vertici a e b sia orizzontale.

**Riga 2**

La linea fermionica a sinistra viene disegnata dichiarando tre vertici (i1, a e i2) e collegandoli con archi --. Proprio come il comando \feynmandiagram sopra, anche ogni arco accetta argomenti opzionali specificati tra parentesi quadre \[]. In questo caso, vogliamo che questi archi abbiano frecce per indicare che sono linee fermioniche, quindi aggiungiamo loro lo stile fermion. Come vedrai più avanti, gli argomenti opzionali possono essere forniti anche ai vertici esattamente nello stesso modo.

**Riga 3**

Questo arco collega i vertici a e b con uno stile da fotone. Poiché esiste già un vertice etichettato a, l'algoritmo lo collegherà a un nuovo vertice etichettato b.

**Riga 4**

Questa riga è analoga alla riga 2 e introduce due nuovi vertici, f1 e f2. Riutilizza il vertice b già etichettato in precedenza.

**Riga 5**

Termina la dichiarazione del diagramma di Feynman. Il punto e virgola finale (;) è importante.

Il nome assegnato a ciascun vertice nel grafo non ha importanza. Quindi in questo esempio, `i1`, `i2` indicano le particelle iniziali; `f1`, `f2` indicano le particelle finali; e `un`, `b` sono gli estremi del propagatore. L'unico aspetto importante è che ciò che abbiamo chiamato `un` nella riga 2 è anche `un` nella riga 3, in modo che l'algoritmo sottostante li consideri lo stesso vertice.

L'ordine in cui i vertici sono dichiarati non ha importanza, poiché l'algoritmo predefinito riorganizza tutto. Per esempio, si potrebbe preferire disegnare tutte le linee fermioniche in una volta sola, come nel seguente esempio (nota anche che il modo in cui abbiamo nominato i vertici è completamente diverso):

```
\feynmandiagram [horizontal=f2 to f3] {
  f1 -- [fermion] f2 -- [fermion] f3 -- [fermion] f4,
  f2 -- [photon] p1,
  f3 -- [photon] p2,
};
```

![Photon-scattering.png](/files/4a495d06170163ab482b520ce886c58f5cbcd652)

Come osservazione finale, il calcolo di dove i vertici debbano essere posizionati viene solitamente eseguito tramite un algoritmo scritto in Lua. Di conseguenza, LuaTeX è necessario per poter utilizzare questi algoritmi. Se LuaTeX non viene usato, Ti*re*Z-Feynman passerà per impostazione predefinita a un algoritmo più rudimentale e invece avviserà l'utente.

### Aggiunta di stili

Finora, gli esempi hanno usato solo gli stili `photon` e `fermion` . Il pacchetto Ti*re*Z-Feynman include parecchi stili aggiuntivi per archi e vertici, tutti documentati nella [documentazione del pacchetto](http://mirrors.ctan.org/graphics/pgf/contrib/tikz-feynman/tikz-feynman.pdf). Per esempio, è possibile aggiungere frecce di quantità di moto con `momentum=<text>`, e nel caso dei vertici terminali, la particella può essere etichettata con `particle=<text>`. Per mostrare come si usano, prendiamo il generico diagramma a *s*-canale di prima e trasformiamolo in un'annichilazione di coppie elettrone-positrone in muoni:

```
\feynmandiagram [horizontal=a to b] {
  i1 [particle=\(e^{-}\)] -- [fermion] a -- [fermion] i2 [particle=\(e^{+}\)],
  a -- [photon, edge label=\(\gamma\), momentum'=\(k\)] b,
  f1 [particle=\(\mu^{+}\)] -- [fermion] b -- [fermion] f2 [particle=\(\mu^{-}\)],
};
```

![S-channel-labelled.png](/files/77310117a6fec9268c7022200f2f53bbdee0afa5)

Oltre alle chiavi di stile documentate di seguito, possono essere usate anche le chiavi di stile di Ti*re*Z:

```
\feynmandiagram [horizontal=a to b] {
  i1 [particle=\(e^{-}\)] -- [fermion, very thick] a -- [fermion, opacity=0.2] i2 [particle=\(e^{+}\)],
  a -- [red, photon, edge label=\(\gamma\), momentum'={[arrow style=red]\(k\)}] b,
  f1 [particle=\(\mu^{+}\)] -- [fermion, opacity=0.2] b -- [fermion, very thick] f2 [particle=\(\mu^{-}\)],
};
```

![S-channel-labelled-styled.png](/files/e4e7ed9070d58c62607a292cb4e75f65232fd6ef)

Per un elenco di tutti i vari stili forniti da Ti*re*Z, dai un'occhiata al [Ti*re*manuale di Ti](http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf); è estremamente completo e fornisce molti esempi d'uso.

### Quando l'algoritmo non basta

Per impostazione predefinita, viene usato lo `\feynmandiagram` e `\diagram` i comandi usano l'algoritmo `spring layout` per posizionare tutti gli archi. L' `spring layout` algoritmo cerca di "distribuire" il diagramma il più possibile, il che—per la maggior parte dei diagrammi più semplici—dà un risultato soddisfacente; tuttavia in alcuni casi questo non produce il diagramma migliore e questa sezione esaminerà delle alternative. Esistono tre alternative principali:

**Aggiungere archi invisibili**

Pur usando ancora l'algoritmo predefinito, è possibile forzare alcuni vertici a essere più vicini aggiungendo archi extra e rendendoli invisibili tramite draw=none. L'algoritmo tratterà questi archi extra allo stesso modo, ma semplicemente non verranno disegnati alla fine;

**Usare un algoritmo diverso**

In alcune circostanze, altri algoritmi possono essere più adatti. Alcuni degli altri algoritmi di disposizione dei grafi sono elencati nella documentazione del pacchetto, e un elenco completo di tutti gli algoritmi e dei loro parametri è fornito nel manuale di TikZ;

**Posizionamento manuale**

Come ultima risorsa, diagrammi molto complicati o insoliti richiederanno che ogni vertice venga posizionato manualmente.

#### Archi invisibili

L'algoritmo sottostante tratta tutti gli archi esattamente allo stesso modo quando calcola dove posizionare tutti i vertici, e il disegno effettivo del diagramma (dopo che i posizionamenti sono stati calcolati) viene eseguito separatamente. Di conseguenza, è possibile aggiungere archi all'algoritmo, ma impedirne il disegno aggiungendo `draw=none` allo stile dell'arco.

Questo è particolarmente utile se vuoi assicurarti che gli stati iniziali o finali rimangano più vicini di quanto sarebbero altrimenti, come illustrato nel seguente esempio (nota che `opacity=0.2` è usato invece di `draw=none` per illustrare esattamente dove si trova l'arco).

```
% Nessun arco invisibile per mantenere i due fotoni insieme
\feynmandiagram [small, horizontal=a to t1] {
  a [particle=\(\pi^{0}\)] -- [scalar] t1 -- t2 -- t3 -- t1,
  t2 -- [photon] p1 [particle=\(\gamma\)],
  t3 -- [photon] p2 [particle=\(\gamma\)],
};
```

![Invisible-edge-before.png](/files/460fa5997cb6d6da320c7e83cbbb49be3c90a96b)

```
% L'arco invisibile garantisce che i fotoni siano paralleli
\feynmandiagram [small, horizontal=a to t1] {
  a [particle=\(\pi^{0}\)] -- [scalar] t1 -- t2 -- t3 -- t1,
  t2 -- [photon] p1 [particle=\(\gamma\)],
  t3 -- [photon] p2 [particle=\(\gamma\)],
  p1 -- [opacity=0.2] p2,
};
```

![Invisible-edge-after.png](/files/d4fc15e2152aba7b2e91dd3b2a39d6e69d1656f5)

#### Algoritmi alternativi

La libreria di disegno di grafi di Ti*re*Z dispone di diversi algoritmi per posizionare i vertici. Per impostazione predefinita, `\diagram` e `\feynmandiagram` usa il `spring layout` l'algoritmo per posizionare i vertici. L' `spring layout` cerca di distribuire tutto il più possibile e, nella maggior parte dei casi, produce un bel diagramma; tuttavia, ci sono alcuni casi in cui questo non funziona. Un buon esempio in cui l' `spring layout` non funziona sono i decadimenti in cui abbiamo la particella che decade a sinistra e tutte le particelle figlie a destra.

```
% Uso del layout a molla predefinito
\feynmandiagram [horizontal=a to b] {
  a [particle=\(\mu^{-}\)] -- [fermion] b -- [fermion] f1 [particle=\(\nu_{\mu}\)],
  b -- [boson, edge label=\(W^{-}\)] c,
  f2 [particle=\(\overline \nu_{e}\)] -- [fermion] c -- [fermion] f3 [particle=\(e^{-}\)],
};
```

![Spring-layout.png](/files/edee3608302b68847a0c3b6e4e4ba79dcd8ca8e2)

```
% Uso del layout a livelli
\feynmandiagram [layered layout, horizontal=a to b] {
  a [particle=\(\mu^{-}\)] -- [fermion] b -- [fermion] f1 [particle=\(\nu_{\mu}\)],
  b -- [boson, edge label'=\(W^{-}\)] c,
  c -- [anti fermion] f2 [particle=\(\overline \nu_{e}\)],
  c -- [fermion] f3 [particle=\(e^{-}\)],
};
```

![Layered-layout.png](/files/31c23fd3a034238eccad76759a5fc469a8fbf1aa)

Potresti notare che, oltre ad aggiungere lo stile `layout a livelli` a `\feynmandiagram`, abbiamo anche cambiato l'ordine in cui specifichiamo i vertici. Questo perché l' `layout a livelli` algoritmo tiene effettivamente conto dell'ordine in cui i vertici sono dichiarati (a differenza del `spring layout`predefinito); di conseguenza, `c--f2, c--f3` ha un significato diverso da `f2--c--f3`. Nel primo caso, `f2` e `f3` sono entrambi sul livello inferiore `c` come desiderato; mentre nel secondo caso posiziona `f2` sul livello superiore `c` (cioè, lo stesso livello da cui ha origine il bosone W).

#### Posizionamento manuale

In diagrammi più complicati, è molto probabile che nessuno degli algoritmi funzioni, indipendentemente da quanti archi invisibili vengano aggiunti. In tali casi, i vertici devono essere posizionati manualmente. Ti*re*Z-Feynman consente di posizionare manualmente i vertici usando il `\vertex` comando.

Il `\vertex` comando è disponibile solo all'interno dell' `feynman` ambiente (che a sua volta è disponibile solo all'interno di un `tikzpicture`). L' `feynman` ambiente carica tutti gli stili rilevanti di Ti*re*Z-Feynman e dichiara ulteriori comandi specifici di Ti*re*Z-Feynman come `\vertex` e `\diagram`. Questo si ispira a PGFPlots e al suo uso dell' `axis` ambiente.

Il `\vertex` comando è molto analogo al `\node` comando di Ti*re*Z, con la notevole eccezione che il contenuto del vertice è opzionale; cioè, non è necessario avere `{<text>}` alla fine. Nel caso in cui `{}` sia specificato, al vertice viene automaticamente assegnato lo stile `particle` , altrimenti è un normale vertice (di dimensione zero).

Per specificare dove vanno i vertici, è possibile fornire coordinate esplicite, anche se probabilmente è più facile usare la `positioning` libreria di Ti*re*Z, che consente di posizionare i vertici in relazione a vertici esistenti. Usando posizionamenti relativi, è possibile modificare facilmente una parte del grafo e tutto si adatterà di conseguenza—l'alternativa sarebbe regolare manualmente le coordinate di ogni vertice interessato.

Infine, una volta che tutti i vertici sono stati specificati, il `\diagram*` comando viene usato per specificare tutti gli archi. Questo funziona in modo molto simile a `\diagram` (e anche `\feynmandiagram`), tranne per il fatto che usa un algoritmo molto basilare per posizionare i nuovi nodi e consente di includere nodi esistenti (con nome). Per riferirsi a un nodo esistente, il nodo deve essere indicato tra parentesi.

L'intero processo di specificare i nodi e poi disegnare gli archi tra di essi è mostrato di seguito per il decadimento del muone:

```
\begin{tikzpicture}
  \begin{feynman}
    \vertex (a) {\(\mu^{-}\)};
    \vertex [right=of a] (b);
    \vertex [above right=of b] (f1) {\(\nu_{\mu}\)};
    \vertex [below right=of b] (c);
    \vertex [above right=of c] (f2) {\(\overline \nu_{e}\)};
    \vertex [below right=of c] (f3) {\(e^{-}\)};

    \diagram* {
      (a) -- [fermion] (b) -- [fermion] (f1),
      (b) -- [boson, edge label'=\(W^{-}\)] (c),
      (c) -- [anti fermion] (f2),
      (c) -- [fermion] (f3),
    };
  \end{feynman}
\end{tikzpicture}
```

![Manual-positioning.png](/files/66f224c863a1741afa8d6114bfc272fcf79af76b)

## Altri pacchetti per disegnare diagrammi di Feynman

Esistono diverse alternative al pacchetto TikZ-Feynman:

* [`feynmf`](https://ctan.org/pkg/feynmf): produce grafica bitmap tramite [MetaFont](https://ctan.org/pkg/metafont)
* [`feynmp`](https://ctan.org/pkg/feynmf) (incluso con `feynmf`) produce grafica vettoriale tramite [MetaPost](https://ctan.org/pkg/metapost)
* [`feynmp-auto`](https://ctan.org/pkg/feynmp-auto?lang=en): derivato da `feynmp`

Il `feynmp-auto` il pacchetto è, di fatto, un'estensione del `feynmp` pacchetto progettato per automatizzare la conversione del codice PostScript di MetaPost in dati PDF da usare in pdfTeX, LuaTeX e XeTeX. I seguenti esempi usano tutti `feynmp-auto`.

### Introduzione

Il `feynmf`, `feynmp` e `feynmp-auto` i pacchetti ti consentono di disegnare facilmente diagrammi di Feynman specificando i vertici, le particelle e le loro etichette, eseguendo poi automaticamente la disposizione per disegnare il diagramma.

#### Panoramica dell'uso dei pacchetti basati su feynmf

Per creare diagrammi di Feynman devi:

1. creare un `fmfile` ambiente per contenere uno o più diagrammi, ciascuno racchiuso all'interno di un `fmfgraph` o `fmfgraph*` ambiente: la differenza tra la forma con asterisco e quella senza asterisco è [spiegato di seguito](#fmfgraph-and-fmfgraph);
2. usare ogni `fmfgraph` o `fmfgraph*` ambiente per contenere le istruzioni di disegno necessarie a creare un singolo diagramma di Feynman.

Il `fmfile` ambiente ha la seguente forma

```latex
\begin{fmffile}{file-name}

% Diagramma 1
\begin{fmfgraph}(width,height)
...
\end{fmfgraph}

% Diagramma 2
\begin{fmfgraph*}(width,height)
...
\end{fmfgraph*}

\end{fmffile}
```

dove `file-name` è il nome di un file che sarà usato per contenere le descrizioni in codice MetaPost dei singoli disegni definiti all'interno di `fmfgraph`/`fmfgraph*` .

Ogni disegno ha la forma

```latex
\begin{fmfgraph}(width,height)

% istruzioni di disegno

\end{fmfgraph}
```

oppure, per la versione con asterisco (`fmfgraph*`)

```latex
\begin{fmfgraph*}(width,height)

% istruzioni di disegno

\end{fmfgraph*}
```

dove `(width,height)` definisce la dimensione del diagramma espressa in unità di [`\unitlength`](#note-on-unitlength).

Il codice MetaPost in `file-name` viene elaborato per creare la/le grafica/he che rappresenta/no il/i tuo/i diagramma/i di Feynman. Un `fmfile` ambiente può contenere fino a 256 disegni individuali.

#### fmfgraph e fmfgraph\*

* `fmfgraph`: questo ambiente contiene le istruzioni di disegno (descrizione) di un singolo diagramma di Feynman. Verrà posizionato *alla posizione dell'ambiente*. Questo ambiente non supporta etichette, usa `fmfgraph*` per includere etichette nei tuoi diagrammi.
* `fmfgraph*` uguale a `fmfgraph`, ma racchiuso in un [`picture` richiede](/latex/it/figure-e-tabelle/04-picture-environment.md) della stessa dimensione. Supporta l'uso di etichette LaTeX.

### Un esempio

Cominciamo con un esempio rapido:

```latex
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{first-diagram}
 \begin{fmfgraph}(120,80)
   \fmfleft{i1,i2}
   \fmfright{o1,o2}
   \fmf{fermion}{i1,v1,o1}
   \fmf{fermion}{i2,v2,o2}
   \fmf{photon}{v1,v2}
 \end{fmfgraph}
\end{fmffile}
\end{document}
```

[Apri questo esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=feynmf+package+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bfeynmp-auto%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bfmffile%7D%7Bfirst-diagram%7D%0A+%5Cbegin%7Bfmfgraph%7D%28120%2C80%29%0A+++%5Cfmfleft%7Bi1%2Ci2%7D%0A+++%5Cfmfright%7Bo1%2Co2%7D%0A+++%5Cfmf%7Bfermion%7D%7Bi1%2Cv1%2Co1%7D%0A+++%5Cfmf%7Bfermion%7D%7Bi2%2Cv2%2Co2%7D%0A+++%5Cfmf%7Bphoton%7D%7Bv1%2Cv2%7D%0A+%5Cend%7Bfmfgraph%7D%0A%5Cend%7Bfmffile%7D%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![](/files/c6552f1bd68bad5dcd4c4e40a0f4944ae9c1731a)

In questo esempio, l' `fmfgraph` ambiente imposta la larghezza e l'altezza del disegno rispettivamente a 120 e 80:

```latex
\begin{fmfgraph}(120,80)
```

usando unità determinate dal valore di `\unitlength`, che ha un valore predefinito di 1pt; di conseguenza, a questo diagramma viene assegnata una larghezza di 120pt e un'altezza di 80pt.

#### Nota su \unitlength

Poiché `\unitlength` è una dimensione LaTeX, puoi cambiarne il valore usando il `\setlength` comando; per esempio, per definire la larghezza e l'altezza dei disegni in unità di cm puoi scrivere:

```latex
\setlength{\unitlength}{1cm}
```

Riproducendo l'esempio sopra, il diagramma qui sotto ha ora una larghezza di `8cm` e un'altezza di `5cm`:

```latex
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\setlength{\unitlength}{1cm}
\begin{fmffile}{first-diagram}
 \begin{fmfgraph}(8,5)% le unità sono ora in cm
   \fmfleft{i1,i2}
   \fmfright{o1,o2}
   \fmf{fermion}{i1,v1,o1}
   \fmf{fermion}{i2,v2,o2}
   \fmf{photon}{v1,v2}
 \end{fmfgraph}
\end{fmffile}
\end{document}
```

[Apri questo esempio in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Setting+units+to+draw+Feynman+diagrams\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bfeynmp-auto%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cbegin%7Bfmffile%7D%7Bfirst-diagram%7D%0A+%5Cbegin%7Bfmfgraph%7D%288%2C5%29%25+units+are+now+in+cm%0A+++%5Cfmfleft%7Bi1%2Ci2%7D%0A+++%5Cfmfright%7Bo1%2Co2%7D%0A+++%5Cfmf%7Bfermion%7D%7Bi1%2Cv1%2Co1%7D%0A+++%5Cfmf%7Bfermion%7D%7Bi2%2Cv2%2Co2%7D%0A+++%5Cfmf%7Bphoton%7D%7Bv1%2Cv2%7D%0A+%5Cend%7Bfmfgraph%7D%0A%5Cend%7Bfmffile%7D%0A%5Cend%7Bdocument%7D)

Questo esempio ora produce un diagramma più grande:

![](/files/12b88a0eef7c9b6be67dabe67c092b6edac6d0d2)

### Vertici

La prima cosa che devi fare è specificare i vertici esterni e dove devono essere posizionati. Puoi chiamare i tuoi vertici come vuoi e indicare dove devono essere posizionati con i comandi `\fmfleft`, `\fmfright`, `\fmftop`, `\fmfbottom`.

Come usato negli esempi sopra:

```latex
% Crea due vertici a sinistra chiamati i1 e i2
\fmfleft{i1,i2}

% Crea due vertici a destra chiamati o1 e o2
\fmfright{o1,o2}
```

Puoi collegare i vertici con `\fmf`, che creerà nuovi vertici se passi nomi che non sono ancora stati creati. Sempre come usato negli esempi sopra:

```latex
% Creerà una linea fermionica tra i1 e
% il nuovo v1 creato, e tra v1 e o1.
\fmf{fermion}{i1,v1,o1}

% Creerà una linea di fotoni tra v1 e il nuovo v2 creato
\fmf{photon}{v1,v2}
```

### Etichette

Come [notato sopra](#fmfgraph-and-fmfgraph), per usare le etichette il disegno deve essere creato usando la `fmfgraph*` forma dell'ambiente di disegno.

Usa il `\fmflabel` comando per inserire un'etichetta su un vertice:

```latex
\fmflabel{label-content}{diagram-vertex}
```

dove:

* `label-content` è l'etichetta da applicare al vertice scelto;
* `diagram-vertex` è il nome del vertice da etichettare.

Nota che `label-content` può includere materiale matematico.

Possiamo riutilizzare l'esempio precedente per aggiungere le seguenti etichette

```latex
   \fmflabel{$v_1$}{v1}
   \fmflabel{$v_2$}{v2}
```

che produce il diagramma aggiornato mostrato qui sotto:

```latex
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{first-diagram}
 \begin{fmfgraph*}(120,80) %NOTA l'ambiente fmfgraph*
   \fmfleft{i1,i2}
   \fmfright{o1,o2}
   \fmf{fermion}{i1,v1,o1}
   \fmf{fermion}{i2,v2,o2}
   \fmf{photon}{v1,v2}
   % Aggiungiamo le nostre etichette
   \fmflabel{$v_1$}{v1}
   \fmflabel{$v_2$}{v2}
 \end{fmfgraph*}
\end{fmffile}
\end{document}
```

[Apri questo esempio in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Adding+labels+to+Feynman+diagrams\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bfeynmp-auto%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bfmffile%7D%7Bfirst-diagram%7D%0A+%5Cbegin%7Bfmfgraph%2A%7D%28120%2C80%29+%25NOTE+the+fmfgraph%2A+environment%0A+++%5Cfmfleft%7Bi1%2Ci2%7D%0A+++%5Cfmfright%7Bo1%2Co2%7D%0A+++%5Cfmf%7Bfermion%7D%7Bi1%2Cv1%2Co1%7D%0A+++%5Cfmf%7Bfermion%7D%7Bi2%2Cv2%2Co2%7D%0A+++%5Cfmf%7Bphoton%7D%7Bv1%2Cv2%7D%0A+++%25+Add+our+labels%0A+++%5Cfmflabel%7B%24v_1%24%7D%7Bv1%7D%0A+++%5Cfmflabel%7B%24v_2%24%7D%7Bv2%7D%0A+%5Cend%7Bfmfgraph%2A%7D%0A%5Cend%7Bfmffile%7D%0A%5Cend%7Bdocument%7D)

Questo esempio produce un diagramma di Feynman contenente etichette:

![](/files/62a33fed4760a6c30cb30542c0d6403fd82da521)

### Alcuni esempi più complessi

I seguenti esempi, più avanzati, usano funzionalità di `feynmp` che non abbiamo trattato: vedi la [`feynmp` (`feynmf`) documentazione](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/feynmf/fmfman.pdf)—che contiene anche numerosi esempi aggiuntivi. Questi diagrammi furono originariamente pubblicati in un template Overleaf contenente codice LaTeX riprodotto da una pagina web del CERN che ora è accessibile solo tramite [Wayback Machine](https://web.archive.org/web/20141015023615/http://szczypka.web.cern.ch:80/szczypka/guides/latex/feynmp.html)—quella pagina contiene ulteriori esempi che potresti voler provare.

#### Esempio 1

```latex
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{complex-a}
\begin{fmfgraph*}(100,100)
    \fmfleft{i1}
    \fmfright{o1,o2}
    \fmf{fermion,label=$u$}{i1,w1}
    \fmf{fermion,label=$d$}{w1,o1}
    \fmf{photon,label=$W^{+}$}{w1,o2}
    \fmfv{lab=$V^{\ast}_{ud}$,lab.dist=0.05w}{w1}
\end{fmfgraph*}
\end{fmffile}
\end{document}
```

[Apri questo esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=feynmf+package+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bfeynmp-auto%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bfmffile%7D%7Bcomplex-a%7D%0A%5Cbegin%7Bfmfgraph%2A%7D%28100%2C100%29%0A++++%5Cfmfleft%7Bi1%7D%0A++++%5Cfmfright%7Bo1%2Co2%7D%0A++++%5Cfmf%7Bfermion%2Clabel%3D%24u%24%7D%7Bi1%2Cw1%7D%0A++++%5Cfmf%7Bfermion%2Clabel%3D%24d%24%7D%7Bw1%2Co1%7D%0A++++%5Cfmf%7Bphoton%2Clabel%3D%24W%5E%7B%2B%7D%24%7D%7Bw1%2Co2%7D%0A++++%5Cfmfv%7Blab%3D%24V%5E%7B%5Cast%7D_%7Bud%7D%24%2Clab.dist%3D0.05w%7D%7Bw1%7D%0A%5Cend%7Bfmfgraph%2A%7D%0A%5Cend%7Bfmffile%7D%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente diagramma:

![](/files/718ce568f500206f42926661cd26e55799e5f78c)

#### Esempio 2

```latex
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{complex-b}
\begin{fmfgraph*}(200,200)
    % vertici inferiori e superiori
    \fmfstraight
    \fmfleft{i0,i1,i2,id1,id2,i3,i4,i5}
    \fmfright{o0,o1,o2,od1,od2,o3,o4,o5}
    % vertici del protone in ingresso verso il gluone
    \fmf{fermion,label=$d$}{i1,o1}
    % la tensione sposta il vertice da un lato
    \fmf{fermion,tension=1.5,label=$\overline{b}$}{v2,i4}
    \fmf{fermion,label=$\overline{c}$}{o4,v2}
    \fmffreeze
    \fmf{fermion}{o2,v3,o3}
    \fmf{fermion,label=$\overline{s}$}{o2,v3}
    \fmf{fermion,label=$c$}{v3,o3}
    \fmf{photon, tension=2,label=$W^{+}$}{v2,v3}
    % il phantom centra il vertice W->cs
    \fmf{phantom,tension=1.5}{i1,v3}

    \fmfv{lab=$V_{cb}^{\ast}$}{v2}
    \fmfv{lab=$V_{cs}$,lab.dist=-.1w}{v3}
\end{fmfgraph*}
\end{fmffile}
\end{document}
```

[Apri questo esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=feynmf+package+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bfeynmp-auto%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bfmffile%7D%7Bcomplex-b%7D%0A%5Cbegin%7Bfmfgraph%2A%7D%28200%2C200%29%0A++++%25+bottom+and+top+verticies%0A++++%5Cfmfstraight%0A++++%5Cfmfleft%7Bi0%2Ci1%2Ci2%2Cid1%2Cid2%2Ci3%2Ci4%2Ci5%7D%0A++++%5Cfmfright%7Bo0%2Co1%2Co2%2Cod1%2Cod2%2Co3%2Co4%2Co5%7D%0A++++%25+incoming+proton+to+gluon+vertices%0A++++%5Cfmf%7Bfermion%2Clabel%3D%24d%24%7D%7Bi1%2Co1%7D%0A++++%25+tension+shifts+vertex+to+one+side%0A++++%5Cfmf%7Bfermion%2Ctension%3D1.5%2Clabel%3D%24%5Coverline%7Bb%7D%24%7D%7Bv2%2Ci4%7D%0A++++%5Cfmf%7Bfermion%2Clabel%3D%24%5Coverline%7Bc%7D%24%7D%7Bo4%2Cv2%7D%0A++++%5Cfmffreeze%0A++++%5Cfmf%7Bfermion%7D%7Bo2%2Cv3%2Co3%7D%0A++++%5Cfmf%7Bfermion%2Clabel%3D%24%5Coverline%7Bs%7D%24%7D%7Bo2%2Cv3%7D%0A++++%5Cfmf%7Bfermion%2Clabel%3D%24c%24%7D%7Bv3%2Co3%7D%0A++++%5Cfmf%7Bphoton%2C+tension%3D2%2Clabel%3D%24W%5E%7B%2B%7D%24%7D%7Bv2%2Cv3%7D%0A++++%25+phantom+centres+the+W-%3Ecs+vertex%0A++++%5Cfmf%7Bphantom%2Ctension%3D1.5%7D%7Bi1%2Cv3%7D%0A%0A++++%5Cfmfv%7Blab%3D%24V_%7Bcb%7D%5E%7B%5Cast%7D%24%7D%7Bv2%7D%0A++++%5Cfmfv%7Blab%3D%24V_%7Bcs%7D%24%2Clab.dist%3D-.1w%7D%7Bv3%7D%0A%5Cend%7Bfmfgraph%2A%7D%0A%5Cend%7Bfmffile%7D%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente diagramma:

![](/files/7d680815119dd935524f78d215b79ab0ae2bf795)

#### Esempio 3

```latex
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{complex-c}
\begin{fmfgraph*}(200,200)
    %vertici inferiori e superiori
    \fmfbottom{P1,P2}
    \fmftop{P1',b,bbar,P2'}
    %protoni in ingresso verso i vertici del gluone
    \fmf{fermion,tension=2,lab=$P_1$}{P1,g1}
    \fmf{fermion,tension=2,lab=$P_2$}{P2,g2}
    %blob ai vertici del gluone, 0.16w è la dimensione del blob
    \fmfblob{.16w}{g1,g2}
    % gluone da P1 al vertice1
    \fmf{gluon,lab.side=right,lab=$x_{1}P_{1}$}{g1,v1}
    % gluone da P2 al vertice2 - nota il cambio di ordine!
    \fmf{gluon,lab.side=right,lab=$x_{2}P_{2}$}{v2,g2}
    % qui c'era il loop di quark
    \fmf{fermion, tension=.6, lab.side=right,lab=$b$}{v1,b}
    \fmf{fermion, tension=1.2}{v2,v1}
    \fmf{fermion, tension=.6, lab.side=right,lab=$\overline{b}$}{bbar,v2}
    %protoni in uscita
    \fmf{fermion}{g1,P1'}
    \fmf{fermion}{g2,P2'}
    %blocca tutto in posizione
    \fmffreeze
    \renewcommand{\P}[3]{\fmfi{plain}{%
        vpath(__#1,__#2) shifted (thick*(#3))}}
    %linee su P1
    \P{P1}{g1}{2,0}
    \P{P1}{g1}{-2,1}
    %linee su p2
    \P{P2}{g2}{2,1}
    \P{P2}{g2}{-2,0}
    %linee su P1'
    \P{g1}{P1'}{-2,-1}
    \P{g1}{P1'}{2,0}
    %linee su P2'
    \P{g2}{P2'}{-2,0}
    \P{g2}{P2'}{2,-1}
\end{fmfgraph*}
\end{fmffile}
\end{document}
```

[Apri questo esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=feynmf+package+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bfeynmp-auto%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bfmffile%7D%7Bcomplex-c%7D%0A%5Cbegin%7Bfmfgraph%2A%7D%28200%2C200%29%0A++++%25bottom+and+top+verticies%0A++++%5Cfmfbottom%7BP1%2CP2%7D%0A++++%5Cfmftop%7BP1%27%2Cb%2Cbbar%2CP2%27%7D%0A++++%25incoming+protons+to+gluon+vertices%0A++++%5Cfmf%7Bfermion%2Ctension%3D2%2Clab%3D%24P_1%24%7D%7BP1%2Cg1%7D%0A++++%5Cfmf%7Bfermion%2Ctension%3D2%2Clab%3D%24P_2%24%7D%7BP2%2Cg2%7D%0A++++%25blobs+at+gluon+vertices%2C+0.16w+is+the+size+of+blob%0A++++%5Cfmfblob%7B.16w%7D%7Bg1%2Cg2%7D%0A++++%25gluon+from+P1+to+vertex1%0A++++%5Cfmf%7Bgluon%2Clab.side%3Dright%2Clab%3D%24x_%7B1%7DP_%7B1%7D%24%7D%7Bg1%2Cv1%7D%0A++++%25gluon+from+P2+to+vertex2+-+note+change+of+order%21%0A++++%5Cfmf%7Bgluon%2Clab.side%3Dright%2Clab%3D%24x_%7B2%7DP_%7B2%7D%24%7D%7Bv2%2Cg2%7D%0A++++%25quark+loop+was+here%0A++++%5Cfmf%7Bfermion%2C+tension%3D.6%2C+lab.side%3Dright%2Clab%3D%24b%24%7D%7Bv1%2Cb%7D%0A++++%5Cfmf%7Bfermion%2C+tension%3D1.2%7D%7Bv2%2Cv1%7D%0A++++%5Cfmf%7Bfermion%2C+tension%3D.6%2C+lab.side%3Dright%2Clab%3D%24%5Coverline%7Bb%7D%24%7D%7Bbbar%2Cv2%7D%0A++++%25outgoing+protons%0A++++%5Cfmf%7Bfermion%7D%7Bg1%2CP1%27%7D%0A++++%5Cfmf%7Bfermion%7D%7Bg2%2CP2%27%7D%0A++++%25freeze+everything+in+place%0A++++%5Cfmffreeze%0A++++%5Crenewcommand%7B%5CP%7D%5B3%5D%7B%5Cfmfi%7Bplain%7D%7B%25%0A++++++++vpath%28__%231%2C__%232%29+shifted+%28thick%2A%28%233%29%29%7D%7D%0A++++%25lines+on+P1%0A++++%5CP%7BP1%7D%7Bg1%7D%7B2%2C0%7D%0A++++%5CP%7BP1%7D%7Bg1%7D%7B-2%2C1%7D%0A++++%25lines+on+p2%0A++++%5CP%7BP2%7D%7Bg2%7D%7B2%2C1%7D%0A++++%5CP%7BP2%7D%7Bg2%7D%7B-2%2C0%7D%0A++++%25lines+on+P1%27%0A++++%5CP%7Bg1%7D%7BP1%27%7D%7B-2%2C-1%7D%0A++++%5CP%7Bg1%7D%7BP1%27%7D%7B2%2C0%7D%0A++++%25lines+on+P2%27%0A++++%5CP%7Bg2%7D%7BP2%27%7D%7B-2%2C0%7D%0A++++%5CP%7Bg2%7D%7BP2%27%7D%7B2%2C-1%7D%0A%5Cend%7Bfmfgraph%2A%7D%0A%5Cend%7Bfmffile%7D%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente diagramma:

![](/files/21267f3ab160633d17cf0c0fe73ce29457a8db84)

### Stili delle linee

Abbiamo visto i `photon` e `fermion` stili di linea sopra, ma il `feynmp` pacchetto ne supporta molti altri.

| Aspetto                                                                              | Nome/i                                  |
| ------------------------------------------------------------------------------------ | --------------------------------------- |
| ![Feynmf-line-curly.png](/files/98bff768c93f57f220a95b7557ff5d1c2f3fd0b0)            | gluon, riccio                           |
| ![Feynmf-line-dbl-curly.png](/files/ad29e148a50c9cc23b85f3ef61d8e4aad268f3b0)        | dbl\_curly                              |
| ![Feynmf-line-dashes.png](/files/ce7d3052fe8c084ce03934d5c75cbfbfc0d24821)           | tratteggi                               |
| ![Feynmf-line-dashed-arrow.png](/files/bade5c984dd600bb35d6735607bd2e0894cd99f3)     | scalare, dashes\_arrow                  |
| ![Feynmf-line-dbl-dashes.png](/files/546c29e2e391d395fa00fc25d0cf7b9224302dc4)       | dbl\_dashes                             |
| ![Feynmf-line-dbl-dashes-arrow.png](/files/8a82e9ead5720a2a0127a0d90697d491c0ce251a) | dbl\_dashes\_arrow                      |
| ![Feynmf-line-dots.png](/files/c793102be50484f9e7d2e5e7066c42dd9676533f)             | punti                                   |
| ![Feynmf-line-dots-arrow.png](/files/d798cccd79d618f221fb8c5d0d3a590730942dcd)       | fantasma, dots\_arrow                   |
| ![Feynmf-line-dbl-dots.png](/files/c8741809108fcd71ff4fa366372b5f3caa484ca7)         | dbl\_dots                               |
| ![Feynmf-line-dbl-dots-arrow.png](/files/82caf0e82b5168710523e9e5f25cbbf979f5b493)   | dbl\_dots\_arrow                        |
|                                                                                      | phantom                                 |
| ![Feynmf-line-phantom-arrow.png](/files/61c94b19cb1d3abb074ee8ecb8be1a2b59267ec7)    | phantom\_arrow                          |
| ![Feynmf-line-plain.png](/files/aab32fb501d9caa2bc60d300fbe674f55491144b)            | vanilla, plain                          |
| ![Feynmf-line-plain-arrow.png](/files/e0428f71edaf8e4ad1e14705cf8952e39049f244)      | fermion, elettrone, quark, plain\_arrow |
| ![Feynmf-line-dbl-plain.png](/files/ce9c0576b31e09a5cec730759decc3217a0be176)        | double, dbl\_plain                      |
| ![Feynmf-line-dbl-plain-arrow.png](/files/6d2090fe2cb492aadff33afd23e879f7f02684c6)  | double\_arrow, heavy, dbl\_plain\_arrow |
| ![Feynmf-line-wiggly.png](/files/bbb0c6523a8a5fda02713495865ba85d65d85cd0)           | boson, fotone, ondulato                 |
| ![Feynmf-line-dbl-wiggly.png](/files/75fa58ba1b4c0cf300e8a98d67d8c0468a57de16)       | dbl\_wiggly                             |
| ![Feynmf-line-zigzag.png](/files/d4e7b444d3a3939f056a1fc6c904507fe3bef369)           | zigzag                                  |
| ![Feynmf-line-dbl-zigzag.png](/files/a46b144bfdeeb017f85bad4fc981916bb282afb0)       | dbl\_zigzag                             |

## Ulteriori letture

Per ulteriori informazioni vedi:

* [Formule di chimica](/latex/it/specifico-per-argomento/02-chemistry-formulae.md)
* [Diagrammi degli orbitali molecolari](/latex/it/specifico-per-argomento/04-molecular-orbital-diagrams.md)
* [Pacchetto TikZ](/latex/it/figure-e-tabelle/05-tikz-package.md)
* [Disegnare diagrammi direttamente in LaTeX](/latex/it/figure-e-tabelle/04-picture-environment.md)
* [Inserimento di immagini](/latex/it/altri-argomenti/27-inserting-images.md)
* [Elenco delle lettere greche e dei simboli matematici](/latex/it/matematica/11-list-of-greek-letters-and-math-symbols.md)
* [Il **feynmf** documentazione del pacchetto](http://mirrors.ctan.org/macros/latex/contrib/feynmf/fmfman.pdf).


---

# 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://ayakaleaf-pro.ayaka.space/latex/it/specifico-per-argomento/03-feynman-diagrams.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.
