> 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/el/morfopoiisi/12-code-highlighting-with-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)  #βοηθητική μεταβλητή

    #υπολογισμός του πίνακα bitwise xor
    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}
```

[Ανοίξτε αυτό το παράδειγμα στο Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+the+minted+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bminted%7D%7Bpython%7D%0Aimport+numpy+as+np%0A++++%0Adef+incmatrix%28genl1%2Cgenl2%29%3A%0A++++m+%3D+len%28genl1%29%0A++++n+%3D+len%28genl2%29%0A++++M+%3D+None+%23to+become+the+incidence+matrix%0A++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29++%23dummy+variable%0A++++%0A++++%23compute+the+bitwise+xor+matrix%0A++++M1+%3D+bitxormatrix%28genl1%29%0A++++M2+%3D+np.triu%28bitxormatrix%28genl2%29%2C1%29+%0A%0A++++for+i+in+range%28m-1%29%3A%0A++++++++for+j+in+range%28i%2B1%2C+m%29%3A%0A++++++++++++%5Br%2Cc%5D+%3D+np.where%28M2+%3D%3D+M1%5Bi%2Cj%5D%29%0A++++++++++++for+k+in+range%28len%28r%29%29%3A%0A++++++++++++++++VT%5B%28i%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28i%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++%0A++++++++++++++++if+M+is+None%3A%0A++++++++++++++++++++M+%3D+np.copy%28VT%29%0A++++++++++++++++else%3A%0A++++++++++++++++++++M+%3D+np.concatenate%28%28M%2C+VT%29%2C+1%29%0A++++++++++++++++%0A++++++++++++++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29%0A++++%0A++++return+M%0A%5Cend%7Bminted%7D%0A%5Cend%7Bdocument%7D)

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

![Παράδειγμα που εμφανίζει την έξοδο του πακέτου minted](/files/7bd7cb882e614dd25a421229496d8954ae46416c)

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

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

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

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

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

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

```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)  #βοηθητική μεταβλητή

    #υπολογισμός του πίνακα bitwise xor
    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}
