Hlavní navigace

Jak na LaTeX: literatura

20. 9. 2001
Doba čtení: 5 minut

Sdílet

Každý správný technický dokument obsahuje seznam literatury, která byla při tvorbě daného dokumentu použita. Určitě byste se také rádi v textu na tuto literaturu odkázali. Mimo to se také dozvíte, jak rozdělit jeden dokument do více souborů a co vás k takovému rozhodnutí může vést.

Teorie

Když máme velký soubor se zdrojovým textem dokumentu, většinou se v něm špatně orientujeme. Text můžeme rozdělit do několika souborů, ale pak potřebujeme umět soubory propojit. V těchto článcích žádný takto rozsáhlý příklad nebyl uveřejněn (a ani nebude :), z tohoto důvodu je tato problematika uvedena v teorii, ačkoli je to záležitost praktická.

Jediným důvodem k tomu, abychom dokument rozdělovali do více souborů, je opravdu přehlednost. Samozřejmě není vhodné dělit dokument všude, kde se nám zlíbí, ale podle nějakého klíče. Tím jsou většinou kapitoly nebo nějaké logické celky, jako jsou přílohy, do zvláštních souborů můžeme také umístit rozsáhlejší tabulky, případně obrazovou přílohu (možností je mnoho). Další výhodou je, že na jedné dokumentaci může pracovat více lidí.

Jeden soubor je vždy hlavní a pouze ten se překládá. Ostatní soubory se při překladu „vtáhnou“ do tohoto hlavního souboru. Aby bylo jasné, v jakém pořadí a kde má být který soubor zařazen, určíme to v hlavním souboru pomocí příkazů \input{soubor­.tex}. Tento příkaz lze samozřejmě použít i ve vkládaném souboru, čímž můžeme vytvořit velmi zajímavou stromovou strukturu.

Existuje také příkaz \include{soubor}, který je ekvivalentní zápisu \clearpage \input{soubor} \clearpage. Příkaz \include není jen obyčejné makro, protože dokáže spolupracovat s příkazem \includeonly{sez­nam}. Pokud je \includeonly uvedeno v hlavičce dokumentu se seznamem souborů (jména souborů se oddělují čárkou, automaticky se předpokládá přípona tex, a proto se zapisují do obou příkazů bez této přípony), bude příkaz \include proveden jen v případě, že je vkládán soubor, který je uveden v seznamu u příkazu \includeonly. Jestliže příkaz \includeonly není uveden, předpokládá se, že se mají vložit všechny soubory uvedené v příkazech \include.

V tomto ohledu je výhodné používat příkazy \include a \includeonly tam, kde je potřeba vytvářet více různých dokumentů (vynechání nebo přidání kapitol, případně různé jazykové mutace dokumentu). Je nutné si uvědomit, že vkládaná část se vloží na novou stránku a po jejím ukončení se přepne na další stránku. Je to přesně takové, jako kdybychom do nějakého vytištěného dokumentu vkládali další papíry s jinou prací. Oproti tomu se příkaz \input chová tak, jako bychom do dokumentu něco dopisovali.

Malý příklad použití (překlad se provádí pouze nad hlavním souborem):

\documentclass[11pt,titlepage]{article}
\usepackage[latin2]{inputenc}
\usepackage{czech}
\usepackage{a4wide}

% definice souboru, ktere se maji vložit
\includeonly{data1, section1}

\begin{document}

% vkladame soubor section1.tex
\include{section1}

% vkladame soubor graphs.tex, te ale neni uveden
% v \includeonly a proto bude vlozeni preskoceno
\include{graphs}

% vlozime soubor data1.tex
\include{data1}

% zde vlozime soubor about.tex,
\input{about.tex}

\end{document}

[ tgz | dvi | ps ]

Aby se správně vytvořily křížové odkazy a jiné seznamy, jako jsou obsah nebo seznam obrázků, je potřeba provést překlad několikrát.

Mezi příkazy \input a \include je ještě jeden rozdíl. Příkaz \input se vkládá do dokumentu a kompiluje se jako součást tohoto dokumentu, ale u příkazu \include je soubor kompilován více samostatně, a proto vznikají pomocné soubory pro kompilaci k jednotlivým vkládaným částem zvlášť.

