TeXové drobnosti
   
TeXové drobnosti CSTUG


Čo je to DVI súbor

DVI súbor (teda súbor, ktorý má príponu .dvi) je hlavný výstupný súbor TeXu (použijúc TeX v širšom zmysle, zahŕňajúc v tom aj LaTeX a ďalšie verzie a varianty TeXu). DVI znamená device independent, čo je nezávislý od zariadenia, a znamená to, že tento súbor by mal byť vytlačený rovnako, bez ohľadu na typ zariadenia, na ktorom to bolo vykonané. DVI súbor je čítaný ovládačom zariadenia (pozri Otázku Čo je to ovládač) ako je tlačiareň (napr. LaserJet) alebo je vstupom pre prehliadač na obrazovke monitora. V DVI súbore je použité TeXovské vnútorné kódovanie. Z TeXovského vstupného súboru by sme mali urobiť vždy ten istý DVI súbor bez ohľadu na implementáciu TeXu, ktorú použijeme.

DVI súbor obsahuje všetky informácie, ktoré sú potrebné pre tlač alebo prezeranie, ale nie konkrétne bitové mapy alebo iné popisy písma. Snáď ešte materiál, ktorý je uvedený v príkaze \special (pozri Otázku Příkazy typu \special).

Základný odkaz na štruktúru DVI súboru je zdrojový text dvitype.


Čo je to ovládač

Ovládač (driver) je program, ktorý má za vstup DVI súbor (pozri Otázku Čo je to DVI súbor) a (obvykle) produkuje súbor, ktorý môže byť poslaný do typografického výstupného zariadenia, napríklad tlačiarne.

Ovládač je obvykle špecifický pre danú tlačiareň alebo triedu tlačiarní, aj keď každá PostScriptová tlačiareň by mala vytlačiť výstup PostScriptového ovládača.

Ovládač potrebuje DVI súbor, ako aj informáciu o písme. Písma môžu byť zadávané vo forme bitových máp alebo odkazom na písmo, ktoré je priamo obsiahnuté v tlačiarni. Každý ovládač očakáva informáciu o písme v špecifickej podobe. Viac informácií o formách písem môžete nájsť v otázkach Čo sú to PK súbory, Čo sú to TFM súbory, Čo sú to DC písma a Použití PostScriptových fontů v TeXu.


Čo sú to PK súbory

PK súbory (od slov packed raster) obsahujú bitmapy písem. Výstup z METAFONT (pozri Otázku Jak dostat z METAFONTu to, co chcete) obsahuje GF súbor (generic font). Tento konvertuje program gftopk do PK súboru. Existuje mnoho PK súborov, pretože pre každé písmo potrebujeme jeden. Dokonca pre každú bodovú veľkosť aj magnification - zväčšenie, každý typ každej rodiny písem. Navyše, PK súbor pre jednu tlačiareň nemusí nevyhnutne byť dobrý pre druhú tlačiareň. V takom prípade je treba mať celú množinu PK súborov aj pre túto ďalšiu tlačiareň. Výsledkom sú často komplikované adresárové štruktúry alebo FLI (font library file) súbory pre väčšiu usporiadanosť prístupu.


Čo sú to TFM súbory

TFM je skratka pre TeX font metric, čiže TFM súbor obsahuje informácie o rozmeroch charakterov (písmeniek), o ligatúrach (typografické spojenie dvoch alebo viacerých znakov) a o medziznakových medzerách v danom písme. Pre každé písmo je potrebný jeden TFM súbor, dokonca pre každú bodovú veľkosť. Ale jeden TFM súbor je pre všetky zväčšenia (magnifications), preto je vo všeobecnosti TFM súborov menej ako PK súborov. Dôležité je, že TFM súbory používajú programy TeX, LaTeX, ale nie sú vo všeobecnosti potrebné napríklad pre ovládače tlačiarní.


Virtuální fonty

Virtuální fonty pro TeX jako první implementoval David Fuchs už na začátku jeho historie, ale pro většinu lidí začaly existovat, až když Knuth v roce 1989 změnil formát a napsal několik podpůrných programů. Použití virtuálních fontů je způsob, jak říci TeXu o něčem složitějším, než je vzájemně jednoznačné mapování znaků. Entity, které se definují ve virtuálním fontu, vypadají jako TeXovské znaky (objevují se s popisem jejich velikosti a souborem metriky fontu), ale dvi procesor je může expandovat do něčeho zcela odlišného. Tato schopnost se dá využít pro přeskládání znaků, pro vytvoření fontu poskládaného z glyfů pocházejících z různých zdrojových souborů, nebo obecně k vytváření různě složitých efektů -- virtuální font může obsahovat cokoliv, co je přípustné v dvi souboru. Ve většině praktických případů se virtuální fonty používají k přeskládání postscriptových fontů (viz Soubory metrik TeXovských fontů pro PostScriptové fonty) nebo k vytváření ,,nepravých`` matematických fontů.

Je důležité si uvědomit, že samotný TeX virtuální fonty nevidí. Pro každý virtuální font, který čte dvi ovladač, existuje odpovídající tfm soubor, který čte TeX. Virtuální fonty jsou normálně vytvořeny v jednom ASCII souboru (vpl, Virtual Property List), který obsahuje oba druhy informace. Program vptovf pak vytvoří binární tfmvf soubory. Nejběžnějším způsobem (v dnešní době) jak vygenerovat vpl soubor, je použít programový balík fontinst, který je detailně popsán společně s diskusí o viz Soubory metrik TeXovských fontů pro PostScriptové fonty. Dalším prostředkem pro ad-hoc vytváření virtuálních fontů je CTANqdtexvpl od Eberharda Mattese.