```

[Ανοίξτε αυτό το παράδειγμα στο Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Another+example+of+the+minted+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cusepackage%7Bxcolor%7D+%25+to+access+the+named+colour+LightGray%0A%5Cdefinecolor%7BLightGray%7D%7Bgray%7D%7B0.9%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bminted%7D%0A%5B%0Aframe%3Dlines%2C%0Aframesep%3D2mm%2C%0Abaselinestretch%3D1.2%2C%0Abgcolor%3DLightGray%2C%0Afontsize%3D%5Cfootnotesize%2C%0Alinenos%0A%5D%0A%7Bpython%7D%0Aimport+numpy+as+np%0A++++%0Adef+incmatrix%28genl1%2Cgenl2%29%3A%0A++++m+%3D+len%28genl1%29%0A++++n+%3D+len%28genl2%29%0A++++M+%3D+None+%23to+become+the+incidence+matrix%0A++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29++%23dummy+variable%0A++++%0A++++%23compute+the+bitwise+xor+matrix%0A++++M1+%3D+bitxormatrix%28genl1%29%0A++++M2+%3D+np.triu%28bitxormatrix%28genl2%29%2C1%29+%0A%0A++++for+i+in+range%28m-1%29%3A%0A++++++++for+j+in+range%28i%2B1%2C+m%29%3A%0A++++++++++++%5Br%2Cc%5D+%3D+np.where%28M2+%3D%3D+M1%5Bi%2Cj%5D%29%0A++++++++++++for+k+in+range%28len%28r%29%29%3A%0A++++++++++++++++VT%5B%28i%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28i%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++%0A++++++++++++++++if+M+is+None%3A%0A++++++++++++++++++++M+%3D+np.copy%28VT%29%0A++++++++++++++++else%3A%0A++++++++++++++++++++M+%3D+np.concatenate%28%28M%2C+VT%29%2C+1%29%0A++++++++++++++++%0A++++++++++++++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29%0A++++%0A++++return+M%0A%5Cend%7Bminted%7D%0A%5Cend%7Bdocument%7D)

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

![Παράδειγμα εφαρμογής μορφοποίησης σε στοιχειοθετημένο κώδικα που παράγεται από το πακέτο minted](/files/c94f0ce6edd28db620afd779b2b14f36080d9f54)

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

* `frame=lines`: σχεδιάζει δύο γραμμές, μία στο πάνω μέρος και μία στο κάτω μέρος του κώδικα για να τον πλαισιώσει. Άλλες πιθανές τιμές είναι `leftline`, `topline`, `bottomline` και `single`.
* `framesep=2mm`: η απόσταση του πλαισίου ορίζεται σε 2mm. Μπορούν να χρησιμοποιηθούν και άλλες [μονάδες μήκους](/latex/el/morfopoiisi/01-lengths-in-latex.md) .
* `baselinestretch=1.2`: το διάστιχο του κώδικα ορίζεται σε 1.2.
* `bgcolor=LightGray`: το χρώμα φόντου ορίζεται σε `LightGray`. Πρέπει να εισαγάγετε το `xcolor` πακέτο για να λειτουργήσει αυτό. Δείτε [Χρήση χρωμάτων στο LaTeX](/latex/el/morfopoiisi/13-using-colors-in-latex.md) για να μάθετε περισσότερα σχετικά με τον χειρισμό χρωμάτων.
* `fontsize=\footnotesize`: το μέγεθος γραμματοσειράς ορίζεται σε `footnotesize`. Μπορεί να οριστεί οποιοδήποτε άλλο [μέγεθος γραμματοσειράς](/latex/el/grammatoseires/01-font-sizes-families-and-styles.md#reference-guide) .
* `linenos`: ενεργοποιεί την αρίθμηση γραμμών.

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

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

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

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

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

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

[Ανοίξτε αυτό το παράδειγμα στο Overleaf](https://www.overleaf.com/docs?engine=\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Ctitle%7BImporting+files+using+minted%7D%0A%5Cbegin%7Bdocument%7D%0AThe+next+code+will+be+directly+imported+from+a+file%3A%0A%0A%5Cinputminted%7Boctave%7D%7BBitXorMatrix.m%7D%0A%5Cend%7Bdocument%7D\&snip_name\[]=BitXorMatrix.m\&snip\[]=function+X+%3D+BitXorMatrix%28A%2CB%29%0A%25function+to+compute+the+sum+without+charge+of+two+vectors%0A%09%0A%09%25convert+elements+into+usigned+integers%0A%09A+%3D+uint8%28A%29%3B%0A%09B+%3D+uint8%28B%29%3B%0A%0A%09m1+%3D+length%28A%29%3B%0A%09m2+%3D+length%28B%29%3B%0A%09X+%3D+uint8%28zeros%28m1%2C+m2%29%29%3B%0A%09for+n1%3D1%3Am1%0A%09%09for+n2%3D1%3Am2%0A%09%09%09X%28n1%2C+n2%29+%3D+bitxor%28A%28n1%29%2C+B%28n2%29%29%3B%0A%09%09end%0A%09end\&main_document=main.tex)

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

![Χρήση του minted για εισαγωγή αρχείου κώδικα](/files/a268569cf6bc5a2318474c53a7bb6b3760d546d0)

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

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

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

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

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

[Ανοίξτε αυτό το παράδειγμα στο Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=One+line+code+example+with+minted\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cbegin%7Bdocument%7D%0AOne-line+code+formatting+also+works+with+%5Ctexttt%7Bminted%7D.+For+example%2C+a+small+fragment+of+HTML+like+this%3A%0A%5Cmint%7Bhtml%7D%7C%3Ch2%3ESomething+%3Cb%3Ehere%3C%2Fb%3E%3C%2Fh2%3E%7C%0A%5Cnoindent+can+be+formatted+correctly.%0A%5Cend%7Bdocument%7D)

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

![Παράδειγμα κώδικα μίας γραμμής με minted](/files/7f3c3de972d964327cf3f489e14518534b43c915)

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

## Προσαρμοσμένοι λεξικοί αναλυτές

**(Παρακαλώ σημειώστε ότι λόγω αλλαγών στο `minted` από το 2023, η ακόλουθη προσέγγιση θα λειτουργεί μόνο στο** [**TeX Live 2022 ή παλαιότερο**](/latex/el/basi-gnoseon/148-using-the-overleaf-project-menu.md#tex-live-version)**.)**

Από προεπιλογή, `minted` υποστηρίζει μόνο γλώσσες με λεξικούς αναλυτές που είναι ήδη εγκατεστημένοι ή καταχωρισμένοι με `pygmentize`. Αν έχετε γράψει έναν προσαρμοσμένο λεξικό αναλυτή ή θέλετε να χρησιμοποιήσετε έναν λεξικό αναλυτή για μια γλώσσα που δεν έχει ακόμη εγκατασταθεί στο Overleaf, μπορείτε παρ’ όλα αυτά να τον χρησιμοποιήσετε στο δικό σας έργο Overleaf χρησιμοποιώντας την προσέγγιση που αναφέρθηκε [εδώ](https://tex.stackexchange.com/questions/18083/how-to-add-custom-c-keywords-to-be-recognized-by-minted#comment930474_42392).

Ας υποθέσουμε ότι έχετε ορίσει έναν λεξικό αναλυτή στο αρχείο `nl-lexer.py`, που περιέχει την κλάση `NetLogoLexer` για τη γλώσσα NetLogo. Ανεβάστε το `nl-lexer.py` στο έργο σας στο Overleaf και, στη συνέχεια, καθορίστε `nl-lexer.py:NetLogoLexer` ως το «όνομα γλώσσας» όταν χρησιμοποιείτε `minted`. Για παράδειγμα:

```latex
\begin{minted}{nl-lexer.py:NetLogoLexer -x}
   ... ο κώδικάς σας εδώ ...