Literatura

Základní prostředí pro sazbu literatury se nazývá thebibliography. Jednotlivé položky seznamu literatury se vkládají příkazem \bibitem. Zobecněný zápis prostředí vypadá takto:

\begin{thebibliography}{nejširší_značka}
  \bibitem[značka]{odkaz}text
...
\end{thebibliography}

Do povinného parametru nejširší_značka se zapisuje text, který je nejširší ze značek u jednotlivých položek. Toto je důležité pro správné a pěkné vysázení celého seznamu s literaturou. Pokud se u jednotlivých položek značka nezadává, číslují se tyto položky automaticky. Ovšem položku nejširší_značka je potřeba vyplnit, proto se nejčastěji vyplňuje nějakým číslem, které má stejný počet cifer jako poslední položka v seznamu (tedy ta nejširší).

Položka odkaz v příkazu \bibitem by měla být unikátní, abychom se pomocí ní mohli v textu odkázat. Má tedy podobnou funkci jako příkaz \label{odkaz} z předchozího dílu. Do pole text se píší informace o dané literatuře.

Nejlépe, když si to ukážeme prakticky:

\begin{thebibliography}{9}
\bibitem{dtp}{\em Herout, P.:}
               {\bf Příprava textů počítačem II.} \\
           Vydavatelství Západočeské univerzity,
           Plzeň~1998
  \bibitem{cstug}{\em Dokumentace na
               serveru sdružení CSTUG}\\
               \texttt{http://www.cstug.cz/}
\end{thebibliography}

Thebibliography

[ tex | dvi | ps ]

Jak je vidět, vysázely se nám dvě položky. Jediná nepříjemnost je s nadpisem, který poněkud vybočuje z našich zvyklostí. Jak se má jmenovat seznam literatury v LaTeXu, je uloženo v proměnné \refname, a proto ještě v hlavičce dokumentu uvedeme následující příkaz: \def\refname{Li­teratura}, kterým změníme název.

Druhou zvláštností je, že seznam s literaturou se nepromítne do obsahu, což také není nejlepší. Pokud chceme mít literaturu zařazenou do obsahu, musíme ji vložit manuálně příkazem \addcontentsline. O obsahu a dalších tabulkách budeme mluvit v některém z následujících dí­lů.

Než si ukážeme dnešní poslední příklad, chybí nám informace o tom, jak se na danou položku ze seznamu literatury odkázat v textu. Pro tento účel se používá příkaz \cite[text]{od­kaz}. Do položky text se může zapsat pomocná informace, která se vysází jako součást odkazu, viz příklad. Položka odkaz pak určuje, o který záznam ze seznamu se jedná.

\documentclass[11pt,titlepage]{article}
\usepackage[latin2]{inputenc}
\usepackage{czech}
\usepackage{a4wide}

\def\refname{Literatura}

\begin{document}
Mým oblíbeným programovacím jazykem je Perl. Při
programování hodně používám \cite{prog_v_perlu},
a pěkné triky se dozvíte
v~\cite[základy Perlu nutné]{perl_pro_pokrocile}.

\begin{thebibliography}{Perl98}
\bibitem[Perl97]{prog_v_perlu}
{\em L. Wall, T. Christiansen, R. L. Schwartz:}
       {\bf Programování v jazyce Perl}\\
       Computer Press, Praha 1997
  \bibitem[Perl98]{perl_pro_pokrocile}
{\em Sriram Srinivasan:}
       {\bf Programování v Perlu pro pokročilé}\\
       Computer Press, Praha 1998
\end{thebibliography}
\end{document}

[ tex | dvi | ps | jpg ]

CS24_early

Závěr

Pokud si myslíte, že vám prostředí thebibliography nepostačuje, vyzkoušejte program BibTeX, který je určen pro tisk literatury.

Příště se podíváme na problematiku, kterou již slibuji několik dílů. Tímto tématem je sazba mezer, pomlček, čísel a dalších drobností.

Byl pro vás článek přínosný?