Hlavní navigace

Jak na LaTeX: plovoucí prostředí

Michal Švamberg 13. 9. 2001

Plovoucí prostředí je jednou z nejzajímavějších věcí v sazbě. Spočívá v tom velké tajemství a rozumná dávka překvapení (alespoň pro mě). Jak vytvořit takové prostředí a co do něj můžeme napsat, se dozvíte v článku. V teorii se podíváme na některé pojmy, které jsme opomněli při procházce mezi fonty.

Teorie

Následující pojmy jsou z problematiky DTP, v dalších dílech je nebudeme (nebo jen velmi málo) používat. Tento výčet je zde pro úplnost a také abyste byli připraveni, kdyby někdo chtěl machrovat :)

Čtverčík
Tento zajímavý termín se objevil v jedné diskusi u minulých dílů. Co to vůbec je za pojem? Ve své podstatě je čtverčík plocha, do které se vejde velké písmeno M (včetně potřebných mezer okolo sebe). A proč se to jmenuje čtverčík – protože výsledná plocha má tvar čtverce. Při sazbě je nejvíce problémů s horizontálními mezerami, a tak se můžete dovědět, že někde se sází mezera o velikosti půl čtverčíku, jindy to je čtvrt a někde celý čtverčík, dokonce existuje i záporná mezera. Až se dostaneme k sazbě mezer, určitě se dozvíte, kde se co používá.

Čtverčík má ještě jednu zajímavou funkci. Když jej rozdělíme na nějaký počet sloupečků (nejčastěji 18), dostaneme jednotky (units), což je relativní míra používaná v DTP. Každé písmeno pak potřebuje pro svůj správný tisk určitý počet těchto jednotek (do velikosti jsou započítány i okolní mezery nutné pro správnou sazbu). Například písmenům i, j, l postačují čtyři jednotky. Číslice si vystačí s deseti jednotkami a druhé největší písmeno – W – potřebuje sedmnáct jednotek (hodnoty záleží na použitém písmu). Tyto hodnoty jsou pak velmi důležité pro program, který by bez nich jen s obtížemi dokázal text pěkně zarovnat.

Vzpomínáte si z minulého dílu na jednotku velikosti označenou jako em? Tak právě jeden em odpovídá velikosti čtverčíku pro daný font. V minulém dílu bylo psáno, že em je výška daného fontu, a to je také pravda. Protože velikost strany čtverčíku odpovídá velikosti kuželky daného fontu.

Kuželka
Pojem, který je pozůstatkem z kovové sazby (tedy z doby, kdy se jednotlivé stránky před tiskem skládaly z hromady malých (kovových, většinou olověných) písmenek, což je stejný systém jako v dobách prvních Guttenbergových knihtisků). Kuželka je výška písma, k níž jsou přidány potřebné meziřádkové odstupy. Tím se zabrání tomu, aby dolní dotahy písma z předchozího řádku nezasahovaly do horních dotahů písma na aktuálním řádku. Lidsky řečeno, jedná se o to, aby se písma z jednotlivých řádků nedotýkala (a překrývat by se neměla vůbec). V obrázku jsou uvedeny celkem tři míry. Střední výšku písma již známe, se světlou výškou, stejně tak s velikostí kuželky, se setkáváme poprvé.

Kuželka, světlá a střední výška

Stupeň písma
V předchozích článcích byl tento pojem již několikrát použit s tím, že se jedná o aktuální výšku písma (jeho velikost). Ve skutečnosti udává stupeň písma rozpětí mezi horní (resp. dolní) dotažnicí písma předchozího řádku a horní (resp. dolní) dotažnicí písma řádku aktuálního. Kdo čte pozorně, asi teď přemýšlí, jaký je rozdíl mezi stupněm a kuželkou. Rozměrově jsou oba pojmy stejné, akorát stupeň písma je zvykem udávat v bodech a také je to klasický způsob zadávání velikosti písma.

Velikost písma
Udává se nejčastěji v milimetrech a je to světlá výška písma. Používá se ve fotosazbě, někdy při sazbě titulků. Je ovšem nutné si upřesnit, jaký rozměr máme opravdu na mysli. Většinou tento rozměr DTP programy nepoužívají, čímž se nám zjednodušuje život.

