NMSA230 - Softwarové prostředky
pro matematiku a stochastiku

Zimný semester 2018/2019 | Cvičenie 4 | Ut 04/12/18



LaTeX | Obrázky a tabuľky


Program štvrtého cvičenia NMSA 230
  • Vytváranie jednoduchých tabuliek v LaTeX-u a práca s tabuľkami v samotnom texte.
  • Vkládanie obrázkov do textu, štruktúra a formátovanie textu s obrázkami/grafmi.
  • Niektoré základné grafické nástroje v LaTeX-u.

Užitočné materiály pre prácu s LaTeX-om
  • Tobias Oetiker a kol.: Ne příliš stručný úvod do systému LaTeX 2ε. (PDF súbor)
  • Kolektív AF UPOL: Drsný úvod do LaTeX-u. (PDF súbor)
  • Warbrick, J.: Essential LaTeX ++ (PDF súbor)

  • Olšák, P.: Typografický systém TeX, Konvoj, 1995.
  • Knuth, D.: Computer and Typesetting Series, Vol. A: The TeX Book, Addison Wesley, 1986.
  • Knuth, D.: Computer and Typesetting Series, Vol. B: TeX The Program, Addison Wesley, 1986.

K doplneniu informácii obsiahnutých na tejto webovej stránke je možné využiť aj tento PDF dokument vytvorený v LaTeX-u.
(k stiahnutiu aj zdrojový kod v kódovaní cp1250 a zdrojový kód v kódovaní utf8)

Základné princípy a spôsob fungovania LaTeX-u, vrátanie niekoľkých konkrétnych príkladov ako formulovať (sádzať) a formátovať matematický text (rôzne prostredia pre matematické vzorce, možnosti odkazovania na jednotlivé výrazy a úprava matematického textu), sú stručne popísane aj na tejto stránke.



1. Vytváranie jednoduchých LaTeX-ových tabuliek

Základným prostredím v LaTeX-u na vytváranie rôznych druhov tabuliek je prostredie tabular. Formálne dochádza k inicializácii tohto prostredia pomocou párových príkazov

\begin{tabular}{table spec}
...
\end{tabular}

Argumenty v zátvorke (table spec) špecifikujú konkrétny typ tabuľky (celkový počet sĺpcov) a spôsob zarovnania obsahu vrámci každého stĺpca. Povolené sú nasledujúce hodnoty:

  • l - left adjusted colum;
  • c - centered colum;
  • r - right adjusted colum;
  • p{‘width’} - column width the text vertically alligned at the top;
  • m{‘width’} - column width the text vertically alligned in the middle;
  • b{‘width’} - column width the text vertically alligned at the bottom;

Okrem toho je možne používať aj špecialny znak | pre vytvorenie vertikálnej čiary oddeľujúcej dva stĺpce, prípadne zdvojený znak || pre dvojitú vertikálnu čiaru oddeľujúcu dva stĺpce. Jednoduchá tabuľka vytvorená v LaTeX-u môže vyzerať napríklad takto:

\begin{tabular}{table spec}
\begin{tabular}{l|cr}
column 1 & column 2 & column 3 \\\hline
  1.1 & 2.2 & 3 \\
  4 & 5.22 & 6.2 \\
  7.11 & 8 & 9.33 \\
\end{tabular}
\end{tabular}