\end{minted}
```

[Ορίστε](http://quantixed.org/2018/10/23/new-lexicon-how-to-add-a-custom-minted-lexer-in-overleaf/) ένα ακόμη παράδειγμα για τη γλώσσα ImageJ Macro.

## Χρώματα και φύλλα στυλ

Τα χρωματικά σχήματα που χρησιμοποιούνται για την επισήμανση κώδικα αποθηκεύονται σε φύλλα στυλ. Μπορείτε να δημιουργήσετε τα δικά σας ή να χρησιμοποιήσετε κάποιο ήδη διαθέσιμο στη διανομή LaTeX σας. Δείτε τον [οδηγό αναφοράς](#reference-guide) για μια λίστα των φύλλων στυλ που περιλαμβάνονται στο [Overleaf](https://www.overleaf.com).

```latex
\documentclass{article}
\usepackage{minted}
\usemintedstyle{borland}
\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)  #βοηθητική μεταβλητή

    #υπολογισμός του πίνακα bitwise xor
    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}
```

[Ανοίξτε αυτό το παράδειγμα στο Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+stylesheets+with+minted+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cusemintedstyle%7Bborland%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bminted%7D%7Bpython%7D%0Aimport+numpy+as+np%0A++++%0Adef+incmatrix%28genl1%2Cgenl2%29%3A%0A++++m+%3D+len%28genl1%29%0A++++n+%3D+len%28genl2%29%0A++++M+%3D+None+%23to+become+the+incidence+matrix%0A++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29++%23dummy+variable%0A++++%0A++++%23compute+the+bitwise+xor+matrix%0A++++M1+%3D+bitxormatrix%28genl1%29%0A++++M2+%3D+np.triu%28bitxormatrix%28genl2%29%2C1%29+%0A%0A++++for+i+in+range%28m-1%29%3A%0A++++++++for+j+in+range%28i%2B1%2C+m%29%3A%0A++++++++++++%5Br%2Cc%5D+%3D+np.where%28M2+%3D%3D+M1%5Bi%2Cj%5D%29%0A++++++++++++for+k+in+range%28len%28r%29%29%3A%0A++++++++++++++++VT%5B%28i%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28i%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++%0A++++++++++++++++if+M+is+None%3A%0A++++++++++++++++++++M+%3D+np.copy%28VT%29%0A++++++++++++++++else%3A%0A++++++++++++++++++++M+%3D+np.concatenate%28%28M%2C+VT%29%2C+1%29%0A++++++++++++++++%0A++++++++++++++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29%0A++++%0A++++return+M%0A%5Cend%7Bminted%7D%0A%5Cend%7Bdocument%7D)

Η χρήση του `borland` φύλλου στυλ παράγει το ακόλουθο αποτέλεσμα:

![Αποτέλεσμα του πακέτου minted με χρήση του φύλλου στυλ borland](/files/64c64f164efe7dd3e8845a6c6138b2f89dac053e)

Η σύνταξη για να οριστεί ένα στυλ χρωματισμού είναι εύκολη, η εντολή `\usemintedstyle{borland}` χρησιμοποιεί το χρωματικό θέμα `borland` για να μορφοποιήσει τον πηγαίο κώδικα. Μπορείτε να βρείτε περισσότερα χρωματικά σχήματα στον [οδηγό αναφοράς](#reference-guide).

## Λεζάντες, ετικέτες και ο κατάλογος λιστών κώδικα

Λίστες κώδικα μορφοποιημένες με **minted** μπορούν να συμπεριληφθούν σε ένα στοιχείο float, όπως ακριβώς οι [εικόνες](/latex/el/perissotera-themata/27-inserting-images.md#positioning) και [πίνακες](/latex/el/sximata-kai-pinakes/01-tables.md#positioning-tables). Μπορούν να αποδοθούν λεζάντες και ετικέτες σε λίστες κώδικα και στη συνέχεια να γίνεται αναφορά σε αυτές και να περιλαμβάνονται σε έναν «Κατάλογο λιστών κώδικα».

```latex
\documentclass{article}
\usepackage{minted}
\title{Παραδείγματα καταλόγων κώδικα}
\begin{document}
\begin{listing}[!ht]
\inputminted{octave}{BitXorMatrix.m}
\caption{Παράδειγμα από εξωτερικό αρχείο}
\label{listing:1}
\end{listing}

