JanKoWeb: Odborný SW - LaTeX: zvýraznění zdrojových kódu Matlabu

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 | 7112x

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

"To, co druzí dělají, může být podnětem našich pocitů, nikoli však jejich příčinou."

M. Rosenberg