Příkazy typu \special

TeX poskytuje prostředy k vyjádření věcí, které mohou dělat ovladače zařízení, ale o kterých TeX sám neví nic. Například TeX neví nic o tom, jak zařadit postscriptový obrázek do dokumentu, nebo jak nastavit barvu tisknutého textu. Ale některé ovladače zařízení to umějí.

Takové věci jsou umožněny prostřednictvím příkazů \special. Jediná věc, kterou s takovým příkazem TeX udělá, je, že expanduje jeho argumenty a pak příkaz přepíše do dvi souboru. Ve většině případů jsou k dispozici balíky (často i s ovladačem), které poskytují srozumitelné rozhraní k příkazům \special. Například při vkládání obrázku do textu je nutno vynechat patřičnou mezeru. Anebo změna barvy může být náročnější operace vyžadující znalost triků. LaTeX 2e má standardní balíky pro grafiku a barvu, s jejichž pomocí jsou vkládání souborů, rotace, změny měřítka a barvy prostřednictvím příkazů \special jednoduché.

Argumenty povolené pro příkaz \special závisejí na ovladači zařízení. Kromě předchozích příkladů existují příkazy \special pro ovladače z emTeXu (např. dvihplj, dviscr, atd., které kreslí přímky s libovolným sklonem, a příkazy pro ovladač dvitoln03, které umožňují, aby stránka byla vysázena naležato).


Dokumentované LaTeXovské zdroje (.dtx soubory)

LaTeX 2e a spousta podpůrných balíků maker jsou nyní psány metodou viz Co je dokumentované programování, se zdrojovým kódem i dokumentací ve stejném souboru. Autorem tohoto formátu, který je znám jako ,,doc``, je Frank Mittelbach. Dokumentované zdroje mají podle konvence koncovku .dtx a dokumentace by z nich měla být před používáním odstraněna. Případně lze soubor .dtx zpracovat LaTeXem, čímž vznikne pěkně zformátovaná verze dokumentovaného kódu. Většinou je k dispozici instalační dávka (s příponou .ins), která potřebuje standardní balík LaTeX 2e docstrip. Ten odstraňuje všechny poznámky, jejichž obsahem je právě ta dokumentace. V průběhu instalace se (kromě jiných věcí) odstraňuje ze souborů jejich dokumantace, aby se zvýšila rychlost čtení těchto souborů běžícím LaTeXem. Do jednoho .dtx souboru může být zahrnuto více balíků, s podmíněnými sekcemi a prostředky pro indexy maker atd. Soubory .dtx může psát každý. Jejich formát je popsán v The LaTeX Companion (viz Knihy o TeXu a příbuzná literatura). Zatím neexistují programy podporující psaní .dtx souborů.

Poté, co byly z .dtx souborů vytvořeny .sty nebo .cls (a další) soubory, nejsou už soubory .dtx LaTeXem používány. Nemusí být uchovávány s fungujícím systémem. Nicméně pro mnoho balíků jsou primárním zdrojem dokumentace, takže je někdy dobré si je ponechat.


Čo sú to DC písma

Písmo (font) pozostáva z množiny znakov (písmen, číslic a špeciálnych znakov). Aby sme ich mohli vytlačiť, musíme mať nadefinovaný prístup k nim. V TeXu sú usporiadané v určitom poradí, ktoré voláme kódovanie. Z rôznych príčin D. Knuth zvolil trochu výstredné kódovanie. Konkrétne, pre rôzne písma zvolil rôzne kódovania.

Po uvolnení TeXu, verzie 3, boli niektoré ,,výstrednosti`` odstránené. Na stretnutí TUGu (TeX User Group) v Corku bolo definované nové kódovanie pre množinu 256 znakov. Cieľom bolo pokryť väčšinu európskych jazykov, v zmysle zahrnutia všetkých možných akcentovaných znakov (napríklad Knuthovo kódovanie nepokrýva poľské alebo islandské akcentované znaky a Corkovské kódovanie áno). LaTeX 2e (pozri Otázku LaTeX 2e (nový standard LaTeXu)) umožňuje použiť Corkovské kódovanie (T1), a tak sa umožňuje vyhnúť konfliktom a problémom s delením slov s akcentami (pozri Otázku Nezvykle rozdělená slova).

METAFONTovské písma, ktoré sú v súlade s Corkovským kódovaním, sa volajú DC písma (dostupné ako CTANdc; ubezpečte sa, že máte verziu 1.2, úroveň opráv 1, z decembra 1995 alebo neskoršiu). Tieto písma vyzerajú ako Computer Modern písma. Mali by byť chápané ako medzikrok ku písmam EC (ktoré budú, ako dúfam, dostupné niekedy v roku 1996). Ich vážnou nevýhodou pre náhodného používateľa je, že súbory sú veľké - každé DC písmo je zhruba dvakrát väčšie ako zodpovedajúce CM písmo. Preto a pokiaľ zodpovedajúce matematické písma nie sú vytvorené, musia byť CM písma zachované.

Corkovské kódovanie je implementované aj v PSNFSS systéme (pozri Otázku Použití PostScriptových fontů v TeXu) pre PostScriptové písma.


CSTUG
(c) 12.05.2000 18:52 Libor Škarvada, Tomáš Hudec, Aleš Vítek
Připomínky, opravy a zejména odpovědi na další časté otázky posílejte na adresu cstug-faq@cstug.cz
Připomínky k HTML verzi posílejte na adresu libor@fi.muni.cz nebo hudec@fi.muni.cz.