Tässä artikkelissa näytetään, miten minted-pakettia käytetään ohjelmointikielten lähdekoodin muotoiluun ja korostamiseen LaTeX-dokumentissa. Aloitetaan esimerkillä:
\documentclass{article}\usepackage{minted}\begin{document}\begin{minted}{python}import numpy as npdef 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}
Tämä esimerkki tuottaa seuraavan tulosteen:
Tässä on kaksi tärkeää komentoa. Johdanto-osassa (preamble) paketti tuodaan kirjoittamalla
\usepackage{minted}
minkä jälkeen tagit \begin{minted}{python} ja \end{minted} rajaavat ympäristön, joka tulostaa tekstin sellaisenaan tasalevyisellä fontilla ja värittää lisäksi kommentit, avainsanat ja funktiot. Parametri python on ohjelmointikieli, jolla lähdekoodi on kirjoitettu. minted tukee yli 150 ohjelmointi- ja merkintäkieltä sekä konfiguraatiotiedostoja; luettelo tuetuista kielistä löytyy viiteoppaasta.Huomautus: Jotta minted toimisi paikallisessa LaTeX-jakelussasi, sinun on asennettava lisäksi Pygments-niminen ohjelma. Overleaf säästää sinut sen asentamiselta ja erityisten komentojen suorittamiselta dokumentin kääntämiseksi — Overleafissa minted-pakettia käyttävät dokumentit toimivat “suoraan paketista”.
Kuten seuraava esimerkki osoittaa, minted-ympäristöä voidaan konfiguroida muuttamaan ladotun koodin visuaalista esitystä. Tässä minted-ympäristö käyttää useita pilkuin eroteltuja parametreja muodossa key=value:
\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 npdef 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}
Tämä esimerkki tuottaa seuraavan tulosteen:
Tässä esimerkissä käytetyt parametrit ovat:
frame=lines: piirtää kaksi viivaa, toisen koodin yläpuolelle ja toisen alapuolelle kehystämään sitä. Muita mahdollisia arvoja ovat leftline, topline, bottomline ja single.
framesep=2mm: kehyksen etäisyydeksi asetetaan 2 mm. Myös muita pituusyksiköitä voi käyttää.
baselinestretch=1.2: koodin riviväliksi asetetaan 1.2.
bgcolor=LightGray: taustaväriksi asetetaan LightGray. Tämä edellyttää xcolor-paketin tuomista. Katso Värien käyttäminen LaTeXissa lisätietoja värien käsittelystä.
fontsize=\footnotesize: fonttikooksi asetetaan footnotesize. Mikä tahansa muu fonttikoko voidaan asettaa.
linenos: ottaa rivinumerot käyttöön.
Muita mahdollisesti hyödyllisiä asetuksia ovat:
mathescape: ottaa matematiikkatilan käyttöön koodikommenteissa.
rulecolor: muuttaa kehyksen väriä.
showspaces: ottaa käyttöön erikoismerkin, joka tekee välilyönnit näkyviksi.
Koodi on yleensä tallennettu lähdetiedostoon, joten komento, joka tuo koodin automaattisesti tiedostosta, on erittäin kätevä, kuten seuraava esimerkki osoittaa:
\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}
Tämä esimerkki tuottaa seuraavan tulosteen:Komento \inputminted{octave}{BitXorMatrix.m} tuo koodin tiedostosta BitXorMatrix.m, ja parametri octave kertoo LaTeXille koodin ohjelmointikielen. Komento voi ottaa kaksi lisäparametria, joilla tuodaan vain osa tiedostosta; esimerkiksi tuotaessa koodia riveiltä 2–12 komento on:
Jos haluat syöttää vain yhden koodirivin, komento \mint, jonka syntaksi esitetään seuraavassa esimerkissä, hoitaa asian.
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.
Tämä esimerkki tuottaa seuraavan tulosteen:Aaltosulkeiden välinen parametri asettaa ohjelmointikielen (tässä tapauksessa html-merkintäkieli), ja varsinainen muotoiltava teksti rajataan merkillä ’|’.
Jos käytät hiekkalaatikoitua kääntämistä (sandbox compile) ja Overleaf on otettu käyttöön omalla palvelimella, minted ei välttämättä toimi kunnolla. Tarkemmat tiedot löydät täältä: issues/131. Jotta minted toimisi, sinun on otettava käyttöön arm-käskyprofiili ja tietyt järjestelmäkutsut.
Viimeksi muokattu 4. lokakuuta 2026
Oliko tästä sivusta hyötyä?
Assistant
Responses are generated using AI and may contain mistakes.