Z estetického hľadiska je väčšinou vhodné zarovnať desatinné hodnoty v tabuľke vzhľadom k desatinnej čiarke. V LaTeX-u je takéto zarovnanie možné pomocou výrazu @{.}, ktorý je potrebne umiestniť do špecifikácie tabuľky všade tam, kde chceme zarovnt stĺpce vzhľadom k desatinnej čiarke (technicky to funguje tak, že LaTeX vytvorí dva samostatne stĺpce - jeden pre hodnoty pred desatinnou čiarkou a druhy pre desatinne miesta, pričom tieto dva stĺpce z ktorých je prvý zarovnaný napravo a druhý naľavo, prepojí pomocou desatinnej tečky.

Porovnajte predchádzajúcu tabuľku s nasledujúcou:

\begin{tabular}{table spec}
\begin{tabular}{l@{.}r|l@{.}rl@{.}r}
\multicolumn{2}{c}{column 1} & \multicolumn{2}{c}{column 2} & \multicolumn{2}{c}{column 3} \\\hline
  1 & 1 & 2 & 2 & 3 &  \\
  4 & & 5 & 22 & 6 & 2 \\
  7 & 11 & 8 & & 9 & 33 \\
\end{tabular}
\end{tabular}

Samotný príkaz @{} je ale možné použiť pre systematické vloženie ľubovolného znaku (alebo súboru znakov) medzi dva stĺpce v tabuľke. Príslušný znak (resp. súbor znakov) je špecifikovaný v zátvorkach.



Užitočné


V LaTeX-u je možné vytvoriť rôzne typy a druhy tabuľiek. Niekedy je k tomu potrebná dodatočná knižnica, ktorú je nutné načítať v preambule zdrojového kódu.

  • horizontány text v tabuľke pomocou balíčka \usepackage{rotating} a prostredia

    \begin{sideways} ... \end{sideways}
    

    alebo

    \begin{turn}{angle} ... \end{turn}
    
    kde angle je veľkosť uhla v stupňoch.
  • text cez niekoľko stĺpcov vrámci jedného řádku pomocou príkazu \multicolumn{}{}{};
  • text cez niekoľko řádkov vrámci jedného sloupce pomocou príkazu balíčky \usepackage{multirow} a príkazu \multirow{}{}{};

    \begin{tabular}{|c|c|c|c|}
    \hline
    A & B & C & D \\ \hline
    \multirow{ 2}{*}{1} & 0 & 6 & 230 \\
    & 1 & 5 & 195 \\ \hline
    \end{tabular}
    
  • tabuľky s využitím rôznych farieb pomocou balíčku \usepackage{colortbl} a príkazov \rowcolor{} a \columncolor{};
  • Obecně platí, že tabuľka by mala obsahovať čo najmenej horizontálných aj vertikálnych čiar (napr. príkazov \hline, alebo znakov | a ||). Vyzuálne krajšiu tabulku je možné vytvoriť s pomocou balíčku \usepackage{booktabs} a príkazov \toprule, \midrule a \bottomrule.
    Ďalšie podrobnosti a príklady použitia v manuále pre daný balíček: booktabs manuál



2. LaTeX-é prostredie table

Z hľadiska štrukturovania komplexnejšieho textu je užitočné naučiť sa pracovať s prostredím table, ktoré je v LaTeX-u definované pomocou dvojice príkazov

\begin{table}
...
\end{table}

LaTeX interpretuje obsah v tomto prostredí ako element tabuľky, ku ktorej je dopĺnený popisok a label. Pomocou príkazu \caption{} vytvoríme popisok k tabuľke a pomocou príkazu \label{} vytvoríme meno, pomocou ktorého sa prostredníctvom príkazu \ref{} môžeme na tabuľku v ďalšom texte odkazovať (podobný princíp funguje aj pri odkazovaní sa na matematické výrazy – pomocou príkazu \eqref{}, alebo na obrázky – príkaz \ref{}). Finálna tabuľka v texte teda vznikne nasledujúcou kombináciou

\begin{table}
\label{tabulka1}
\caption{Toto je testovacia tabuľka č.1}
\begin{tabular}{|c|c|c|c|}
\hline
A & B & C & D \\ \hline
\multirow{ 2}{*}{1} & 0 & 6 & 230 \\
& 1 & 5 & 195 \\ \hline
\end{tabular}
\end{table}

Na túto tabuľku sa následne v texte odkažeme pomocou príkazu \ref{tabulka1}. V prípade, že chceme tabuľku horizontálne vycentrovať, môže byť užitočné prostredie center, ktoré vytvoríme pomocou dvojice príkazov

\begin{center}
...
\end{center}



Užitočné


  • Správna tabulka by mala vždy obsahovať dostatočne výstižný popisok. Desatinné miesta by mali byť uvedené na rovnaký počet desatinných miest (aspoň v každom stĺpci zvlášť) a čisla by mali byť zarovnané na desatinnú čiarku (tečku) a centrované vrámci stĺpca.

  • Vizuálna štruktúra tabuľky by malá pomáhať a ulahčovať orientáciu v tabuľke a čítanie obsiahnutých informácii.
  • Správna tabuľka by nemala byť utopená v texte, ale mala by byť odsadená buď vo vrchnej časti stránky, prípadne v spodnej časti stránky, ale nie uprostred.
  • Tabuľka je samostatnou a plnohodnotnou časťou samotného textu. Z tabuľky a jej popisku by malo byť dostatočne zrejmé, čo tabuľka obsahuje, čoho sa informácie týkajú a akým spôsobom tabuľku čítať.



3. Obrázky a grafika v LaTeX-u

Obrázky a grafy rôznych súborových typov (pdf, eps, png, jpg a iné) sa vkládajú do LaTeX-ového kódu pomocou príkazu \includegraphics[options]{adresa súboru}. Volitelné parametre (options) umožnujú meniť šírku a výšku výsledného obrázku (napr. width = 10cm, heiht = 10cm a podobne), veľkosť obrázku (napr. scale = 1.2), alebo orientáciu obrázku (napr. angle = 90). K správnemu fungovaniu je ale potrebný balíček \usepackage{graphicx}.

Podobne ako v prípade tabuliek, je možné aj obrázok interpretovať ako samostatný element - vytvoriť príslušný popisok a pomocou názvu (label) sa na daný obrázok následne v texte odkazovať. Slúži k tomu prostredie analogické k prostrediu table - prostredie figure. Vymedzene je opäť dvojicou príkazov

\begin{figure}
...
\end{figure}

ktorá može (a väčšinou aj je) dopĺnená dvojicou príkazov \label{}, ktorý vytvára méno (label) obrázku a \caption{}, ktorý vytvára popisok k obrázku. Výsledny “figure element” v LaTeX-ovom zdrojovom kóde potom vyzera následovne

\begin{figure}
\label{obrazok1}
\caption{Toto je testovací obrázok č.1}
\includegraphics[scale = 0.8]{figures/obrazok1.png}
\end{figure}



Užitočné


  • V prípade, že LaTeX-ový kód kompilujeme s PDFLaTeX-om, máme k dispozícii širšiu škálu možnosti pre rôzne typy súborov, ktoré použiť ako obrázok. Jedna sa hlavne o súbory typu PDF, PNG a JPG.

  • V prípade, že potrebujeme použiť obrázok vo vektorovom formáte (súbor typu EPS alebo PS), je nutné zdrojový kód najprv preložiť LaTeX-om, až následne vygenerovať finálny PDF súbor. EPS súbor obrázku je jediný typ, ktorý prekladé LaTeX kompilátor.

  • V prípade, že chcete použíť EPS súbor obrázku, ale zdrojový kód prekladať iba PDFLaTeX-om, je potrebné použiť dodatočný balíček \usepackage{epstopdf}, ktorý zabezpečí správne fungovanie.

  • V prípade, že do LaTeX-u chceme vložiť obrázok vytvorený v programe R, je dobré tento obrázok v Rku vytvoriť už s požadovanými rozmermi a vyhnúť sa tak dodatočnému škálovaniu v LaTeX-u. Užitočné funkcie, ktoré v programe R vyexportuju obrázok vo formáte eps a pdfpostscript() a pdf(). Obe uvedené funkcie používajú dodatočné parametre width = … a height = … pre nastavenie požadovanej šírky a výšky vyexportovaného obrázku. Uvedené rozmery sú v palcoch.



4. Vlastné grafické nástroje v LaTeX-u

Okrem samotného vkládania predpripravených grafov a obrázkov je možné pomocou LaTeX-u obrázky aj vytvárať - do zdrojového kódu vkládať príslušne pasáže, ktoré pri kompilácii vytvoria požadovaný obrázok/graf. Jeden z balíčkov, ktorý umožňuje vytvárať takéto obrázky je \usepackage{tikz}. Jednoduchý príklad môže vyzerať napr. takto:

\documentclass{article}

\usepackage{tikz}

\begin{document}
\begin{figure}[h!]
  \begin{center}
    \begin{tikzpicture}
      \draw [red,dashed] (-2.5,2.5) rectangle (-1.5,1.5) node [black,below] {Start}; % Draws a rectangle
      \draw [thick] (-2,2) % Draws a line
      to [out=10,in=190] (2,2)
      to [out=10,in=90] (6,0) 
      to [out=-90,in=30] (-2,-2);    
      \draw [fill] (5,0.1) rectangle (7,-0.1) node [black,right] {Obstacle}; % Draws another rectangle
      \draw [red,fill] (-2,-2) circle [radius=0.2] node [black,below=4] {Point of interest}; % Draws a circle
    \end{tikzpicture}
    \caption{Example graphic made with tikz.}
  \end{center}
\end{figure}
\end{document}

Po preložení kódu LaTeX-om dostaneme nasledujúci obrázok:



Ďalšie ukážky a podrobné návody sú napr. na stránke http://www.texample.net/tikz/examples/.



Domáca úloha

(Deadline: 5. cvičenie | Ut: 18.12.2018)

PDF report, ktorý ste vypracovali ako predchádzajúcu úlohu doplňte o následujúce:

  • Aspoň dve tabuľky s popisnými charakteristikami aspoň dvoch premenných z dátoveho súboru, ktorý v reporte uvažujete. K tabuľkam doplňte vhodný popisok a pomocou mena (label) sa na tabuľky vo vhodnom mieste v texte odkážte.
  • Aspoň tri obrázky, ktoré budú vhodnym spôsobom ilustrovať nejakú zaujímavú vlastnosť vo vašich datach. K obrázkom doplňte vhodný popisok a pomocom mena (label) sa na obrázky na vhodnom mieste v texte odkážte.