> 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/id/bidang-khusus/03-feynman-diagrams.md).

# Diagram Feynman

## Pendahuluan

Artikel bantuan ini membahas paket-paket LaTeX untuk menggambar diagram Feynman, cara yang sangat ringkas dan intuitif untuk merepresentasikan interaksi antar partikel. Kita akan membahas [`tikz-feynman` ke preambel dokumen Anda (seperti disarankan](https://ctan.org/pkg/tikz-feynman?lang=en), yang menggunakan TikZ untuk menggambar diagram, dan [`feynmp-auto`](#other-packages-for-drawing-feynman-diagrams) yang ("di balik layar") menggunakan MetaPost.

## Paket TikZ-Feynman

Fitur [`tikz-feynman` ke preambel dokumen Anda (seperti disarankan](https://ctan.org/pkg/tikz-feynman?lang=en) dirilis pada tahun 2016 dan menggunakan Ti*k*Z untuk menghasilkan diagram Feynman. Ti*k*Z-Feynman dibangun di atas paket Ti*k*Z dan algoritme penggambaran graph-nya untuk mengotomatisasi penempatan banyak vertex. Ti*k*Z-Feynman tetap memungkinkan penempatan vertex yang disetel halus sehingga bahkan diagram yang kompleks pun dapat dibuat dengan mudah. Informasi paling mutakhir untuk Ti*k*Z-Feynman akan selalu ada di [halaman proyek](http://www.jpellis.me/projects/tikz-feynman/) dan di [dokumentasi paket](http://mirrors.ctan.org/graphics/pgf/contrib/tikz-feynman/tikz-feynman.pdf) di CTAN.

### Pembaruan (9 November 2022)

**Pembaruan penting pascapublikasi** (9 November 2022): Pada saat pembaruan halaman ini, **paket TikZ-Feynman tetap tidak kompatibel dengan versi TeX Live yang lebih baru daripada TeX Live 2018**—yang merupakan versi TeX Live yang digunakan dalam [proyek Overleaf yang menyertai artikel bantuan ini.](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=) Semua contoh TikZ-Feynman yang tercantum di bawah ini perlu dikompilasi dalam proyek Overleaf dengan **Versi TeX Live** disetel ke `2018 (legacy)`. Untuk informasi lebih lanjut lihat [isu ini yang dilaporkan di GitHub](https://github.com/JP-Ellis/tikz-feynman/issues/73#issue-942615833).

### Memuat Paket

Setelah memasang paket, Ti*k*Z-Feynman dapat dimuat dengan `\usepackage{tikz-feynman}` di preamble. Disarankan juga agar Anda menentukan versi Ti*k*Z-Feynman yang akan digunakan dengan `compat` paket: `\usepackage[compat=1.0.0]{tikz-feynman}`. Ini memastikan bahwa versi baru Ti*k*Z-Feynman tidak menghasilkan perubahan yang tidak diinginkan tanpa peringatan.

### Diagram Pertama

Diagram Feynman dapat dideklarasikan dengan `\feynmandiagram` perintah. Ini dianalogikan dengan perintah `\tikz` dari Ti*k*Z dan memerlukan titik koma akhir (`;`) untuk menutup lingkungan. Misalnya, diagram *s*-channel sederhana adalah:

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

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

Mari kita bahas contoh ini baris demi baris:

**Baris 1**

\feynmandiagram memperkenalkan diagram Feynman dan memungkinkan argumen opsional diberikan dalam tanda kurung siku \[]. Dalam kasus ini, horizontal=a to b mengorientasikan keluaran algoritme sehingga garis melalui vertex a dan b horizontal.

**Baris 2**

Garis fermion di sebelah kiri digambar dengan mendeklarasikan tiga vertex (i1, a, dan i2) dan menghubungkannya dengan edge --. Sama seperti perintah \feynmandiagram di atas, setiap edge juga mengambil argumen opsional yang ditentukan dalam tanda kurung siku \[]. Dalam kasus ini, kita ingin edge-edge ini memiliki panah untuk menunjukkan bahwa mereka adalah garis fermion, jadi kita menambahkan gaya fermion ke sana. Seperti yang akan Anda lihat nanti, argumen opsional juga dapat diberikan kepada vertex dengan cara yang persis sama.

**Baris 3**

Edge ini menghubungkan vertex a dan b dengan gaya edge sebagai foton. Karena sudah ada vertex bernama a, algoritme akan menghubungkannya ke vertex baru bernama b.

**Baris 4**

Baris ini mirip dengan baris 2 dan memperkenalkan dua vertex baru, f1 dan f2. Baris ini menggunakan kembali vertex b yang telah diberi nama sebelumnya.

**Baris 5**

Selesaikan deklarasi diagram Feynman. Titik koma akhir (;) itu penting.

Nama yang diberikan kepada setiap vertex dalam graph tidaklah penting. Jadi dalam contoh ini, `i1`, `i2` menandakan partikel awal; `f1`, `f2` menandakan partikel akhir; dan `a`, `b` adalah titik akhir propagator. Satu-satunya aspek penting adalah bahwa apa yang kita sebut `a` di baris 2 juga `a` di baris 3 sehingga algoritme yang mendasarinya memperlakukan keduanya sebagai vertex yang sama.

Urutan vertex dideklarasikan tidak masalah karena algoritme bawaan akan menyusun ulang semuanya. Misalnya, seseorang mungkin lebih suka menggambar garis fermion sekaligus, seperti pada contoh berikut (perhatikan juga bahwa cara kita menamai vertex sama sekali berbeda):

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

![Photon-scattering.png](/files/5c35a89307905ee6413351ef7ca5f5df815f6baf)

Sebagai catatan akhir, perhitungan di mana vertex harus ditempatkan biasanya dilakukan melalui algoritme yang ditulis dalam Lua. Akibatnya, LuaTeX diperlukan untuk memanfaatkan algoritme ini. Jika LuaTeX tidak digunakan, Ti*k*Z-Feynman akan menggunakan algoritme yang lebih mendasar secara default dan akan memberi peringatan kepada pengguna.

### Menambahkan Gaya

Sejauh ini, contoh-contoh hanya menggunakan gaya `photon` dan `fermion` . Paket Ti*k*Z-Feynman dilengkapi dengan cukup banyak gaya tambahan untuk edge dan vertex yang semuanya didokumentasikan di [dokumentasi paket](http://mirrors.ctan.org/graphics/pgf/contrib/tikz-feynman/tikz-feynman.pdf). Misalnya, panah momentum dapat ditambahkan dengan `momentum=<text>`, dan dalam kasus vertex akhir, partikel dapat diberi label dengan `particle=<text>`. Untuk mendemonstrasikan penggunaannya, kita ambil diagram umum *s*-channel dari sebelumnya dan mengubahnya menjadi pasangan elektron-positron yang beranihilasi menjadi muon:

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

Selain kunci gaya yang didokumentasikan di bawah ini, kunci gaya dari Ti*k*Z juga dapat digunakan:

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

Untuk daftar semua gaya beragam yang disediakan Ti*k*Z, lihatlah [Ti*k*manual TikZ](http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf); manual ini sangat lengkap dan menyediakan banyak contoh penggunaan.

### Saat Algoritme Tidak Cukup

Secara bawaan,  `\feynmandiagram` dan `\diagram` perintah menggunakan `tata letak pegas` algoritme untuk menempatkan semua edge. Algoritme `tata letak pegas` berusaha menyebarkan diagram sebanyak mungkin yang—untuk sebagian besar diagram yang lebih sederhana—memberikan hasil yang memuaskan; namun, dalam beberapa kasus, ini tidak menghasilkan diagram terbaik dan bagian ini akan membahas alternatif. Ada tiga alternatif utama:

**Tambahkan edge tak terlihat**

Meskipun masih menggunakan algoritme bawaan, dimungkinkan untuk memaksa vertex tertentu menjadi lebih berdekatan dengan menambahkan edge tambahan dan membuatnya tak terlihat melalui draw=none. Algoritme akan memperlakukan edge tambahan ini dengan cara yang sama, tetapi pada akhirnya edge tersebut tidak digambar;

**Gunakan algoritme yang berbeda**

Dalam beberapa keadaan, algoritme lain mungkin lebih cocok. Beberapa algoritme tata letak graph lainnya tercantum dalam dokumentasi paket, dan daftar lengkap semua algoritme beserta parameternya diberikan dalam manual TikZ;

**Penempatan manual**

Sebagai upaya terakhir, diagram yang sangat rumit atau tidak biasa akan mengharuskan setiap vertex ditempatkan secara manual.

#### Edge Tak Terlihat

Algoritme yang mendasarinya memperlakukan semua edge dengan cara yang persis sama saat menghitung di mana menempatkan semua vertex, dan penggambaran diagram yang sebenarnya (setelah penempatannya dihitung) dilakukan secara terpisah. Akibatnya, dimungkinkan untuk menambahkan edge ke algoritme, tetapi mencegahnya digambar dengan menambahkan `draw=none` ke gaya edge.

Ini sangat berguna jika Anda ingin memastikan bahwa keadaan awal atau akhir tetap lebih berdekatan daripada yang seharusnya, seperti yang diilustrasikan pada contoh berikut (perhatikan bahwa `opacity=0.2` digunakan sebagai pengganti `draw=none` untuk menunjukkan dengan tepat di mana edge tersebut berada).

```
% Tidak ada edge tak terlihat agar kedua foton tetap bersama
\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/d55f534e4cb705754e1ce8983999a283d9793057)

```
% Edge tak terlihat memastikan foton sejajar
\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/e4ca61b49cea60d4fdfe503865e3d711c2a6293e)

#### Algoritme Alternatif

Pustaka penggambaran graph dari Ti*k*Z memiliki beberapa algoritme berbeda untuk menempatkan vertex. Secara default, `\diagram` dan `\feynmandiagram` gunakan `tata letak pegas` algoritme untuk menempatkan vertex. Algoritme `tata letak pegas` berusaha menyebarkan semuanya sebanyak mungkin yang, dalam sebagian besar kasus, menghasilkan diagram yang bagus; namun, ada kasus tertentu ketika ini tidak bekerja. Contoh bagus ketika `tata letak pegas` tidak bekerja adalah peluruhan ketika kita memiliki partikel yang meluruh di kiri dan semua partikel turunannya di kanan.

```
% Menggunakan tata letak pegas bawaan
\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/779c14c82197e6d22e10a86f9d5c6e9edcc7559b)

```
% Menggunakan tata letak berlapis
\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/8bd33ce92daab31149318d23069ae2cea3064387)

Anda mungkin memperhatikan bahwa selain menambahkan gaya `tata letak berlapis` ke `\feynmandiagram`, kita juga mengubah urutan kita menentukan vertex. Ini karena `tata letak berlapis` algoritme memang memperhatikan urutan vertex dideklarasikan (tidak seperti default `tata letak pegas`); akibatnya, `c--f2, c--f3` memiliki arti berbeda dari `f2--c--f3`. Dalam kasus pertama, `f2` dan `f3` keduanya berada pada lapisan di bawah `c` sesuai keinginan; sedangkan kasus kedua menempatkan `f2` pada lapisan di atas `c` (yaitu, lapisan yang sama tempat W-boson berasal).

#### Penempatan Manual

Dalam diagram yang lebih rumit, sangat mungkin tidak ada algoritme yang bekerja, tidak peduli berapa banyak edge tak terlihat yang ditambahkan. Dalam kasus seperti itu, vertex harus ditempatkan secara manual. Ti*k*Z-Feynman memungkinkan vertex ditempatkan secara manual dengan menggunakan `\vertex` perintah.

Fitur `\vertex` perintah ini hanya tersedia di dalam lingkungan `feynman` yang sendiri hanya tersedia di dalam sebuah `tikzpicture`). Lingkungan `feynman` ini memuat semua gaya yang relevan dari Ti*k*Z-Feynman dan mendeklarasikan perintah tambahan khusus Ti*k*Z-Feynman seperti `\vertex` dan `\diagram`. Ini terinspirasi dari PGFPlots dan penggunaan `only marks` lingkungan.

Fitur `\vertex` perintah ini sangat mirip dengan `\node` dari Ti*k*di TikZ, dengan pengecualian penting bahwa isi vertex bersifat opsional; artinya, Anda tidak perlu memiliki `{<text>}` di akhir. Dalam kasus ketika `{}` ditentukan, vertex secara otomatis diberi gaya `particle` dan jika tidak, ia adalah vertex biasa (berukuran nol).

Untuk menentukan ke mana vertex pergi, dimungkinkan untuk memberikan koordinat eksplisit, meskipun mungkin paling mudah menggunakan `positioning` pustaka dari Ti*k*Z yang memungkinkan vertex ditempatkan relatif terhadap vertex yang sudah ada. Dengan menggunakan penempatan relatif, dimungkinkan untuk dengan mudah menyetel satu bagian graph dan semuanya akan menyesuaikan secara sesuai—alternatifnya adalah menyesuaikan secara manual koordinat setiap vertex yang terpengaruh.

Akhirnya, setelah semua vertex telah ditentukan, `\diagram*` perintah digunakan untuk menentukan semua edge. Ini bekerja hampir sama seperti `\diagram` (dan juga `\feynmandiagram`), kecuali bahwa ia menggunakan algoritme yang sangat dasar untuk menempatkan node baru dan memungkinkan node yang sudah ada (bernama) disertakan. Untuk merujuk pada node yang sudah ada, node harus diberikan dalam tanda kurung.

Seluruh proses menentukan node lalu menggambar edge di antaranya ditunjukkan di bawah untuk peluruhan muon:

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

## Paket lain untuk menggambar diagram Feynman

Ada beberapa alternatif untuk paket TikZ-Feynman:

* [`feynmf`](https://ctan.org/pkg/feynmf): menghasilkan grafik bitmap melalui [MetaFont](https://ctan.org/pkg/metafont)
* [`feynmp`](https://ctan.org/pkg/feynmf) (disertakan bersama `feynmf`) menghasilkan grafik vektor melalui [MetaPost](https://ctan.org/pkg/metapost)
* [`feynmp-auto`](https://ctan.org/pkg/feynmp-auto?lang=en): diturunkan dari `feynmp`

Fitur `feynmp-auto` paket pada dasarnya merupakan perluasan dari paket `feynmp` yang dirancang untuk mengotomatisasi konversi kode PostScript MetaPost menjadi data PDF untuk digunakan dalam pdfTeX, LuaTeX, dan XeTeX. Contoh-contoh berikut semuanya menggunakan `feynmp-auto`.

### Pendahuluan

Fitur `feynmf`, `feynmp` dan `feynmp-auto` paket-paket ini memungkinkan Anda dengan mudah menggambar diagram Feynman dengan menentukan vertex, partikel, dan labelnya, lalu secara otomatis melakukan tata letak untuk menggambar diagram Anda.

#### Gambaran umum penggunaan paket berbasis feynmf

Untuk membuat diagram Feynman, Anda perlu:

1. membuat sebuah `fmfile` lingkungan untuk memuat satu atau beberapa diagram, masing-masing diapit dalam lingkungan `fmfgraph` atau `fmfgraph*` —perbedaan antara bentuk dengan bintang dan tanpa bintang adalah [dijelaskan di bawah](#fmfgraph-and-fmfgraph);
2. menggunakan setiap `fmfgraph` atau `fmfgraph*` lingkungan untuk memuat instruksi menggambar yang diperlukan untuk membuat diagram Feynman individual.

Fitur `fmfile` lingkungan berbentuk sebagai berikut

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

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

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

\end{fmffile}
```

di mana `file-name` adalah nama file yang akan digunakan untuk memuat deskripsi kode MetaPost dari gambar-gambar individual yang didefinisikan di dalamnya `fmfgraph`/`fmfgraph*` environments.

Setiap gambar berbentuk

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

% instruksi menggambar

\end{fmfgraph}
```

atau, untuk versi berbintang (`fmfgraph*`)

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

% instruksi menggambar

\end{fmfgraph*}
```

di mana `(width,height)` menentukan ukuran diagram yang dinyatakan dalam satuan [`\unitlength`](#note-on-unitlength).

Kode MetaPost di `file-name` diproses untuk membuat grafik yang mewakili diagram Feynman Anda. Sebuah `fmfile` lingkungan dapat memuat hingga 256 gambar individual.

#### fmfgraph dan fmfgraph\*

* `fmfgraph`lingkungan ini berisi instruksi menggambar (deskripsi) dari satu diagram Feynman. Ini akan ditempatkan *di lokasi lingkungan*. Lingkungan ini tidak mendukung label, gunakan `fmfgraph*` untuk menyertakan label dalam diagram Anda.
* `fmfgraph*` sama seperti `fmfgraph`, tetapi diapit dalam sebuah [`picture` lingkungan](/latex/id/gambar-dan-tabel/04-picture-environment.md) dengan ukuran yang sama. Lingkungan ini mendukung penggunaan label LaTeX.

### Sebuah contoh

Mari mulai dengan contoh singkat:

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

[Buka contoh ini di 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)

Contoh ini menghasilkan keluaran berikut:

![](/files/84005b8ff28090d0f3d29a12ac0bbd6776ff5df8)

Dalam contoh ini `fmfgraph` lingkungan mengatur lebar dan tinggi gambar masing-masing menjadi 120 dan 80:

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

menggunakan satuan yang ditentukan oleh nilai `\unitlength`yang memiliki nilai default 1pt; akibatnya, diagram ini dialokasikan lebar 120pt dan tinggi 80pt.

#### Catatan tentang \unitlength

Karena `\unitlength` adalah dimensi LaTeX yang nilai nya dapat Anda ubah menggunakan perintah `\setlength` misalnya, untuk mendefinisikan lebar dan tinggi gambar dalam satuan cm, Anda dapat menulis:

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

Dengan meniru contoh di atas, diagram di bawah kini memiliki lebar `8cm` dan tinggi `5cm`:

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

[Buka contoh ini di 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)

Contoh ini kini menghasilkan diagram yang lebih besar:

![](/files/3ed18346cae7e915804fb668d3c126b3a52a2e37)

### Vertex

Hal pertama yang perlu Anda lakukan adalah menentukan vertex eksternal Anda, dan di mana mereka harus diposisikan. Anda dapat menamai vertex Anda sesuka Anda, dan mengatakan di mana mereka harus diposisikan dengan perintah `\fmfleft`, `\fmfright`, `\fmftop`, `\fmfbottom`.

Seperti digunakan pada contoh di atas:

```latex
% Membuat dua vertex di kiri bernama i1 dan i2
\fmfleft{i1,i2}

% Membuat dua vertex di kanan bernama o1 dan o2
\fmfright{o1,o2}
```

Anda dapat menghubungkan vertex dengan `\fmf`, yang akan membuat vertex baru jika Anda memasukkan nama yang belum dibuat sebelumnya. Juga seperti digunakan pada contoh di atas:

```latex
% Akan membuat garis fermion antara i1 dan
% v1 yang baru dibuat, dan antara v1 dan o1.
\fmf{fermion}{i1,v1,o1}

% Akan membuat garis foton antara v1 dan v2 yang baru dibuat
\fmf{photon}{v1,v2}
```

### Label

Sebagaimana [disebutkan di atas](#fmfgraph-and-fmfgraph), untuk menggunakan label, gambar harus dibuat menggunakan bentuk `fmfgraph*` lingkungan gambar.

Gunakan `\fmflabel` perintah untuk menempatkan label pada vertex:

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

di mana:

* `konten label` adalah label yang diterapkan pada simpul yang dipilih;
* `simpul diagram` adalah nama simpul yang akan diberi label.

Perhatikan bahwa `konten label` dapat mencakup materi matematika.

Kita dapat menggunakan kembali contoh sebelumnya untuk menambahkan label berikut

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

yang menghasilkan diagram yang diperbarui seperti ditunjukkan di bawah ini:

```latex
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{first-diagram}
 \begin{fmfgraph*}(120,80) %PERHATIKAN lingkungan fmfgraph*
   \fmfleft{i1,i2}
   \fmfright{o1,o2}
   \fmf{fermion}{i1,v1,o1}
   \fmf{fermion}{i2,v2,o2}
   \fmf{photon}{v1,v2}
   % Tambahkan label kita
   \fmflabel{$v_1$}{v1}
   \fmflabel{$v_2$}{v2}
 \end{fmfgraph*}
\end{fmffile}
\end{document}
```

[Buka contoh ini di 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)

Contoh ini menghasilkan diagram Feynman yang berisi label:

![](/files/135c5b70e925f002c72840a57879cdc885eb5dee)

### Beberapa contoh yang lebih kompleks

Contoh-contoh berikut yang lebih lanjutan menggunakan fitur dari `feynmp` yang belum kita bahas: lihat [`feynmp` (`feynmf`) dokumentasi](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/feynmf/fmfman.pdf)—yang juga berisi banyak contoh tambahan. Diagram-diagram ini awalnya diterbitkan dalam templat Overleaf yang berisi kode LaTeX yang disalin dari halaman web CERN yang kini hanya dapat diakses melalui [Wayback Machine](https://web.archive.org/web/20141015023615/http://szczypka.web.cern.ch:80/szczypka/guides/latex/feynmp.html)—halaman itu berisi contoh tambahan yang mungkin ingin Anda coba.

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

[Buka contoh ini di 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)

Contoh ini menghasilkan diagram berikut:

![](/files/c48c86afe3cc93661d7987bcb7dac62704994d17)

#### Contoh 2

```latex
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{complex-b}
\begin{fmfgraph*}(200,200)
    % simpul bawah dan atas
    \fmfstraight
    \fmfleft{i0,i1,i2,id1,id2,i3,i4,i5}
    \fmfright{o0,o1,o2,od1,od2,o3,o4,o5}
    % proton masuk ke simpul gluon
    \fmf{fermion,label=$d$}{i1,o1}
    % tegangan menggeser simpul ke satu sisi
    \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 memusatkan simpul 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}
```

[Buka contoh ini di 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)

Contoh ini menghasilkan diagram berikut:

![](/files/3f38a0888766f39b07102344a1db01d7491c2da6)

#### Contoh 3

```latex
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{complex-c}
\begin{fmfgraph*}(200,200)
    %simpul bawah dan atas
    \fmfbottom{P1,P2}
    \fmftop{P1',b,bbar,P2'}
    %proton masuk ke simpul gluon
    \fmf{fermion,tension=2,lab=$P_1$}{P1,g1}
    \fmf{fermion,tension=2,lab=$P_2$}{P2,g2}
    %blob pada simpul gluon, 0.16w adalah ukuran blob
    \fmfblob{.16w}{g1,g2}
    %gluon dari P1 ke simpul1
    \fmf{gluon,lab.side=right,lab=$x_{1}P_{1}$}{g1,v1}
    %gluon dari P2 ke simpul2 - perhatikan urutan berubah!
    \fmf{gluon,lab.side=right,lab=$x_{2}P_{2}$}{v2,g2}
    %lingkaran kuark ada di sini
    \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}
    %proton keluar
    \fmf{fermion}{g1,P1'}
    \fmf{fermion}{g2,P2'}
    %bekukan semuanya pada tempatnya
    \fmffreeze
    \renewcommand{\P}[3]{\fmfi{plain}{%
        vpath(__#1,__#2) shifted (thick*(#3))}}
    %garis pada P1
    \P{P1}{g1}{2,0}
    \P{P1}{g1}{-2,1}
    %garis pada p2
    \P{P2}{g2}{2,1}
    \P{P2}{g2}{-2,0}
    %garis pada P1'
    \P{g1}{P1'}{-2,-1}
    \P{g1}{P1'}{2,0}
    %garis pada P2'
    \P{g2}{P2'}{-2,0}
    \P{g2}{P2'}{2,-1}
\end{fmfgraph*}
\end{fmffile}
\end{document}
```

[Buka contoh ini di 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)

Contoh ini menghasilkan diagram berikut:

![](/files/1dfc33c73d71224ff70bf93a03f051edf6aa2b79)

### Gaya garis

Kita telah melihat `photon` dan `fermion` gaya garis di atas, tetapi `feynmp` paket mendukung banyak lagi.

| Tampilan                                                                             | Nama                                    |
| ------------------------------------------------------------------------------------ | --------------------------------------- |
| ![Feynmf-line-curly.png](/files/9d06ad4a8af900dd3757ac19f78d0fce4e45d392)            | gluon, curly                            |
| ![Feynmf-line-dbl-curly.png](/files/532091d6d416061a4566422510c356239930f44c)        | dbl\_curly                              |
| ![Feynmf-line-dashes.png](/files/29a28139aa1f583dfef1a667e854193402c7350c)           | dashes                                  |
| ![Feynmf-line-dashed-arrow.png](/files/baef121be8aff9753b9644f9ca46971ad6e5a7d0)     | scalar, dashes\_arrow                   |
| ![Feynmf-line-dbl-dashes.png](/files/c1e72fadc9e0607298c8c2af30300a9847aa2e65)       | dbl\_dashes                             |
| ![Feynmf-line-dbl-dashes-arrow.png](/files/5815ae983f2a837785763b55be25252c484e68bb) | dbl\_dashes\_arrow                      |
| ![Feynmf-line-dots.png](/files/7d6d4a0c2f858a6aae14ab2140da69192141bd54)             | dots                                    |
| ![Feynmf-line-dots-arrow.png](/files/2e63cc72ec06667f1752767b3bf375f8a1ac288e)       | ghost, dots\_arrow                      |
| ![Feynmf-line-dbl-dots.png](/files/e72b3a70b5fd186eeed1e25a702faec3fa329c02)         | dbl\_dots                               |
| ![Feynmf-line-dbl-dots-arrow.png](/files/8b9558a7bc207db7e68aa1f211be918eae61db8a)   | dbl\_dots\_arrow                        |
|                                                                                      | phantom                                 |
| ![Feynmf-line-phantom-arrow.png](/files/d193d8a9c0dfece2ac5964c6518218dc401cb27f)    | phantom\_arrow                          |
| ![Feynmf-line-plain.png](/files/eefcb67465aab7813ff5fdbf9c6a360dcc98cf27)            | vanilla, plain                          |
| ![Feynmf-line-plain-arrow.png](/files/ffae4d6809ee6cea6945abb43e0fbaf245f05d32)      | fermion, electron, quark, plain\_arrow  |
| ![Feynmf-line-dbl-plain.png](/files/b5de371176df49284e08ebb5b2c2fafba36d1efa)        | double, dbl\_plain                      |
| ![Feynmf-line-dbl-plain-arrow.png](/files/d6684d52c6ad1bd961cca51a3580d69623120ff7)  | double\_arrow, heavy, dbl\_plain\_arrow |
| ![Feynmf-line-wiggly.png](/files/7e10081955ba204463d9085a0af5f83909edf80d)           | boson, photon, wiggly                   |
| ![Feynmf-line-dbl-wiggly.png](/files/41321ab504ac703be71e7bf264217c1940f72ae5)       | dbl\_wiggly                             |
| ![Feynmf-line-zigzag.png](/files/66afdc4e8c0cfa36fe0b197a5ef7a4c8dbf705bd)           | zigzag                                  |
| ![Feynmf-line-dbl-zigzag.png](/files/d2abc6972d1efeea9e2fa144fd5c074affb611bb)       | dbl\_zigzag                             |

## Bacaan lebih lanjut

Untuk informasi lebih lanjut lihat:

* [Rumus kimia](/latex/id/bidang-khusus/02-chemistry-formulae.md)
* [Diagram orbital molekul](/latex/id/bidang-khusus/04-molecular-orbital-diagrams.md)
* [Paket TikZ](/latex/id/gambar-dan-tabel/05-tikz-package.md)
* [Menggambar Diagram Langsung di LaTeX](/latex/id/gambar-dan-tabel/04-picture-environment.md)
* [Menyisipkan Gambar](/latex/id/topik-lainnya/27-inserting-images.md)
* [Daftar huruf Yunani dan simbol matematika](/latex/id/matematika/11-list-of-greek-letters-and-math-symbols.md)
* [Fitur **feynmf** dokumentasi paket](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/id/bidang-khusus/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.
