\"/
\"/ \"/    

Grafika v TeXu (2)

Petr Sojka, ÚVT MU
Ročník IV - číslo 1, září 1993
Citace: P. Sojka. Grafika v TeXu (2). Zpravodaj ÚVT MU. ISSN 1212-0901, 1993, roč. IV, č. 1, s. 12-14.
Tematické zařazení: Typografie, počítačová sazba
Článek je součástí seriálu Grafika v TeXu
 předchozí článek | následující článek 

Dnešní pokračování seriálu o grafických možnostech sázecího systému TeX je věnováno ukázce možností dalších balíků maker a zejména možnostem METAFONTu.

3  Grafika vytvářená programem METAFONT

Další prostředky, jak vytvářet grafiku (zejména nové znaky, fonty, loga či algebraicky snadno definovatelné křivky), poskytuje program METAFONT. Autorem tohoto programu není nikdo jiný než autor TeXu Don Knuth. Knuth použil METAFONT k vytvoření sad písem Computer Modern (písma běžně užívaná s TeXem, jimiž je také sázen tento Zpravodaj) a Concrete Roman (viz textové fonty odstavce s pohádkou v tomto článku). Znaky jsou definovány ve speciálním jazyce se syntaxí a částečně filosofií (makroprocesor) podobnou TeXu. Pro ilustraci uveďme kódy znaků "fajfka" a "tučná fajfka".

u# := 1/10pt#;

beginchar(33, 100u#, 100u#, 0);
z0 = (50u, 50u); z1 = (15u, 35u);
z2 = (25u, 7u); z3 = (52u, 50u);
z4 = (90u, 97u);
z10 = (18u, 25u); z20 = (25.5u, 4.5u);
pickup pencircle xscaled 17.5u yscaled 10u rotated 30;
draw z1 .. z10 .. z2;
pickup pencircle xscaled 10u yscaled 3u;
draw(z20 .. z3 .. z4);
endchar;

beginchar(34, 100u#, 100u#, 0);
z0 = (50u, 50u); z1 = (15u, 50u);
z2 = (18u, 20u);
z3 = (55u, 50u); z4 = (90u, 90u);
z10 = (15u, 45u); z20 = (19.5u, 20u);
z21 = (25u, 25u); z40 = (87.5u, 88u);
pickup pencircle xscaled 27.5u yscaled 17.5u rotated 45;
draw z1 .. z10 .. z2;
pickup pencircle xscaled 18.5u yscaled 7.5u rotated 270;
draw(z20 .. z21 .. z40 .. z4);
endchar;

Máme-li k dispozici dostatečně bohatou sadu znaků, můžeme psát i obrázkové pohádky:

Byl jednou jeden <chlapec> a <děvčátko>. Babička jim <napsala> <dopis>, že je <smutná>, že ji tak dlouho nenavštívili. Takbabičce <zatelefonovali>, že ji přijdou navštívit, aby napekla koláče. Byly <tři hodiny>, když se vydali na cestu. ¤ svítilo, <květiny> kvetly a děti si <zpívaly> pochodové písně. Našly i <čtyřlístek>. Přebrodily, když se začlo smrákat a vyšel <měsíc>. Setmělo se a na obloze se objevil i <Mars>, <Jupiter> a <Saturn>. Chtěly se <vrátit>, ale nevědely již cestu zpět. Strhla se <bouřka>. Už si myslely, že, když ...1 A zazvonil <zvonec> a pohádky je <victorka>.

METAFONT si svou složitostí nezadá s TeXem, pro běžné smrtelníky však postačí základní informace, jak vygenerovat žádané fonty pro dané výstupní zařízení v potřebné rozlišovací schopnosti.

mfpic

Pro ty, kteří nechtějí vnikat hluboko do tajů METAFONTu, se nabízejí jednoduchá makra s názvem mfpic.

Zadávání takového obrázku je podobné jako u maker epiceepic či v okolí picture s tím rozdílem, že makra generují zdrojový text pro METAFONT. Po prvním překladu TeXem musíme spustit METAFONT, abychom v dalším průchodu TeXu již měli metrické informace spočítány; obrázek je pak automaticky vysázen na požadovaném místě. O tom, že nejde o nic složitého, svědčí i skutečnost, že vyčerpávající manuál k makrům mfpic čítá 9 stran.

\opengraphsfile{eurotex}
\begin{mfpic}[1]{-160}{150}{-150}{105}
\pen{1.5}
\ellipse{(-110,90),70,40}
  \label{-140}{85}{manuscript}
\ellipse{(0,75),70,40}
  \label{-30}{70}{proof copy}
\ellipse{(0,-75),70,40}
  \label{-30}{-77}{\LTEX\ file}
\ellipse{(-110,0),70,40}
  \label{-137}{-5}{\ISIS}
\ellipse{(110,0),70,40}
  \label{90}{-5}{DVI file}
....
\end{mfpic}

Tento způsob generování obrázků je lehce přenositelný a nevyžaduje zvládnutí rozsáhlých znalostí METAFONTu.

Závěr

Všechny znaky a fonty použité v tomto článku jsou vytvořeny v METAFONTu a jsou k dispozici (jsou public domain nebo freeware) v univerzitním elektronickém archivu ftp.muni.cz v adresáři pub/tex/fonts. V podadresáři mfsrc jsou zdrojové texty pro METAFONT. Speciální znaky použité v 'pohádce' najdete v balících wasy.zip a bbding.zip. V pokladnici TeXových fontů dále najdete arabštinu, řečtinu (α, ..., ω), 'cyrilici'2, Švabach a desítky dalších písem. Seznam fontů dostupných v TeXových archívech je možno nalézt v souboru ftp.muni.cz:/pub/tex/faqs/mflist.faq, krátký úvod do u lze nalézt tamtéž v souboru mf.faq.

(... pokračování)
setting
1 Dopsání pohádky (a dokreslení <obrázků> - pozn. edit. webové verze) ponecháme laskavému čtenáři jako cvičení.
... zpět do textu
2 azbuku (pozn. edit. webové verze)
... zpět do textu
Zpět na začátek
ÚVT MU, poslední změna 14.11.2011