\begin{listing}[!ht]
\begin{minted}{c}
#include <stdio.h>
int main() {
   printf("Hello, World!"); /*η printf() εμφανίζει την συμβολοσειρά σε εισαγωγικά*/
   return 0;
}
\end{minted}
\caption{Hello World σε C}
\label{listing:2}
\end{listing}

\begin{listing}[!ht]
\begin{minted}{lua}
function fact (n)--ορίζει μια συνάρτηση παραγοντικού
  if n == 0 then
    return 1
  else
    return n * fact(n-1)
  end
end

print("enter a number:")
a = io.read("*number") -- διάβασμα ενός αριθμού
print(fact(a))
\end{minted}
\caption{Παράδειγμα από το εγχειρίδιο Lua}
\label{listing:3}
\end{listing}
\noindent\texttt{minted} κάνει πολύ καλή δουλειά στη στοιχειοθέτηση των λιστών κώδικα \ref{listing:1}, \ref{listing:2} και \ref{listing:3}.
\renewcommand\listoflistingscaption{Κατάλογος πηγαίων κωδίκων}
\listoflistings
\end{document}
```

[Ανοίξτε αυτό το παράδειγμα στο Overleaf](https://www.overleaf.com/docs?engine=\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Ctitle%7BListing+code+examples%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Blisting%7D%5B%21ht%5D%0A%5Cinputminted%7Boctave%7D%7BBitXorMatrix.m%7D%0A%5Ccaption%7BExample+from+external+file%7D%0A%5Clabel%7Blisting%3A1%7D%0A%5Cend%7Blisting%7D%0A%0A%5Cbegin%7Blisting%7D%5B%21ht%5D%0A%5Cbegin%7Bminted%7D%7Bc%7D%0A%23include+%3Cstdio.h%3E%0Aint+main%28%29+%7B%0A+++printf%28%22Hello%2C+World%21%22%29%3B+%2F%2Aprintf%28%29+outputs+the+quoted+string%2A%2F%0A+++return+0%3B%0A%7D%0A%5Cend%7Bminted%7D%0A%5Ccaption%7BHello+World+in+C%7D%0A%5Clabel%7Blisting%3A2%7D%0A%5Cend%7Blisting%7D%0A%0A%5Cbegin%7Blisting%7D%5B%21ht%5D%0A%5Cbegin%7Bminted%7D%7Blua%7D%0Afunction+fact+%28n%29--defines+a+factorial+function%0A++if+n+%3D%3D+0+then%0A++++return+1%0A++else%0A++++return+n+%2A+fact%28n-1%29%0A++end%0Aend%0A%0Aprint%28%22enter+a+number%3A%22%29%0Aa+%3D+io.read%28%22%2Anumber%22%29+--+read+a+number%0Aprint%28fact%28a%29%29%0A%5Cend%7Bminted%7D%0A%5Ccaption%7BExample+from+the+Lua+manual%7D%0A%5Clabel%7Blisting%3A3%7D%0A%5Cend%7Blisting%7D%0A%5Cnoindent%5Ctexttt%7Bminted%7D+makes+a+nice+job+of+typesetting+listings+%5Cref%7Blisting%3A1%7D%2C+%5Cref%7Blisting%3A2%7D+and+%5Cref%7Blisting%3A3%7D.%0A%5Crenewcommand%5Clistoflistingscaption%7BList+of+source+codes%7D%0A%5Clistoflistings%0A%5Cend%7Bdocument%7D\&snip_name\[]=BitXorMatrix.m\&snip\[]=%25This+code+is+directly+imported+from+a+file%0A%25A+function+to+compute+the+sum+without+charge+of+two+vectors%0Afunction+X+%3D+BitXorMatrix%28A%2CB%29%0A%25convert+elements+into+unsigned+integers%0AA+%3D+uint8%28A%29%3B%0AB+%3D+uint8%28B%29%3B%0A%0Am1+%3D+length%28A%29%3B%0Am2+%3D+length%28B%29%3B%0AX+%3D+uint8%28zeros%28m1%2C+m2%29%29%3B%0A+for+n1%3D1%3Am1%0A++for+n2%3D1%3Am2%0A+++X%28n1%2C+n2%29+%3D+bitxor%28A%28n1%29%2C+B%28n2%29%29%3B%0A++end%0Aend\&main_document=main.tex)

Η πρώτη σελίδα αυτού του παραδείγματος περιέχει το ακόλουθο αποτέλεσμα:

![Παράδειγμα λιστών αποσπασμάτων κώδικα](/files/efe0260b221569f726653a8fe1470c0f79f5c1cb)

Για να εκτυπώσετε τη λίστα με όλα τα στοιχεία «listing» χρησιμοποιήστε `\listoflistings`. Στο παραπάνω παράδειγμα, ο προεπιλεγμένος τίτλος `Κατάλογος λιστών κώδικα` αλλάζει σε `Κατάλογος πηγαίων κωδίκων` γράφοντας

```latex
\renewcommand\listoflistingscaption{Κατάλογος πηγαίων κωδίκων}
\listoflistings % Τώρα στοιχειοθετήστε τη λίστα
```

Η δεύτερη σελίδα που παράγεται από το παραπάνω παράδειγμα περιέχει την ακόλουθη καταχώρηση:

![Ένα παράδειγμα καταχώρησης πηγαίου κώδικα](/files/4a736f8c08e7f3f9a5fe11cae3ef1453df912e92)

## Οδηγός αναφοράς

**Στυλ χρωμάτων για το minted**

| όνομα    | έξοδος                                                                | όνομα    | έξοδος                                                                 |
| -------- | --------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------- |
| manni    | ![MintedStyles1.png](/files/95f068d308a841cca8c677ec72963e2b316c1681) | fruity   | ![MintedStyles10.png](/files/bf62bb1ac8bd32b17fa5e6affaf7965100b4e0dc) |
| rrt      | ![MintedStyles2.png](/files/5ad81f97b38eabd4370efa7221f55723644f6e40) | autumn   | ![MintedStyles11.png](/files/eb5f6ee953fc5f9dbf42d992ded9e241768e02c9) |
| perldoc  | ![MintedStyles3.png](/files/6f98010ad80983ad3d43dd82c733d585fc8a3195) | bw       | ![MintedStyles12.png](/files/7a33f04ed346b0b9c1d09a832885dfe6b024a240) |
| borland  | ![MintedStyles4.png](/files/5f99ce7a9be7ac268a7df9bee5212dada3f956a1) | emacs    | ![MintedStyles13.png](/files/1736f4344be889934c185e2b2b026b28b70c7b08) |
| colorful | ![MintedStyles5.png](/files/1a1f677d367dcb43d9b4312e386e8e3e790d1ba1) | vim      | ![MintedStyles14.png](/files/102c5dec72e67ac0482c147000798c6aa974bd64) |
| murphy   | ![MintedStyles6.png](/files/74a6b4a2c51c9281b3a8766c1442cef8a8e67b58) | pastie   | ![MintedStyles15.png](/files/7a5a7c7ed06f5f26b7e5a919824c040cc9c79b27) |
| vs       | ![MintedStyles7.png](/files/fae9037b6d342e025d28330dac8e16be870a2417) | friendly | ![MintedStyles16.png](/files/cb1b02995d2f4807286e983e7125275020fd0bb5) |
| trac     | ![MintedStyles8.png](/files/98dd879bfe540401ba5e33ae33777f57865d9f1a) | native   | ![MintedStyles17.png](/files/da27277792f39784e852c189dcf21241bb67fcb3) |
| tango    | ![MintedStyles9.png](/files/197beec00bc06af9696322a0ef7f77ce305b01a2) | monokai  | ![MintedStyles18.png](/files/63924a50a5f6b9cf89a9861a7691b05491b0e5da) |

Ορισμένα χρωματικά σχήματα χρειάζονται σκούρο φόντο για να είναι ευανάγνωστα.

**Κύριες υποστηριζόμενες γλώσσες προγραμματισμού και αρχεία ρυθμίσεων**

|          |            |             |           |
| -------- | ---------- | ----------- | --------- |
| cucumber | abap       | ada         | ahk       |
| antlr    | apacheconf | applescript | as        |
| aspectj  | autoit     | asy         | awk       |
| basemake | bash       | bat         | bbcode    |
| befunge  | bmax       | boo         | brainfuck |
| bro      | bugs       | c           | ceylon    |
| cfm      | cfs        | cheetah     | clj       |
| cmake    | cobol      | cl          | console   |
| control  | coq        | cpp         | croc      |
| csharp   | css        | cuda        | cyx       |
| d        | dg         | diff        | django    |
| dpatch   | duel       | dylan       | ec        |
| erb      | evoque     | fan         | fancy     |
| fortran  | gas        | genshi      | glsl      |
| gnuplot  | go         | gosu        | groovy    |
| gst      | haml       | haskell     | hxml      |
| html     | http       | hx          | idl       |
| irc      | ini        | java        | jade      |
| js       | json       | jsp         | kconfig   |
| koka     | lasso      | livescrit   | llvm      |
| logos    | lua        | mako        | mason     |
| matlab   | minid      | monkey      | moon      |
| mxml     | myghty     | mysql       | nasm      |
| newlisp  | newspeak   | numpy       | ocaml     |
| octave   | ooc        | perl        | php       |
| plpgsql  | postgresql | postscript  | pot       |
| prolog   | psql       | puppet      | python    |
| qml      | ragel      | raw         | ruby      |
| rhtml    | sass       | scheme      | smalltalk |
| sql      | ssp        | tcl         | tea       |
| tex      | κείμενο    | vala        | vgl       |
| vim      | xml        | xquery      | yaml      |

## Περαιτέρω ανάγνωση

Για περισσότερες πληροφορίες δείτε:

* [Μήκη στο LaTeX](/latex/el/morfopoiisi/01-lengths-in-latex.md)
* [Παράθεση κώδικα](/latex/el/morfopoiisi/11-code-listing.md)
* [Μετρητές](/latex/el/morfopoiisi/10-counters.md)
* [Χρήση χρωμάτων στο LaTeX](/latex/el/morfopoiisi/13-using-colors-in-latex.md)
* [Μεγέθη, οικογένειες και στυλ γραμματοσειρών](/latex/el/grammatoseires/01-font-sizes-families-and-styles.md)
* [Τύποι γραμματοσειρών](/latex/el/grammatoseires/02-font-typefaces.md)
* [Διαχείριση σε ένα μεγάλο έργο](/latex/el/domi-eggrafoy/07-management-in-a-large-project.md)
* [Έργα LaTeX πολλών αρχείων](/latex/el/domi-eggrafoy/08-multi-file-latex-projects.md)
* [Πίνακας περιεχομένων](/latex/el/domi-eggrafoy/02-table-of-contents.md)
* [Έγγραφα μονής και διπλής όψης](/latex/el/morfopoiisi/08-single-sided-and-double-sided-documents.md)
* [Η **minted** τεκμηρίωση πακέτου](https://texdoc.org/serve/minted/0)


---

# 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/el/morfopoiisi/12-code-highlighting-with-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.