Vyzná se v tom někdo?
Aby bylo vše ještě zamotanější, pojmy se většinou mezi sebou relativně volně mísí. Zvláště pak pojmy udávající velikosti písma. Z kontextu lze naštěstí vyčíst, o jakém rozměru se mluví. A tak pojmy velikost, stupeň či výška většinou splynou v jeden rozměr, který označuje hodnotu, již lze v programu zadat pro získání dané velikosti písma.

Plovoucí prostředí

Jeho název je velmi výstižný. Je to taková část dokumentu, která není tak těsně svázána s vlastním textem, že může být umístěna někde v blízkosti a případný její posun neporuší kontext dokumentu. Do takového prostředí se nejčastěji umisťují tabulky nebo obrázky (případně něco jiného).

Když už máme něco pohyblivého a může nám to zmizet třeba na následující stránce, je potřeba na to nějak umístit odkaz. Z tohoto důvodu se uvnitř prostředí používají dva příkazy (nejsou povinné):

Tabulka č. 193
Příkaz Popis
\caption{popisek}

S jakým popiskem se plovoucí prostředí má vysázet. Výsledkem je standardně
jméno prostředí (Obrázek, Tabulka) s pořadovým číslem a textem udaným
popisek.

\label{odkaz}

Dané prostředí si lze označit nějakým názvem, na který se pak budeme
odkazovat (takové symbolické pojmenování prostředí). Doporučuji v názvech
nějak systematicky oddělovat jednotlivá prostředí, například pro tabulku
tab.data1 a pro obrázek (graf vycházející z
tabulky) pak použít obr.data1. Příkaz se
umísťuje až za \caption, jinak nebude správně
fungovat odkaz (bude vytisknuto prázdné místo).

Příkaz \label lze použít také kdekoliv jinde v textu, kde potom označuje odkazy pro jednotlivé kapitoly, na které se pak můžete v textu odkázat. Této problematice se ovšem budeme věnovat v následujícím dílu, dnes se podíváme jen na to, co nás zajímá u plovoucích prostředí.

Existují dvě základní plovoucí prostředí, prvním je table určené pro tabulky a druhým je figure pro obrázky. Obě prostředí jsou vlastně úplně stejné, rozdíl je v chování příkazu  \caption.

A zde je zápis prostředí:

\begin{table}[umístění]

  ... tabulka ...

  \caption{popisek}
  \label{odkaz}
\end{table}

Do pole umístění lze vložit následující písmena označující:

Tabulka č. 194
h(here):

tabulku umístí tam, kde je uvedena ve zdrojovém souboru, výsledkem je, že
prostředí se nestává plovoucím a je vysázeno právě tam, kde je psáno. V
případě zadání tohoto parametru vás při překladu LaTeX upozorní, že to mění
na ht. Což znamená, pokud se mu tabulku
nepodaří umístit právě zde, „šoupne“ ji nahoru. Z tohoto důvodu se
doporučuje přímo zapisovat ht místo prostého
h. Lze použít i jinou kombinaci.

t(top): tabulka bude umístěna nahoře na stránce s textem.
b(bottom): a zde naopak zarovnána ke spodnímu okraji stránky.
p(page):

určuje, že se tabulka umístí na speciální stránku s dalšími plovoucími
prostředími (pokud se tam vlezou). Na této stránce nebude „normální“ text.

Jednotlivé položky lze vzájemně kombinovat, jak již bylo naznačeno u možnosti  h.

Vše zde uváděné platí také pro prostředí figure. Lze použít ty samé parametry. Obsah prostředí (tabulka, obrázek) je vhodné uzavřít ještě do prostředí center, které zajistí jeho vystředění a výsledek pak vypadá mnohem lépe (ale tak, jako v mnoha jiných případech, i zde záleží na cítění a úmyslu autora).

Nyní bychom se měli ještě dozvědět, jak se na tabulku odkázat. Pro takovou operaci nám slouží dva příkazy, \ref{odkaz} a \pageref{odkaz}. V prvním případě vám vytiskne číslo tabulky, na kterou vede daný odkaz, druhý příkaz tiskne číslo stránky, na které je tabulka umístěna.

