> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# {Minted}

Artikel ini menunjukkan cara menggunakan [paket `minted`](https://ctan.org/pkg/minted?lang=en) untuk memformat dan menyorot kode sumber bahasa pemrograman di dalam dokumen LaTeX, dimulai dengan sebuah contoh:

```latex theme={null}
\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{minted}{python}
import numpy as np
    
def incmatrix(genl1,genl2):
    m = len(genl1)
    n = len(genl2)
    M = None #to become the incidence matrix
    VT = np.zeros((n*m,1), int)  #dummy variable
    
    #compute the bitwise xor matrix
    M1 = bitxormatrix(genl1)
    M2 = np.triu(bitxormatrix(genl2),1) 

    for i in range(m-1):
        for j in range(i+1, m):
            [r,c] = np.where(M2 == M1[i,j])
            for k in range(len(r)):
                VT[(i)*n + r[k]] = 1;
                VT[(i)*n + c[k]] = 1;
                VT[(j)*n + r[k]] = 1;
                VT[(j)*n + c[k]] = 1;
                
                if M is None:
                    M = np.copy(VT)
                else:
                    M = np.concatenate((M, VT), 1)
                
                VT = np.zeros((n*m,1), int)
    
    return M
\end{minted}
\end{document}
```

Contoh ini menghasilkan output berikut:

<p style={{ textAlign: "center" }}>
  <img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/f0/OLV2minted.png" alt="Contoh yang menampilkan output paket minted" />
</p>

Ada dua perintah penting di sini. Di preamble, paket diimpor dengan menuliskan

```latex theme={null}
\usepackage{minted}
```

kemudian tag `\begin{minted}{python}` dan `\end{minted}` membatasi sebuah lingkungan yang mencetak teks secara verbatim dalam font monospace sekaligus memberi warna pada komentar, kata kunci, dan fungsi. Parameter `python` adalah bahasa pemrograman yang digunakan untuk menulis kode sumber. `minted` mendukung lebih dari 150 bahasa pemrograman dan markup serta file konfigurasi; lihat [panduan referensi](https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted#Reference_guide) untuk daftar bahasa yang didukung.

**Catatan**: Agar `minted` dapat berfungsi dengan distribusi LaTeX *lokal* Anda, sebuah program tambahan bernama [Pygments](https://pygments.org/) harus diinstal. [Overleaf](https://www.overleaf.com/) dapat menghindarkan Anda dari repotnya menginstal program tersebut dan menjalankan perintah khusus untuk mengompilasi dokumen Anda — di Overleaf, dokumen yang menggunakan `minted` akan langsung berfungsi "out of the box".

### Penggunaan dasar

Seperti yang ditunjukkan dalam contoh berikut, lingkungan `minted` dapat dikonfigurasi untuk mengubah tampilan visual kode yang ditata. Di sini, lingkungan `minted` menggunakan beberapa parameter yang dipisahkan koma dalam bentuk `key=value`:

```latex theme={null}
\documentclass{article}
\usepackage{minted}
\usepackage{xcolor} % to access the named colour LightGray
\definecolor{LightGray}{gray}{0.9}
\begin{document}
\begin{minted}
[
frame=lines,
framesep=2mm,
baselinestretch=1.2,
bgcolor=LightGray,
fontsize=\footnotesize,
linenos
]
{python}
import numpy as np
    
def incmatrix(genl1,genl2):
    m = len(genl1)
    n = len(genl2)
    M = None #to become the incidence matrix
    VT = np.zeros((n*m,1), int)  #dummy variable
    
    #compute the bitwise xor matrix
    M1 = bitxormatrix(genl1)
    M2 = np.triu(bitxormatrix(genl2),1) 

    for i in range(m-1):
        for j in range(i+1, m):
            [r,c] = np.where(M2 == M1[i,j])
            for k in range(len(r)):
                VT[(i)*n + r[k]] = 1;
                VT[(i)*n + c[k]] = 1;
                VT[(j)*n + r[k]] = 1;
                VT[(j)*n + c[k]] = 1;
                
                if M is None:
                    M = np.copy(VT)
                else:
                    M = np.concatenate((M, VT), 1)
                
                VT = np.zeros((n*m,1), int)
    
    return M
\end{minted}
\end{document}
```

Contoh ini menghasilkan output berikut:

<p style={{ textAlign: "center" }}>
  <img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/ff/OLV2minted2.png" alt="Contoh penerapan format pada kode yang ditata oleh paket minted" />
</p>

Parameter yang digunakan dalam contoh ini adalah:

* `frame=lines`: menggambar dua garis, satu di atas dan satu di bawah kode untuk membingkainya. Nilai lain yang mungkin adalah `leftline`, `topline`, `bottomline`, dan `single`.
* `framesep=2mm`: jarak bingkai diatur ke 2mm. [Satuan panjang](https://www.overleaf.com/learn/latex/Lengths_in_LaTeX) lain dapat digunakan.
* `baselinestretch=1.2`: spasi baris kode diatur ke 1.2.
* `bgcolor=LightGray`: warna latar belakang diatur ke `LightGray`. Anda perlu mengimpor paket `xcolor` agar ini berfungsi. Lihat [Menggunakan warna di LaTeX](https://www.overleaf.com/learn/latex/Using_colours_in_LaTeX) untuk mempelajari lebih lanjut tentang manipulasi warna.
* `fontsize=\footnotesize`: ukuran font diatur ke `footnotesize`. [Ukuran font](https://www.overleaf.com/learn/latex/Font_sizes_and_kinds%23Reference_guide) lain apa pun dapat diatur.
* `linenos`: mengaktifkan nomor baris.

Opsi lain yang mungkin berguna adalah:

* `mathescape`: mengaktifkan mode matematika di dalam komentar kode.
* `rulecolor`: mengubah warna bingkai.
* `showspaces`: mengaktifkan karakter khusus untuk membuat spasi terlihat.

### Menyertakan kode dari file

Kode biasanya disimpan dalam file sumber, sehingga perintah yang secara otomatis mengimpor kode dari file sangatlah praktis, seperti yang ditunjukkan dalam contoh berikut:

```latex theme={null}
\documentclass{article}
\usepackage{minted}
\title{Importing files using minted}
\begin{document}
The next code will be directly imported from a file:

\inputminted{octave}{BitXorMatrix.m}
\end{document}
```

Contoh ini menghasilkan output berikut:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/c/c8/OLV2mintedinput.png" alt="Menggunakan minted untuk mengimpor file kode" height="392" width="600" />

Perintah `\inputminted{octave}{BitXorMatrix.m}` mengimpor kode dari file `BitXorMatrix.m`; parameter `octave` memberi tahu LaTeX bahasa pemrograman kode tersebut. Perintah ini dapat menerima dua parameter tambahan untuk mengimpor hanya sebagian file; misalnya, untuk mengimpor kode dari baris 2 hingga baris 12, perintahnya menjadi:

```latex theme={null}
\inputminted[firstline=2, lastline=12]{octave}{BitXorMatrix.m}
```

### Kode satu baris

Jika Anda hanya perlu memasukkan satu baris kode, perintah `\mint`, yang sintaksnya disajikan dalam contoh berikut, dapat melakukannya.

```latex wrap theme={null}
One-line code formatting also works with \texttt{minted}. For example, a small fragment of HTML like this:
\mint{html}|<h2>Something <b>here</b></h2>|
\noindent can be formatted correctly.
```

Contoh ini menghasilkan output berikut:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/d/d9/OLV2mintedHTML.png" alt="Contoh kode satu baris dengan minted" height="112" width="600" />

Parameter di antara kurung kurawal menentukan bahasa pemrograman (dalam hal ini bahasa markup `html`), sedangkan teks yang akan diformat dibatasi oleh karakter '|'.

### Masalah dengan Overleaf self-host

Jika Anda menggunakan sandbox compile dan juga server overleaf untuk men-deploy overleaf, minted mungkin tidak berfungsi dengan baik. Untuk informasi detail, Anda dapat melihat: [issues/131](https://github.com/yu-i-i/overleaf-cep/issues/131). Anda perlu mengaktifkan profil instruksi arm dan beberapa system call agar minted dapat berfungsi.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.