> 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/texlive/el/sxetika-me-ta-paketa/minted.md).

# {Minted}

Αυτό το άρθρο δείχνει πώς να χρησιμοποιήσετε το [`minted` πακέτο](https://ctan.org/pkg/minted?lang=en) για να μορφοποιήσετε και να επισημάνετε τον πηγαίο κώδικα μιας γλώσσας προγραμματισμού μέσα σε ένα έγγραφο LaTeX, ξεκινώντας με ένα παράδειγμα:

```latex
\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 #για να γίνει ο πίνακας πρόσπτωσης
    VT = np.zeros((n*m,1), int)  #προσωρινή μεταβλητή
    
    #υπολογίστε τον πίνακα XOR κατά bit
    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}
```

Αυτό το παράδειγμα παράγει το ακόλουθο αποτέλεσμα:

<p align="center"><img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/f0/OLV2minted.png" alt="Example displaying the output of the minted package"></p>

Υπάρχουν δύο σημαντικές εντολές εδώ. Στο προοίμιο, το πακέτο εισάγεται γράφοντας

```latex
\usepackage{minted}
```

έπειτα οι ετικέτες `\begin{minted}{python}` και `\end{minted}` οριοθετούν ένα περιβάλλον που εμφανίζει το κείμενο κατά λέξη σε μονοπλάτους γραμματοσειρές και εφαρμόζει επίσης χρώμα στα σχόλια, τις λέξεις-κλειδιά και τις συναρτήσεις. Η παράμετρος `python` είναι η γλώσσα προγραμματισμού στην οποία είναι γραμμένος ο πηγαίος κώδικας. `minted` υποστηρίζει πάνω από 150 γλώσσες προγραμματισμού και σήμανσης, καθώς και αρχεία ρυθμίσεων· δείτε τον [οδηγό αναφοράς](https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted#Reference_guide) για μια λίστα με τις υποστηριζόμενες γλώσσες.

**Σημείωση**: Για `minted` να λειτουργήσει με τη *τοπική* διανομή LaTeX σας, απαιτείται ένα επιπλέον πρόγραμμα με το όνομα [Pygments](https://pygments.org/) πρέπει να εγκατασταθεί. [Το Overleaf](https://www.overleaf.com/) μπορεί να σας γλιτώσει από την ταλαιπωρία της εγκατάστασής του και της εκτέλεσης ειδικών εντολών για τη μεταγλώττιση του εγγράφου σας — στο Overleaf, τα έγγραφα που χρησιμοποιούν `minted` θα λειτουργούν «αμέσως».

### Βασική χρήση

Όπως φαίνεται στο ακόλουθο παράδειγμα, το `minted` περιβάλλον μπορεί να ρυθμιστεί ώστε να τροποποιήσει την οπτική παρουσίαση του στοιχειοθετημένου κώδικα. Εδώ, το `minted` περιβάλλον χρησιμοποιεί αρκετές παραμέτρους χωρισμένες με κόμματα της μορφής `κλειδί=τιμή`:

```latex
\documentclass{article}
\usepackage{minted}
\usepackage{xcolor} % για πρόσβαση στο ονομασμένο χρώμα 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 #για να γίνει ο πίνακας πρόσπτωσης
    VT = np.zeros((n*m,1), int)  #προσωρινή μεταβλητή
    
    #υπολογίστε τον πίνακα XOR κατά bit
    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}
```

Αυτό το παράδειγμα παράγει το ακόλουθο αποτέλεσμα:

<p align="center"><img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/ff/OLV2minted2.png" alt="Example applying formatting to typeset code produced by the minted package"></p>

Οι παράμετροι που χρησιμοποιούνται σε αυτό το παράδειγμα είναι:

* `frame=lines`: σχεδιάζει δύο γραμμές, μία επάνω και μία στο κάτω μέρος του κώδικα για να τον πλαισιώσει. Άλλες δυνατές τιμές είναι `leftline`, `topline`, `bottomline` και `single`.
* `framesep=2mm`: η απόσταση του πλαισίου ορίζεται σε 2mm. Άλλες [μονάδες μήκους](https://www.overleaf.com/learn/latex/Lengths_in_LaTeX) μπορούν να χρησιμοποιηθούν.
* `baselinestretch=1.2`: το διάστιχο του κώδικα ορίζεται σε 1,2.
* `bgcolor=LightGray`: το χρώμα φόντου ορίζεται σε `LightGray`. Πρέπει να εισαγάγετε το πακέτο `xcolor` για να λειτουργήσει αυτό. Δείτε [Χρήση χρωμάτων στο LaTeX](https://www.overleaf.com/learn/latex/Using_colours_in_LaTeX) για να μάθετε περισσότερα σχετικά με τον χειρισμό χρωμάτων.
* `fontsize=\footnotesize`: το μέγεθος γραμματοσειράς ορίζεται σε `footnotesize`. Οποιοδήποτε άλλο [μέγεθος γραμματοσειράς](https://www.overleaf.com/learn/latex/Font_sizes_and_kinds%23Reference_guide) μπορεί να οριστεί.
* `linenos`: ενεργοποιεί την αρίθμηση γραμμών.

Άλλες επιλογές που μπορεί να είναι χρήσιμες είναι:

* `mathescape`: ενεργοποιεί τη μαθηματική λειτουργία στα σχόλια του κώδικα.
* `rulecolor`: αλλάζει το χρώμα του πλαισίου.
* `showspaces`: ενεργοποιεί έναν ειδικό χαρακτήρα για να γίνονται ορατά τα κενά.

### Συμπερίληψη κώδικα από αρχείο

Ο κώδικας συνήθως αποθηκεύεται σε ένα αρχείο πηγαίου κώδικα, επομένως μια εντολή που εισάγει αυτόματα κώδικα από ένα αρχείο είναι πολύ βολική, όπως φαίνεται στο ακόλουθο παράδειγμα:

```latex
\documentclass{article}
\usepackage{minted}
\title{Εισαγωγή αρχείων με χρήση του minted}
\begin{document}
Ο επόμενος κώδικας θα εισαχθεί απευθείας από ένα αρχείο:

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

Αυτό το παράδειγμα παράγει το ακόλουθο αποτέλεσμα:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/c/c8/OLV2mintedinput.png" alt="Χρήση του minted για εισαγωγή αρχείου κώδικα" height="392" width="600">

Η εντολή `\inputminted{octave}{BitXorMatrix.m}` εισάγει τον κώδικα από το αρχείο `BitXorMatrix.m`, η παράμετρος `octave` λέει στο LaTeX τη γλώσσα προγραμματισμού του κώδικα. Αυτή η εντολή μπορεί να δεχτεί δύο επιπλέον παραμέτρους για να εισαγάγει μόνο μέρος του αρχείου· για παράδειγμα, για να εισαχθεί κώδικας από τη γραμμή 2 έως τη γραμμή 12, η εντολή γίνεται:

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

### Κώδικας μίας γραμμής

Αν χρειάζεται να εισαγάγετε μόνο μία γραμμή κώδικα, η εντολή `\mint`, της οποίας η σύνταξη παρουσιάζεται στο επόμενο παράδειγμα, θα κάνει τη δουλειά.

{% code overflow="wrap" %}

```latex
Η μορφοποίηση κώδικα μίας γραμμής λειτουργεί επίσης με το \texttt{minted}. Για παράδειγμα, ένα μικρό απόσπασμα HTML όπως αυτό:
\mint{html}|<h2>Something <b>here</b></h2>|
μπορεί να μορφοποιηθεί σωστά.
```

{% endcode %}

Αυτό το παράδειγμα παράγει το ακόλουθο αποτέλεσμα:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/d/d9/OLV2mintedHTML.png" alt="Παράδειγμα κώδικα μίας γραμμής με το minted" height="112" width="600">

Η παράμετρος μέσα στα άγκιστρα ορίζει τη γλώσσα προγραμματισμού (`html` γλώσσα σήμανσης στην προκειμένη περίπτωση), ενώ το πραγματικό κείμενο που θα μορφοποιηθεί οριοθετείται από τον χαρακτήρα '|' .

### Προβλήματα με το αυτοφιλοξενούμενο Overleaf

Αν χρησιμοποιείτε το sandbox compile και επίσης έναν διακομιστή Overleaf για να αναπτύξετε το Overleaf, το minted ενδέχεται να μην λειτουργεί καλά. Για λεπτομερείς πληροφορίες, μπορείτε να δείτε: [issues/131](https://github.com/yu-i-i/overleaf-cep/issues/131). Πρέπει να ενεργοποιήσετε το προφίλ εντολών arm και κάποια κλήση συστήματος για να λειτουργήσει το minted.


---

# 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/texlive/el/sxetika-me-ta-paketa/minted.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.