Popisování a teorie by už stačilo, následuje příklad:

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

\begin{document}
Jak je vidět, zde je v~tom zcela chaos. Čeho si asi hned všimnete
je, že ne vše je tak, jak má být. Například tabulka
\ref{tab.mrizka} je sice dole. Oproti tomu má být obrázek
\ref{obr.logo} (strana \pageref{obr.logo}) nahoře. Vůči zde
uvedenému textu se to sice podařilo, ale dřívější plovoucí
prostředí si svoji "pozici" nenechalo vzít.

\begin{table}[b]
\begin{center}
    \begin{tabular}{|l|l|}
      \hline
        ~ & ~ \\
      \hline
        ~ & ~ \\
      \hline
    \end{tabular}
 \caption{Centrovaná mřížka (použit parametr {\tt b}).}
 \label{tab.mrizka}
\end{center}
\end{table}

Důvodem je, že uspořádat stránku podle všech našich představ se
asi nikdy nepodaří. Také se vždy předpokládá, že se plovoucí
prostředí vztahuje k~danému textu a proto není zrovna nejvhodnější
jej nechat odplout někam daleko. Proto po kompilaci nemusí být
výsledek dle očekávání.

\begin{figure}
\begin{verbatim}
   /\
  /__\
  |  |
__|__|_|_|_|_|_
    \end{verbatim}
 \caption{Nezarovnaný obrázek domečku s~plotem (bez parametru).}
 \label{obr.asciiart}
\end{figure}

Musíme si vyzkoušet odkaz také na neexistující položku: jak je
vidět tabulku \ref{tab.neexistuje} jsem nikdy nevytvořil. Při
překladu na to překladač upozorňuje varovným hlášením.

Ještě nám schází udělat odkaz na obrázek \ref{obr.asciiart}.
Pokud použijeme odkaz znovu, tak se nic neděje, jen se znova
vysází to samé číslo: také se vám líbí domeček na obrázku
\ref{obr.asciiart} uvedený na stránce \pageref{obr.asciiart}?

\begin{figure}[t]
\begin{center}
    {\Huge \TeX~a \LaTeX}
  \end{center}
 \caption{Loga programů (použit parametr {\tt t}).}
 \label{obr.logo}
\end{figure}

Není zde vidět žádná ukázka na parametr \texttt{p}. Věřte, že by
se vysázela extra stránka pouze s~plovoucími prostředími a tento
text by se na ni nikdy nedostal.

\end{document}

[ tex |
dvi |
ps |
jpg ]

U obrázku s domečkem není zadáno centrování už z toho důvodu, že by nemělo smysl, protože prostředí verbatim se centrovat tak jednoduše nedá. V textu je použito několik odkazů, mezi nimi i jeden neexistující, místo čísla se zde vytiskly dva otazníky.

Závěr

Při práci s odkazy nezapomeňte dokument několikrát zkompilovat, aby odkazy ukazovaly opravdu tam, kam ukazovat mají.

Dnes skončíme zcela netradičně odkazem na literaturu, z níž jsem čerpal dnešní teorii. Odkaz doporučuji prohlédnout, protože je to jeden z nejčastěji používaných formátů zápisu. Právě sazbě literatury, odkazům na literaturu a dalším zajímavým věcem bude věnován příští díl.

Literatura
Herout, P.: Příprava textů počítačem II. Vydavatelství Západočeské univerzity, Plzeň 1998

Našli jste v článku chybu?

6. 1. 2014 10:48

Zdravím,

chtěl jsem se zeptat, zda-li lze nějakým způsobem vkládat plovoucí prostředí do tabulky (plovoucím prostředím mám na mysli zejména obrázky a tabulky, ideálně i s křížovými odkazy a popisky). Předem děkuji za jakoukoliv radu.

9. 1. 2007 17:38

celer (neregistrovaný)
\clearpage, ale zacne umistovat na nove strance
Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

DigiZone.cz: ČRa DVB-T2 ověřeno: Hisense a Sencor

ČRa DVB-T2 ověřeno: Hisense a Sencor

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

DigiZone.cz: ČRo rozšiřuje DAB do Berouna

ČRo rozšiřuje DAB do Berouna

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

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

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

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

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

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel