Jak na LaTeX?

 

Úvod

Rozhodl jsem se napsat pár slov o typografickém systému LaTeX, se kterým jsem se seznámil před pár lety. Činím tak proto, abych svým kamarádům a dalším zájemcům usnadnil cestu k poznání tohoto komplexního nástroje pro tvorbu dokumentů. Není totiž tajemstvím, že tato cesta vyžaduje, především na svém začátku, značné úsilí, které leckoho odradí. V žádném případě si nekladu nárok na psaní manuálu, těch lze na internetu dohledat nepřeberně (viz K dalšímu čtení). Chtěl bych se zaměřit především na vybrané partie systému LaTeX, např. tvorbu tabulek a vkládání obrázků - největšího postrachu uživatelů používajících textové procesory typu WYSIWYG.

 

Proč LaTeX používat?

Především výstupní soubor může být ve formátu ps či pdf, což vždy zaručuje jeho stejné zobrazení na libovolném počítači a operačním systému - což je neocenitelné nejen při tvorbě prezentací. Snadné psaní matematických rovnic a symbolů a jejich číslování. Profesionální vzhled dokumentu. Typografický systém LaTeX je navíc zcela zdarma šířený pod licencí GPL.

 

Proč LaTeX nepoužívat?

Jediný rozumný důvod je nechuť zdlouhavě se učit něco nového. Nevhodný je taktéž pro uživatele soustavně nevěnující se psaní dokumentů obsahujících matematické symboly.

 

Já jsem TeX, kdo je víc?

Autorem programu TeX je Donald E. Knuth. K vydání 1. verze došlo v roce 1978, v roce 1982 následovala verze 2. Během let došlo k vytvoření balíku základních maker jenž je znám pod názvem plain TeX (v této verzi není definováno např. formátování nadpisů kapitol, či automatické vytváření obsahu). Rozšířením množiny maker vznikl LaTeX (resp. jeho poslední verze LaTeX 2epsilon z roku 1994), jehož autorem je Leslie Lamport. Zjednodušeně můžeme říci: LaTeX = TeX + TeXovská makra.

Vstupní soubor (který vytvoříme ve svém oblíbeném textovém editoru) je prostý text obsahující TeXovské příkazy - struktura tohoto souboru je popsána níže. Výstupem pak je soubor s příponou .dvi (=Device Independent), který, jak již název vypovídá, se zobrazí vždy stejně na každém zařízení. Tento soubor je možno transformovat do formátu .ps pomocí programu dvips, či dále do .pdf. Podrobnostmi týkajícími se rozdílů mezi jednotlivými formáty se zabývat nebudu, pro zvídavější viz odkazy na konci článku. Pro prohlížení zmíněných formátů souborů je vhodný program GhostView, který je šířen pod licencí GPL a funguje na všech platformách.

 

Někdo má rád TeX, jiný zase LaTeX

Jde především o přístup uživatele. Buď se rozhodnu jít cestou (dle mého názoru) zdlouhavější a hezky od základů a v „čistém“ TeXu si vytvořím vlastní makra, čímž získám výhodu vlastní volby designu výstupního dokumentu do nejmenších detailů. Nebo si zvolím cestu přímočarejší (mnou doporučenou) a budu používat LaTeX (s předem definovanými makry), čímž ale příjimám více méně daný vzhled a formátování např. kapitol, nadpisů, ale i tabulek, atd.

Já se k LaTeXu dostal díky svému dobrému příteli funnymu, jenž mi sdělil tu úžasnou věc, že existuje i něco jiného než MS Word :-). Během mého studia na matfyzu jsem se jako každý fyzik potýkal (a ještě potýkám) s psaním nejrůznějších protokolů, jež mě jako činnost nikdy doslova nezaujala. Proto pro mě bylo důležité si uvědomit, že při psaní svých skvostů v systému LaTeX bych se mohl něco doopravdy naučit, a navíc by konečně forma zamaskovala obsah.

 

Instalace

V systémech na bázi Unixu je nutné nainstalovat (každý dle svého oblíbeného způsobu) balíček s názvem tetex (resp. cstetex, což je tentýž balíček s kompletní českou/slovenskou podporou).

