> 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/fi/alakohtaiset/03-feynman-diagrams.md).

# Feynman-kaaviot

## Johdanto

Tässä ohjeartikkelissa tarkastellaan LaTeX-paketteja Feynmanin diagrammien piirtämiseen, joka on erittäin tiivis ja havainnollinen tapa esittää hiukkasten välisiä vuorovaikutuksia. Tarkastelemme [`tikz-feynman` paketti](https://ctan.org/pkg/tikz-feynman?lang=en), joka käyttää TikZ:iä diagrammien piirtämiseen, ja [`feynmp-auto`](#other-packages-for-drawing-feynman-diagrams) joka käyttää ("kulissien takana") MetaPostia.

## TikZ-Feynman-paketti

Se [`tikz-feynman` paketti](https://ctan.org/pkg/tikz-feynman?lang=en) julkaistiin vuonna 2016 ja käyttää Ti*k*Z:iä Feynmanin diagrammien tuottamiseen. Ti*k*Z-Feynman rakentuu Ti*k*Z-paketin ja sen graafien piirtoalgoritmien varaan monien solmujen sijoittelun automatisoimiseksi. Ti*k*Z-Feynman sallii edelleen solmujen hienosäädetyn sijoittelun, joten jopa monimutkaiset diagrammit voidaan tuottaa vaivatta. Ajantasaisimmat tiedot Ti*k*Z-Feynmanista löytyvät aina [projektisivulta](http://www.jpellis.me/projects/tikz-feynman/) ja [pakettidokumentaatio](http://mirrors.ctan.org/graphics/pgf/contrib/tikz-feynman/tikz-feynman.pdf) CTAN:ssa.

### Päivitys (9. marraskuuta 2022)

**TÄRKEÄ julkaisun jälkeinen päivitys** (9. marraskuuta 2022): Tämän sivun päivityshetkellä **TikZ-Feynman-paketti on edelleen yhteensopimaton TeX Live -versioiden kanssa, jotka ovat myöhempiä kuin TeX Live 2018**—joka on TeX Live -versio, jota käytetään [tätä ohjeartikkelia vastaavassa Overleaf-projektissa.](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=) Kaikki alla luetellut TikZ-Feynman-esimerkit on käännettävä Overleaf-projektissa, jossa **TeX Live -versio** on asetettu arvoon `2018 (legacy)`. Lisätietoja löytyy [tästä GitHubissa ilmoitetusta ongelmasta](https://github.com/JP-Ellis/tikz-feynman/issues/73#issue-942615833).

### Paketin lataaminen

Paketin asentamisen jälkeen Ti*k*Z-Feynman-paketti voidaan ladata komennolla `\usepackage{tikz-feynman}` esipuheessa. On suositeltavaa määrittää myös käytettävä Ti*k*Z-Feynmanin versio komennolla `compat` pakettivalinnan: `\usepackage[compat=1.0.0]{tikz-feynman}`. Tämä varmistaa, että Ti*k*Z-Feynmanin uudet versiot eivät tee ei-toivottuja muutoksia ilman varoitusta.

### Ensimmäinen diagrammi

Feynmanin diagrammit voidaan määrittää komennolla `\feynmandiagram` . Se vastaa Ti `\tikz` komentoa Ti*k*Z:stä ja vaatii lopuksi puolipisteen (`;`) ympäristön päättämiseksi. Esimerkiksi yksinkertainen *jono*-kanavadiagrammi on:

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

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

Käydään tämä esimerkki läpi rivi riviltä:

**Rivi 1**

\feynmandiagram esittelee Feynmanin diagrammin ja sallii valinnaisten argumenttien antamisen hakasulkeissa \[]. Tässä tapauksessa horizontal=a to b suuntaa algoritmin tuotokset niin, että solmujen a ja b läpi kulkeva viiva on vaakasuora.

**Rivi 2**

Vasen fermioniviiva piirretään määrittämällä kolme solmua (i1, a ja i2) ja yhdistämällä ne reunoilla --. Aivan kuten yllä olevassa \feynmandiagram-komennossa, myös jokaiselle reunalle voidaan antaa valinnaisia argumentteja hakasulkeissa \[]. Tässä tapauksessa haluamme näihin reunoihin nuolet osoittamaan, että ne ovat fermioniviivoja, joten lisäämme niihin fermion-tyylin. Kuten myöhemmin nähdään, valinnaisia argumentteja voidaan antaa myös solmuille täsmälleen samalla tavalla.

**Rivi 3**

Tämä reuna yhdistää solmut a ja b reunan ollessa tyyliltään fotoni. Koska a-niminen solmu on jo olemassa, algoritmi yhdistää sen uuteen b-nimiseen solmuun.

**Rivi 4**

Tämä rivi on analoginen riville 2 ja tuo mukanaan kaksi uutta solmua, f1 ja f2. Se käyttää uudelleen aiemmin nimettyä b-solmua.

**Rivi 5**

Päätä Feynmanin diagrammin määrittely. Lopullinen puolipiste (;) on tärkeä.

Kullakin verkon solmulle annettu nimi ei ole tärkeä. Joten tässä esimerkissä, `i1`, `i2` tarkoittavat alkuhiukkasia; `f1`, `f2` tarkoittavat loppuhiukkasia; ja `a`, `b` ovat propagatorin päätepisteet. Ainoa tärkeä asia on, että mitä kutsuimme `a` rivin 2 kohdassa on myös `a` rivin 3 kohdassa, jotta taustalla oleva algoritmi käsittelee niitä samana solmuna.

Solmujen määrittelyjärjestyksellä ei ole väliä, koska oletusalgoritmi järjestää kaiken uudelleen. Esimerkiksi fermioniviivat voi olla helpompaa piirtää kerralla, kuten seuraavassa esimerkissä (huomaa myös, että solmujen nimeäminen tehdään aivan eri tavalla):

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

![Photon-scattering.png](/files/04295e2c0e23e70efb6a627a8e6313d3fd9853f2)

Lopuksi huomautuksena, solmujen sijoittelun laskeminen tehdään yleensä Lua-kielellä kirjoitetulla algoritmilla. Tämän seurauksena LuaTeX vaaditaan, jotta näitä algoritmeja voidaan käyttää. Jos LuaTeX:iä ei käytetä, Ti*k*Z-Feynman käyttää oletuksena alkeellisempaa algoritmia ja varoittaa käyttäjää sen sijaan.

### Tyylien lisääminen

Toistaiseksi esimerkeissä on käytetty vain `photon` ja `fermion` tyylejä. Ti*k*Z-Feynman-paketissa on useita lisätyylejä reunoille ja solmuille, ja ne on kaikki dokumentoitu [pakettidokumentaatio](http://mirrors.ctan.org/graphics/pgf/contrib/tikz-feynman/tikz-feynman.pdf). Esimerkiksi voidaan lisätä liikemäärän nuolet komennolla `momentum=<text>`, ja päätesolmujen tapauksessa hiukkanen voidaan merkitä komennolla `particle=<text>`. Näyttääksemme, miten niitä käytetään, otamme aiemmin esitetyn yleisen *jono*-kanavadiagrammin ja teemme siitä elektronin ja positronin parin, joka annihiloituu muoneiksi:

```
\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/9f9ed53b7aa9d915148759ae7abe3a1a22161026)

Alla dokumentoitujen tyylien avainarvojen lisäksi voidaan käyttää myös Ti*k*Z:n tyylien avainarvoja:

```
\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/7a00c692952e94d4083bd5f68074ec8ca4a8763a)

Luettelon kaikista Ti*k*Z:n tarjoamista erilaisista tyyleistä löydät [Ti*k*Ti](http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf)Z:n käsikirjasta; se on erittäin perusteellinen ja sisältää monia käyttöesimerkkejä.

### Kun algoritmi ei riitä

algoritmistyyliä. Mutta jos pidät viivoista algoritmin ja kuvatekstin ympärillä, voit lisätä `\feynmandiagram` ja `\diagram` komennot käyttävät `jousiasettelualgoritmia` kaikkien reunojen sijoittamiseen.  `jousiasettelualgoritmia` algoritmi pyrkii \`levittämään' diagrammin mahdollisimman laajalle, mikä—useimmille yksinkertaisille diagrammeille—antaa tyydyttävän tuloksen; joissakin tapauksissa tämä ei kuitenkaan tuota parasta diagrammia, ja tässä osiossa tarkastellaan vaihtoehtoja. Päävaihtoehtoja on kolme:

**Lisää näkymättömiä reunoja**

Vaikka käytössä on edelleen oletusalgoritmi, tiettyjä solmuja voidaan pakottaa lähemmäs toisiaan lisäämällä ylimääräisiä reunoja ja tekemällä niistä näkymättömiä käyttäen draw=none. Algoritmi käsittelee näitä ylimääräisiä reunoja samalla tavalla, mutta niitä ei yksinkertaisesti piirretä lopuksi;

**Käytä toista algoritmia**

Joissakin tilanteissa muut algoritmit voivat sopia paremmin. Joitakin muita verkon asettelualgoritmeja luetellaan paketin dokumentaatiossa, ja kattava luettelo kaikista algoritmeista ja niiden parametreista annetaan TikZ:n käsikirjassa;

**Manuaalinen sijoittelu**

Viimeisenä keinona hyvin monimutkaiset tai epätavalliset diagrammit vaativat, että jokainen solmu sijoitetaan käsin.

#### Näkymättömät reunat

Taustalla oleva algoritmi käsittelee kaikkia reunoja täsmälleen samalla tavalla laskettaessa, mihin kaikki solmut sijoitetaan, ja diagrammin varsinainen piirtäminen (sen jälkeen kun sijoittelut on laskettu) tehdään erikseen. Näin ollen on mahdollista lisätä reunoja algoritmille mutta estää niiden piirtäminen lisäämällä `draw=none` reunan tyyliin.

Tämä on erityisen hyödyllistä, jos haluat varmistaa, että alku- tai lopputilat pysyvät lähempänä toisiaan kuin muuten olisivat, kuten seuraavassa esimerkissä havainnollistetaan (huomaa, että `opacity=0.2` käytetään sijaan `draw=none` havainnollistamaan, missä kohtaa reuna tarkalleen sijaitsee).

```
% Ei näkymätöntä, jotta kaksi fotonia pysyvät yhdessä
\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/dee93669035f77aecb0eccc31db67d187a73fb25)

```
% Näkymätön reuna varmistaa, että fotonit ovat rinnakkain
\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/0cf21310543c05768a6ce87ec00a75b1233b19d5)

#### Vaihtoehtoiset algoritmit

Ti*k*Z:n graafinpiirtokirjastossa on useita erilaisia algoritmeja solmujen sijoittamiseen. Oletusarvoisesti, `\diagram` ja `\feynmandiagram` käytä `jousiasettelualgoritmia` algoritmia solmujen sijoittamiseen.  `jousiasettelualgoritmia` pyrkii levittämään kaiken mahdollisimman laajalle, mikä useimmissa tapauksissa antaa kauniin diagrammin; kuitenkin on tiettyjä tapauksia, joissa tämä ei toimi. Hyvä esimerkki tilanteesta, jossa `jousiasettelualgoritmia` ei toimi, ovat hajoamiset, joissa hajoava hiukkanen on vasemmalla ja kaikki tytärhiukkaset oikealla.

```
% Oletusarvoisen jousiasettelun käyttö
\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/6f8a6f1ce0fa1db922ae46b70c0e15ad3f7f822b)

```
% Kerrostetun asettelun käyttö
\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/ac25d651a6a7ae733d9eca16e652bc7c6a9d89d2)

Saatat huomata, että sen lisäksi, että lisätään `kerrostetun asettelun` tyyliin `\feynmandiagram`, muutimme myös solmujen määrittelyjärjestystä. Tämä johtuu siitä, että `kerrostetun asettelun` algoritmi kiinnittää huomiota solmujen määrittelyjärjestykseen (toisin kuin oletus `jousiasettelualgoritmia`); seurauksena `c--f2, c--f3` tarkoittaa eri asiaa kuin `f2--c--f3`. Ensimmäisessä tapauksessa `f2` ja `f3` ovat molemmat alla olevalla tasolla `c` kuten halutaan; kun taas jälkimmäinen tapaus sijoittaa `f2` ylemmälle tasolle `c` (eli samalle tasolle, josta W-bosoni alkaa).

#### Manuaalinen sijoittelu

Monimutkaisemmissa diagrammeissa on varsin todennäköistä, että mikään algoritmeista ei toimi, riippumatta siitä, kuinka monta näkymätöntä reunaa lisätään. Tällaisissa tapauksissa solmut on sijoitettava käsin. Ti*k*Z-Feynman sallii solmujen manuaalisen sijoittelun käyttämällä `\vertex` komento.

Se `\vertex` komento on käytettävissä vain `feynman` ympäristössä (joka itse on käytettävissä vain `tikzpicture`).  `feynman` ympäristö lataa kaikki asiaankuuluvat tyylit Ti*k*Z-Feynmanista ja määrittää lisäksi Ti*k*Z-Feynman-kohtaisia komentoja, kuten `\vertex` ja `\diagram`. Tämä on saanut inspiraationsa PGFPlotsista ja sen `axis` ympäristössä.

Se `\vertex` komennon käyttö on hyvin samankaltaista kuin `\node` komentoa Ti*k*Z:ssä, huomattavana poikkeuksena se, että solmun sisältö on valinnainen; eli sinun ei tarvitse olla `{<text>}` lopussa. Kun `{}` on määritelty, solmulle annetaan automaattisesti `particle` tyyli, ja muuten se on tavallinen (nollakokoinen) solmu.

Määrittääksesi, minne solmut menevät, on mahdollista antaa eksplisiittiset koordinaatit, vaikka luultavasti helpointa on käyttää Ti `positioning` Z:n kirjastoa, jonka avulla solmut voidaan sijoittaa suhteessa olemassa oleviin solmuihin. Käyttämällä suhteellista sijoittelua on helppo hienosäätää yhtä osaa graafista, ja kaikki mukautuu sen mukaan—vaihtoehtona olisi säätää manuaalisesti jokaisen vaikutetun solmun koordinaatteja.*k*Lopuksi, kun kaikki solmut on määritetty, käytetään

\diagram\* `komentoa kaikkien reunojen määrittämiseen. Tämä toimii pitkälti samalla tavalla kuin` (ja myös `\diagram` ), paitsi että se käyttää hyvin yksinkertaista algoritmia uusien solmujen sijoittamiseen ja sallii olemassa olevien (nimettyjen) solmujen sisällyttämisen. Viitataksesi olemassa olevaan solmuun, solmu on annettava sulkeissa. `\feynmandiagram`descriptions?

Koko tämä prosessi, jossa solmut määritetään ja sitten niitä väliset reunat piirretään, on esitetty alla myonin hajoamisen tapauksessa:

```
\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/5b24338a383d0313a2e867bd91414755a1d11496)

