JanKoWeb: Odborný SW - LaTeX: zvýraznění zdrojových kódu Matlabu
jankoweb.wz.cz
Den Slunce a světový den svobody tisku.


LaTeX: zvýraznění zdrojových kódu Matlabu

Občas potřebuji vložit do LaTeXu nějaký zdrojový kód a zdá se, že jsem konečně našel asi nejpohodlnější cestu.

Po delším čase testování různých zvýrazňovačů (desktop aplikací, online nástrojů a skriptů přímo pro Matlab) se mi zdá, že jsem našel nejlepší alternativu.

Publish v Matlabu

V Matlabu pomocí funkce Publish si exportuji zdrojový kód s obrázky (viz článek Matlab: publikování m-filů), s pomocí upraveného xsl souboru.

Výsledný kód pak zkopíruji do rozpracovaného dokumentu, nebo do šablony.

Šablonu LaTeXu pro zvýraznění vloženého kódu Matlabu i xsl soubor (co je to viz Použití hotové šablony pro export - soubor xsl) si ode mě můžete stáhnout - LaTeX šablona pro zvýraznění kódu z Matlabu.

Zkopírování kódu a prostředí listings

Jedná se o balík LaTeXu, který si můžete upravit podle svých barevných přání. Matlabovský kód pak stačí při použití definic níže (Vlastní nastavení zvýraznění) vložit do prostředí:

\\begin{lstlisting}
% kod v Matlabu
\\end{lstlisting}

 

Ukázka použití lstlisting

% zakladni nastaveni
\\documentclass{article}
% jazyk a kodovani
\\usepackage[czech]{babel}
\\usepackage[cp1250]{inputenc}
% vzhled stranky (okraje)
\\usepackage[top=3cm, bottom=3cm, right=2.5cm, left=2.5cm]{geometry}
% balik fontu
\\usepackage{courier}
% balik barev
\\usepackage{color} 
% balik prostredi zdrojovych kodu
\\usepackage{listings} 

% definice vlastnich barev
\\definecolor{darkgreen}{rgb}{0,0.5,0}
\\definecolor{gray}{rgb}{0.5,0.5,0.5}

\\lstset{language=Matlab,
   % vycet klicovych slov, ktera se zvyrazni
   keywords={break,case,catch,continue,else,elseif,end,for,function,
      global,if,otherwise,persistent,return,switch,try,while},
   % zakladni styl
   basicstyle=\\ttfamily,
   % styl klicovych slov
   keywordstyle=\\color{blue},
   % styl komentaru
   commentstyle=\\color{darkgreen},
   % styl retezcu
   stringstyle=\\color{red},
   % zobrazeni ramecku kolem kodu; none|single
   frame=none, 
   % zobrazeni cislovani radku
   numbers=left,
   % styl cislovani radku
   numberstyle=\\tiny\\color{gray},
   % krok zobrazeni cisel radku; 0 = nezobrazovat
   stepnumber=1,
   % odsazeni cislovani radku
   numbersep=10pt,
   % barva pozadi
   backgroundcolor=\\color{white},
   % default velikost tabulky
   tabsize=4,
   % automaticke zalomeni radku
   breaklines=true,
   % zobrazit mezery v kodu (jako specialni znak)    
   showspaces=false,
   % zobrazit mezery v retezcich (jako specialni znak)
   showstringspaces=false
}

\\begin{document}

% zacatek prostredi kodu
\\begin{lstlisting}
function y = moje_funkce(x) 
% Tohle je komentar.
   s = 'Ahoj, ja jsem retezec.';
   y = x + 1;
   if (x == 0)
      disp('Nula!')
   else
      disp('Neni nula.')
   end
end
\\end{lstlisting}

\\end{document}
Vložení kódu:
\lstinputlisting[firstline=55,lastline=59]{CODE/zdrojak.m}

Reference

Příklad byl založen na Publish to latex with syntax highlighting (EN).

Manuál LaTeX/Packages/Listings (EN).

Rubrika Odborný SW | Tagy LaTeX, Matlab, Zdrojový kód, Zvýraznění | St 23.03.2011 | 7027x

Související články:

LaTeX: svorka přes několik sloupců matice (vydáno Ne 28.10.2012, 11:53)
TeXmakerX: velmi šikovný editor pro LaTeX II (vydáno Po 25.04.2011, 14:26)
LaTeX: zvýraznění zdrojových kódu Matlabu (vydáno St 23.03.2011, 10:52) - právě čtete
TeXmakerX: velmi šikovný editor pro LaTeX (vydáno Ne 20.02.2011, 13:06)
LaTeX: nejčastější chyby a překlepy (vydáno Čt 17.02.2011, 18:03)
LaTeX: konverze vektorového formátu eps do pdf (vydáno Čt 03.02.2011, 23:58)
LaTeX: překlad a obrázky v png versus eps (vydáno Út 21.12.2010, 20:31)
LEd: editor pro psaní v TeXu (vydáno Pá 17.12.2010, 20:31)
Latex: ohraničení textu a svislá čára vedle odstavce (vydáno Út 05.10.2010, 21:54)
Beamer: šablona prezentace pro LaTeX (vydáno Ne 03.10.2010, 21:33)
Beamer: šablony a materiály k tvorbě profesionálních prezentací (vydáno Po 26.07.2010, 10:37)
Beamer: tvorba prezentací v LaTeXu - instalace (vydáno Po 26.07.2010, 10:30)
Instalace češtiny do MiTeXu (vydáno Ne 27.06.2010, 21:51)
LaTeX - záhlaví a zápatí dokumentu (vydáno Ne 11.04.2010, 17:50)
Průvodce instalací MikTeXu, TeXnicCenter a podpory češtiny na Windows (vydáno Pá 02.04.2010, 15:31)
Instalace MiKTex a TeXnicCenter (vydáno Út 30.03.2010, 17:25)

Náhodné články

Tento web jsem zakládal na střední, v roce 2008. Je zde hlavně archiv mé tvorby.

Aktuální věci publikuji kvůli úspoře času na Twitter.

Honza

"Každý je ochoten udělat nesmírné množství práce, pokud se nejedná o práci, kterou by měl udělat teď hned."

R. Benchley