V operačním systému MS Windows je nutné nainstalovat jednu z dostupných distribucí TeXu, doporučuji MikTeX. Pro pohodlí uživatele je vhodné navíc nainstalovat editor LaTeXovských dokumentů - vhodnými kandidáty jsou WinEdt a TeXnicCenter. Druhý jmenovaný je dostupný zdarma. Oba editory se vyznají v syntaxi LaTeXu a umožňují pohodlné kompilování zdrojového kódu dokumentu klikáním.

 

Struktura dokumentu .tex

\documentclass[volby]{třída}
   % preambule
\begin{document}
   % textová část
\end{document}

V TeXu obecně platí, že argumenty ve složených závorkách jsou povinné, v hranatých závorkách nepovinné. Znak % uvozuje komentář.

Příkazy v preambuli se vztahují k celému dokumentu (např. rozměry stránky). Dále lze v této části vkládat pomocné balíčky (makra) příkazem \usepackage, podrobněji níže.

 

Tabulky v LaTeXu

Nyní se rovnou věnujme konkrétním problémům a největším strašákům při seznamovaní s LaTeXem, jímž je také tvorba tabulek. A rovnou říkám, že zbytečně. Po zevrubném pochopení alespoň jedné tabulky se otevírájí dveře k pohodlnému vytvoření sebesložitější. Vkládání tabulek probíhá v systému LaTeX pomocí tzv. plovoucího prostředí table, jemuž můžeme přirozeně přiřadit label (značku) a caption (popisek). Obsah samotné tabulky vkládáme do prostředí tabular, jehož povinnými parametry jsou počet sloupců a zarovnání textu v nich. Obecná struktura tabulky vypadá nějak takto:

\begin{table}[htbp!]
\caption{popisek}
\label{značka tabulky}
  \begin{center}
    \begin{tabular}{c|l|r|p{délka}}
    % obsah tabulky
    \end{tabular}
  \end{center}
\end{table}

Nepovinné argumenty plovoucího prostředí table (totéž platí pro figure) mohou být použity ve vybrané kombinaci. Říkají LaTeXu, kam má tabulku na stránce umístit, jejich význam je následující: here, top, bottom a page of floats - tabulka se vysází na zvláštní stránku, na které budou pouze plovoucí objekty. Argument ! znamená vynucení pozice - milý čtenář v praxi brzy pochopí. „Označkování“ pomocí \label{znacka} se používá pro odkazování se na daný objekt v textu pomocí \ref{znacka}. Povinnými argumenty v prostředí tabular definujeme počet sloupců tabulky a jejich zarovnání. Význam je následující: center, left a right. p{délka} definuje pevnou délku sloupce a znak | pak zobrazení vertikální čáry mezi sloupci.

Konkrétní příklad tabulky:

\begin{table}[h]
  \begin{center}
    \begin{tabular}{c|c||c|c}
    vzorek&$pH$&vzorek&$pH$\\
    \hline
    1.&2.127&10.&4.257\\
    2.&2.391&11.&4.501\\
    3.&2.589&12.&4.803\\
    4.&2.745&13.&5.095\\
    5.&2.955&14.&5.375\\
    6.&3.191&15.&5.735\\
    7.&3.387&16.&6.029\\
    8.&3.655&17.&6.415\\
    9.&3.941&18.&6.773\\
    \end{tabular}
  \end{center}
\end{table}
obrázek tabulky

Nyní k interpretaci obsahu tabulky. V něm jsou použity tzv. zvláštní znaky - ty mají v LaTeXu zvláštní význam a to následující: & je oddělovač sloupců, $ uvozuje (resp. zakončuje) matematický mod a \\ jednoduše znamená přechod na nový řádek. Příkaz \hline vloží do tabulky horizontální čáru. Dále se při tvorbě tabulky mohou hodit tyto příkazy: \cline{i-j} namaluje horizontální čáru mezi sloupci i a j a \multicolumn{sloupce}{pozice}{text} sjednotí sloupce v tabulce. Povinný argument sloupce udává jejich počet, pozice určí zarovnání položky a text je obsah buňky.

 

Nejsou obrázky jako obrázky