## Muut Feynmanin diagrammien piirtämiseen tarkoitetut paketit

TikZ-Feynman-paketille on useita vaihtoehtoja:

* [`feynmf`](https://ctan.org/pkg/feynmf): tuottaa bittikartagrafiikkaa käyttäen [MetaFontia](https://ctan.org/pkg/metafont)
* [`feynmp`](https://ctan.org/pkg/feynmf) (toimitetaan mukana `feynmf`) tuottaa vektorigrafiikkaa käyttäen [MetaPost](https://ctan.org/pkg/metapost)
* [`feynmp-auto`](https://ctan.org/pkg/feynmp-auto?lang=en): johdettu `feynmp`

Se `feynmp-auto` paketti on käytännössä `feynmp` paketin laajennus, joka on suunniteltu automatisoimaan MetaPostin PostScript-koodin muuntaminen PDF-dataksi käytettäväksi pdfTeX:ssä, LuaTeX:ssä ja XeTeX:ssä. Seuraavat esimerkit käyttävät kaikki `feynmp-auto`.

### Johdanto

Se `feynmf`, `feynmp` ja `feynmp-auto` paketit antavat sinun helposti piirtää Feynmanin diagrammeja määrittämällä solmut, hiukkaset ja niiden nimilaput ja suorittamalla sitten asettelun automaattisesti diagrammin piirtämiseksi.

#### Yleiskatsaus feynmf-pohjaisten pakettien käyttöön

Feynmanin diagrammien luomiseen sinun täytyy:

1. luoda `fmfile` ympäristö, joka sisältää yhden tai useamman diagrammin, joista kukin on suljettu `fmfgraph` tai `fmfgraph*` ympäristöön—ero tähdellä merkityn ja merkityttömän muodon välillä on [selitetään alla](#fmfgraph-and-fmfgraph);
2. käyttää kutakin `fmfgraph` tai `fmfgraph*` ympäristöä sisältämään piirto-ohjeet, joita tarvitaan yksittäisen Feynmanin diagrammin luomiseen.

Se `fmfile` ympäristöllä on seuraava muoto

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

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

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

\end{fmffile}
```

jossa `file-name` on tiedoston nimi, jota käytetään sisältämään niiden yksittäisten piirrosten MetaPost-koodikuvaukset, jotka on määritelty `fmfgraph`/`fmfgraph*` ympäristöistä.

Jokainen piirros on muotoa

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

% piirto-ohjeet

\end{fmfgraph}
```

tai tähdellisessä versiossa (`fmfgraph*`)

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

% piirto-ohjeet

\end{fmfgraph*}
```

jossa `(width,height)` määrittää diagrammin koon ilmaistuna yksiköissä [`\unitlength`](#note-on-unitlength).

MetaPost-koodi kohdassa `file-name` käsitellään luomaan grafiikka(t), jotka esittävät Feynmanin diagrammi(si).  `fmfile` ympäristö voi sisältää enintään 256 yksittäistä piirrosta.

#### fmfgraph ja fmfgraph\*

* `fmfgraph`: tämä ympäristö sisältää yhden Feynmanin diagrammin piirto-ohjeet (kuvauksen). Se sijoitetaan *ympäristön sijaintiin*. Tämä ympäristö ei tue nimilappuja; käytä `fmfgraph*` sisällyttääksesi nimilaput diagrammeihisi.
* `fmfgraph*` sama kuin `fmfgraph`, mutta suljettuna [`picture` ympäristö](/latex/fi/kuvat-ja-taulukot/04-picture-environment.md) samankokoiseen. Se tukee LaTeX-nimilappujen käyttöä.

### Esimerkki

Aloitetaan nopealla esimerkillä:

```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}
```

[Avaa tämä esimerkki Overleafissa](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![](/files/263266b7df67252fa3d584607aa75cf349953c68)

Tässä esimerkissä `fmfgraph` ympäristö asettaa piirroksen leveydeksi ja korkeudeksi vastaavasti 120 ja 80:

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

käyttäen yksiköitä, jotka määräytyvät arvon `\unitlength`, jonka oletusarvo on 1pt; näin ollen tälle diagrammille varataan leveys 120pt ja korkeus 80pt.

#### \unitlengthistä

Koska `\unitlength` on LaTeX:n mitta, jonka arvoa voit muuttaa komennolla `\setlength` ; esimerkiksi määrittääksesi piirrosten leveyden ja korkeuden senttimetreissä voit kirjoittaa:

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

Toistamalla yllä olevan esimerkin alla oleva diagrammi on nyt leveydeltään `8cm` ja korkeudeltaan `5cm`:

```latex
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\setlength{\unitlength}{1cm}
\begin{fmffile}{first-diagram}
 \begin{fmfgraph}(8,5)% yksiköt ovat nyt 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}
```

[Avaa tämä esimerkki Overleafissa.](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)

Tämä esimerkki tuottaa nyt suuremman diagrammin:

![](/files/6fc533ace056d4889628ea39734cc723d9c2e278)

### Solmut

Ensimmäiseksi sinun täytyy määrittää ulkoiset solmut ja se, mihin ne sijoitetaan. Voit nimetä solmut miten haluat ja kertoa, mihin niiden tulisi sijoittua komennoilla `\fmfleft`, `\fmfright`, `\fmftop`, `\fmfbottom`.

Kuten yllä olevissa esimerkeissä:

```latex
% Luo kaksi vasemmanpuoleista solmua nimillä i1 ja i2
\fmfleft{i1,i2}

% Luo kaksi oikeanpuoleista solmua nimillä o1 ja o2
\fmfright{o1,o2}
```

Voit yhdistää solmuja komennolla `\fmf`, joka luo uusia solmuja, jos annat nimiä, joita ei ole vielä luotu. Myös kuten yllä olevissa esimerkeissä:

```latex
% Luo fermioniviivan i1:n ja
% juuri luodun v1:n välille ja v1:n ja o1:n välille.
\fmf{fermion}{i1,v1,o1}

% Luo fotoniviivan v1:n ja juuri luodun v2:n välille
\fmf{photon}{v1,v2}
```

### Nimilaput

Kuten [edellä todettiin](#fmfgraph-and-fmfgraph), nimilappujen käyttämiseksi piirros on luotava `fmfgraph*` muodossa olevaa piirtoympäristöä käyttäen.

Käytä `\fmflabel` komentoa solmun nimilapun asettamiseen:

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

jossa:

* `tunnisteen sisältö` on valittuun kärkeen lisättävä tunniste;
* `kaavion kärki` on merkittävän kärjen nimi.

Huomaa, että `tunnisteen sisältö` voi sisältää matemaattista sisältöä.

Voimme käyttää edellistä esimerkkiä uudelleen lisätäksemme seuraavat tunnisteet

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

joka tuottaa alla näkyvän päivitetyn kaavion:

```latex
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{first-diagram}
 \begin{fmfgraph*}(120,80) %HUOMAA fmfgraph*-ympäristö
   \fmfleft{i1,i2}
   \fmfright{o1,o2}
   \fmf{fermion}{i1,v1,o1}
   \fmf{fermion}{i2,v2,o2}
   \fmf{photon}{v1,v2}
   % Lisää tunnisteemme
   \fmflabel{$v_1$}{v1}
   \fmflabel{$v_2$}{v2}
 \end{fmfgraph*}
\end{fmffile}
\end{document}
```

[Avaa tämä esimerkki Overleafissa.](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)

Tämä esimerkki tuottaa Feynmanin kaavion, joka sisältää tunnisteita:

![](/files/c201eebe29624aec5dfe6a316736d03931778f35)

### Joitakin monimutkaisempia esimerkkejä

Seuraavat, edistyneemmät esimerkit käyttävät ominaisuuksia `feynmp` joita emme ole käsitelleet: katso [`feynmp` paketin (`feynmf`) dokumentaatio](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/feynmf/fmfman.pdf)—joka sisältää myös lukuisia lisäesimerkkejä. Nämä kaaviot julkaistiin alun perin Overleaf-mallipohjassa, joka sisälsi LaTeX-koodia, joka on jäljennetty CERNin verkkosivulta, johon pääsee nykyään vain kautta [Wayback Machine](https://web.archive.org/web/20141015023615/http://szczypka.web.cern.ch:80/szczypka/guides/latex/feynmp.html)—kyseinen sivu sisältää lisää esimerkkejä, joita saatat haluta kokeilla.

#### Esimerkki 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}
```

[Avaa tämä esimerkki Overleafissa](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)

Tämä esimerkki tuottaa seuraavan kaavion:

![](/files/61bf6cb40ceb247b5ca118ccc95b99a54c9bc78c)

#### Esimerkki 2

```latex
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{complex-b}
\begin{fmfgraph*}(200,200)
    % ala- ja yläkärjet
    \fmfstraight
    \fmfleft{i0,i1,i2,id1,id2,i3,i4,i5}
    \fmfright{o0,o1,o2,od1,od2,o3,o4,o5}
    % saapuvat protonit gluonisolmukohtiin
    \fmf{fermion,label=$d$}{i1,o1}
    % jännitys siirtää kärjen toiselle puolelle
    \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}
    % phantom keskittää W->cs-kärjen
    \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}
```

[Avaa tämä esimerkki Overleafissa](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)

Tämä esimerkki tuottaa seuraavan kaavion:

![](/files/79d1f3ad1e3de36b3af29d8f13a53cbee687cc32)

#### Esimerkki 3

```latex
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{complex-c}
\begin{fmfgraph*}(200,200)
    %ala- ja yläkärjet
    \fmfbottom{P1,P2}
    \fmftop{P1',b,bbar,P2'}
    %saapuvat protonit gluonisolmukohtiin
    \fmf{fermion,tension=2,lab=$P_1$}{P1,g1}
    \fmf{fermion,tension=2,lab=$P_2$}{P2,g2}
    %gluonisolmukohtien kohdalla olevat pilkut, 0.16w on pilkun koko
    \fmfblob{.16w}{g1,g2}
    % gluoni P1:stä kärkeen 1
    \fmf{gluon,lab.side=right,lab=$x_{1}P_{1}$}{g1,v1}
    % gluoni P2:sta kärkeen 2 - huomaa järjestyksen muutos!
    \fmf{gluon,lab.side=right,lab=$x_{2}P_{2}$}{v2,g2}
    % kvarkkisilmukka oli tässä
    \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}
    % lähtevät protonit
    \fmf{fermion}{g1,P1'}
    \fmf{fermion}{g2,P2'}
    % jäädytä kaikki paikoilleen
    \fmffreeze
    \renewcommand{\P}[3]{\fmfi{plain}{%
        vpath(__#1,__#2) shifted (thick*(#3))}}
    % viivat P1:ssä
    \P{P1}{g1}{2,0}
    \P{P1}{g1}{-2,1}
    % viivat p2:ssa
    \P{P2}{g2}{2,1}
    \P{P2}{g2}{-2,0}
    % viivat P1':ssä
    \P{g1}{P1'}{-2,-1}
    \P{g1}{P1'}{2,0}
    % viivat P2':ssa
    \P{g2}{P2'}{-2,0}
    \P{g2}{P2'}{2,-1}
\end{fmfgraph*}
\end{fmffile}
\end{document}
```

[Avaa tämä esimerkki Overleafissa](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)

Tämä esimerkki tuottaa seuraavan kaavion:

![](/files/0789cc96be5171b7ed84910b3defb3a79b43be04)

### Viivatyylit

Olemme nähneet `photon` ja `fermion` edellä olevat viivatyylit, mutta `feynmp` paketti tukee monia lisää.

| Ulkoasu                                                                              | Nimi(t)                                         |
| ------------------------------------------------------------------------------------ | ----------------------------------------------- |
| ![Feynmf-line-curly.png](/files/76959c1192e8ab490a0f0ad06626d0671df1cb65)            | gluon, kihara                                   |
| ![Feynmf-line-dbl-curly.png](/files/7f47e412c5784c67b140d3e779a015a75183bd6f)        | dbl\_curly                                      |
| ![Feynmf-line-dashes.png](/files/0a5008a8615686b1080cd8c0dc3d73b2a8a362f9)           | katkoviivat                                     |
| ![Feynmf-line-dashed-arrow.png](/files/a1daf4c6c30f7889fad1352f220be6ccdb56ae37)     | skalaari, katkoviiva\_nuoli                     |
| ![Feynmf-line-dbl-dashes.png](/files/2ce78ec442cb47341ea67340fa74f4085ae51fd0)       | dbl\_dashes                                     |
| ![Feynmf-line-dbl-dashes-arrow.png](/files/b3305e1b1f86b0ce237d2e9f7cf19fab404686b0) | dbl\_dashes\_arrow                              |
| ![Feynmf-line-dots.png](/files/80f5394b881f851f50ab0992b4cb7cf4282c354c)             | pisteviivat                                     |
| ![Feynmf-line-dots-arrow.png](/files/4621cd8868dfaf8ddf6712914822727a055bfdb3)       | ghost, pisteviiva\_nuoli                        |
| ![Feynmf-line-dbl-dots.png](/files/ebb7738c914df091f769f22fcb06782047846b44)         | dbl\_dots                                       |
| ![Feynmf-line-dbl-dots-arrow.png](/files/f003b1f8b4ebc9566a1d9e9818102b7f889ebaab)   | dbl\_dots\_arrow                                |
|                                                                                      | phantom                                         |
| ![Feynmf-line-phantom-arrow.png](/files/0f3e982e00a6e47ccc01440a43c2142420054116)    | phantom\_nuoli                                  |
| ![Feynmf-line-plain.png](/files/db6978de4700d7ed2069c375102783ceac5c4514)            | vanilla, tavallinen                             |
| ![Feynmf-line-plain-arrow.png](/files/6dfea42c1dbdf89869780b02092e884ab35398ab)      | fermioni, elektroni, kvarkki, tavallinen\_nuoli |
| ![Feynmf-line-dbl-plain.png](/files/903f70c6f8fae9d878f1b6c8ff7a93010a0419f7)        | kaksinkertainen, dbl\_plain                     |
| ![Feynmf-line-dbl-plain-arrow.png](/files/76aa78ba268faf74354ca267d4807e3c72bcea4b)  | kaksoisnuoli, raskas, dbl\_plain\_arrow         |
| ![Feynmf-line-wiggly.png](/files/92a4de5b44f2a464c34f0b1fa5b064d5f0407e0c)           | bosoni, fotoni, aaltoileva                      |
| ![Feynmf-line-dbl-wiggly.png](/files/337adfc33bf6541be27d26fcdd2ead0804081a73)       | dbl\_wiggly                                     |
| ![Feynmf-line-zigzag.png](/files/7588942dcd866c90ca9cee67506bf70b48c447c2)           | siksak                                          |
| ![Feynmf-line-dbl-zigzag.png](/files/7ec4b41635206ecf06a703482159fbf7f7637f35)       | dbl\_zigzag                                     |

## Lisälukemista

Lisätietoja löydät:

* [Kemian kaavat](/latex/fi/alakohtaiset/02-chemistry-formulae.md)
* [Molekyyliorbitaalikaaviot](/latex/fi/alakohtaiset/04-molecular-orbital-diagrams.md)
* [TikZ-paketti](/latex/fi/kuvat-ja-taulukot/05-tikz-package.md)
* [Kaavioiden piirtäminen suoraan LaTeXissä](/latex/fi/kuvat-ja-taulukot/04-picture-environment.md)
* [Kuvien lisääminen](/latex/fi/lisaa-aiheita/27-inserting-images.md)
* [Luettelo kreikkalaisista kirjaimista ja matemaattisista symboleista](/latex/fi/matematiikka/11-list-of-greek-letters-and-math-symbols.md)
* [Se **feynmf** pakettidokumentaatio](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://overleaf-pro.ayaka.space/latex/fi/alakohtaiset/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.
