Hlavní navigace

Jak na LaTeX: literatura

Michal Švamberg

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 ]

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í.

Našli jste v článku chybu?

6. 1. 2008 22:57

Opravar (neregistrovaný)
Pokud vam nejde zmenit nazev Reference na literatura, tak je velmi pravdepodobne, ze pouzivate balik
\usepackage[czech]{babel}
a pri jeho pouziti je treba autorem uvadeny prikaz zaclenit nikoliv do zahlavi dokumentu, nybrz primo do jeho tela...stejne tak, pokud chcete upravovat nazvy popisku tabulek, obrazku, apod... Naschval uvadim priklad i s dalsimi (pro zajemce) pouzitelnymi prikazy
\documentclass[a4paper,12pt,oneside]{article}
\usepackage[czech]{babel}
\usepackage[utf8]{inputen…

4. 11. 2009 16:50

začátečník (neregistrovaný)

Zdravim. Hledám radu. Používám MikTex a nevim si rady, proč mi nejde nic vysázet. Už jsem pár dokumentů vysázel:

\documentclas­s{article}
\usepackage[czech]{ba­bel}
\usepackage[ut­f8]{inputenc}

\begin{document}
bla bla bla

\end{document}

, ale z ničeho nic mi to píše pořád tohle:

! Package babel Error: You haven't defined the language french yet.

See the babel package documentation for explanation.
Type H <return> for immediate help.
 …

l.6 \select@langu­age{french}

dřív jse…






Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Podnikatel.cz: Změny v cestovních náhradách 2017

Změny v cestovních náhradách 2017

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Vitalia.cz: Potvrzeno: Pobyt v lese je skvělý na imunitu

Potvrzeno: Pobyt v lese je skvělý na imunitu

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?