Laskavého čtenáře bych rád upozornil na jednu drobnou nepříjemnost týkající se obrázků v LaTeXu (samotným vkládáním obrázků se zabývám níže). V běžném životě (např. na internetu) se setkáváme s tzv. rastrovým typem obrázků, jedná se o soubory s příponou .jpg, .png nebo .gif. Existují však i obrázky v tzv. vektorovém formátu (typicky .ps nebo .eps a mnoho dalších), který je zvlášť vhodný pro ukládání grafů. Jen krátce k rozdílům: zatímco obrázek uložený v rastru, čili jakési síti, jejíž každá buňka odpovídá pixelu a nese informaci o jeho barvě, vektorový obrázek je prostý text, ve kterém jsou informace o zobrazení jednotlivých objektů. Vektorový typ obrázku má tudíž libovolné rozlišení, což je někdy velmi znát. LaTeX umí pracovat s oběma typy souborů avšak ne zároveň. Z toho plynou dvě možnosti kompilování zdrojového souboru a tedy dva různé typy výsledku - .ps nebo .pdf.

 

Dvě cesty, jeden cíl

Jsou tedy dva způsoby překladu LaTeXovského souboru. V operačním systému MS Windows mezi nimi lze volit jednoduchým klikáním, takže se budu explicitně zabývat případem v systému GNU/Linux. Pro obrázky typu:

  • .png, .jpg nebo .pdf - použijeme přikaz pdfcslatex (resp. pdflatex), výstupem bude soubor formátu .pdf.
  • .eps nebo .ps - použijeme příkaz cslatex (resp. latex), výstupem bude soubor formátu .dvi. Z toho pak uděláme soubor .ps pomocí příkazu dvips.
Ze souboru .ps je poté možné udělat soubor .pdf pomocí příkazu ps2pdf.

 

Vkládání obrázků v LaTeXu

Samotné vkládání obrázků je velmi jednoduché. Je nutné používat makro, které přidáme v preambuli dokumentu pomocí příkazu \usepackage{graphicx}. Vložení se pak provede pomocí příkazu \includegraphics{název obrázku}.

Je vhodné přidávat obrázek pomocí tzv. plovouvího prostředí, v tomto případě figure, což nám umožní (stejně jako u plovoucího prostředí table) obrázku přiřadit label (značku) a caption (popisek). Konkrétně to může vypadat nějak takto:

\begin{figure}[h]
  \begin{center}
  \includegraphics[scale=1][angle=1]{název obrázku}
  \end{center}
\caption{popisek}
\label{značka obrázku}
\end{figure}

Příkaz \includegraphics může mít mnoho nepovinných argumentů, nejužitečnější jsou právě scale - definuje velikost obrázku a angle - úhel natočení obrázku (po směru hodinových ručiček).

 

Preambule a užitečná makra

Obsah preambule (neboli hlavičky) každého dokumentu je zásadní věc, bez správně napsané hlavičky budou jen potíže. Výčet příkazů a maker by měl vypadat následovně:

\pagestyle{plain} % nastaví číslování stránek, empty pro nečíslování

\frenchspacing % nastaví některá česká typografická pravidla
\usepackage[latin2]{inputenc} % definuje kódování zdrojového textu, v tomto případě iso-8859-2, ve windows použijte cp1250
\usepackage{czech} % zapne podporu češtiny
\usepackage{a4wide} % nastaví formát stránky A4
\usepackage{graphicx}

 

Nefunkční automatické číslování obrázků

Narazili jste při používání LaTeXu na tento problém? Mám pro Vás snadnou radu jak jej vyřešit.

Jak již bylo v textu zmíněno, v plovoucím prostředí (používaném pro obalení tabulek nebo obrázků) lze využít příkazy caption a label. První jmenovaný slouží pro vytvoření popisu objektu (LaTeX jej sám očísluje) a druhý pro přidání značky objektu, na kterou se pak kdekoli v textu můžeme odkázat příkazem \ref{značka objektu}. Ten je při překladu LaTeXem nahrazen za číslo přidělené odpovídajícímu objektu. Bohužel se mi několikrát stalo, že číslo přidělené objektu a číslo LaTeXem nahrazené za příkaz ref v textu si neodpovídají. Řešením je při vytváření plovoucího objektu použít příkaz label až za příkazem caption.

 

Dělení slov a další vychytávky

bude doplněno

 

K dalšímu čtení

 

Kudy tudy


Aktualitky

15/8/10
Fotky z Chorvatska.

11/11/08
Odkaz na diplomovou práci.

10/6/08
Aktualizace článku o LaTeXu.

29/4/07
Další článek, tentokráte o typografickém systému LaTeX.

11/3/07
Přidán článek o vypalování.

8/12/06
Přidána nová sekce A/V.

20/11/06
Kompletní změna designu stránek.